Sktime: request: ARIMA pdq tuner and/or interface to auto_arima

Created on 16 Dec 2019  路  10Comments  路  Source: alan-turing-institute/sktime

In the forecasting example, all of a sudden we have:

order = (3, 2, 1)

Why is this ARIMA set chosen? There's no explanation in the tutorial/example; it's just plopped in there and, arguably, is one of the more important aspects of crafting a time series forecast.

Otherwise, I don't see why anyone would need to use this library, which is largely an amalgamation of already-established scientific and data structure standards. It doesn't even make the process that much simpler, IMHO.

I think a crucial addition to this package would be a p-d-q estimator. Just something to consider.

feature request

All 10 comments

Regarding auto-tuned ARIMA: I'm not sure whether we also have an interface tor the pmdarima.auto_arima tuner at the moment or whether it's planned - @mloning may know the most recent state on this. If not, PR additions are appreciated.

If you just need the method, you could just use pmdarima.arima.auto_arima from the package directly.

From a design perspective, in sktime, there should be ARIMA (with untuned parameters) and common tuned variantes (e.g., auto-ARIMA). The vanilla ARIMA can then also be tuned in a custom way if you want to build your own self-tuning ARIMA.

Regarding "why would anyone use this library": from a philosophical perspective, you should only board a train to Liverpool if you want to go to Liverpool. Less metaphorically, one should use sktime exactly when one finds at least one of its unique features useful (and useable).

ML/AI toolboxes such as sklearn (or sktime) provide more than just a bunch of standards (which is already useful btw!). The most important kinds of features are:

  • uniform interface to methods of the same kind (same statistical learning task)
  • method composition functionality, e.g., pipelines, composites, reduction
  • meta-methodology to fairly evaluate and compare competing methods - how do you know the expensive neural network outperforms ARIMA (or not?)

To go back to one of my favourite metaphors, a train is more than just an amalgamation of industry standards for wheels, coal burners, pipes, and other individual mechanical parts.

Moreover, there's more to time series than forecasting (e.g., time series classification, segmentation, other annotation, panel models), so the picture for time series related learnin tasks is especially interesting. Distinguishing of the different learning tasks, and reduction methodology is an interesting research feature of this area.

Also see our recent paper
https://arxiv.org/abs/1909.07872
for more explanation.

(changed the issue title to something that's hopefully descriptive of content)

@fkiraly Great! Thanks for the link. Looks like an interesting paper

To be honest, I'm just looking for a library to simplify portions of the process. I'm hoping to continue using this one for that purpose.. I'm definitely not as well versed on the topic (don't tell anyone!).

I'd definitely love an auto_arima method. The biggest challenge here seems like it would be data set size. But, you would know better than I!

Auto-ARIMA is currently not implemented, but is the next step in our development process. For an existing Python implementation which we hope to integrate into sktime, see pmdarima.

@mloning Thank you! I also saw there was a pyts library, though it looks to be a little more advanced than what I need. Have you checked that one out?

Yes, we're aware of pyts, but it only supports time series classification, not forecasting as far as I understand. For a list of related software that we know of, see our wiki page, there may be one or the other package in there that's useful to you.

I think you mistakenly linked the datasets/competitions page. Related packages/tools are here:
https://github.com/alan-turing-institute/sktime/wiki/Related-software

Yes, now corrected my comment!

Closed by #218

Was this page helpful?
0 / 5 - 0 ratings