How to determine seasonality of a time series

Tripartio
Tripartio New Altair Community Member
edited November 5 in Community Q&A
Hello,
Does RapidMiner have any operator that can determine the seasonality of a time series? My idea is that the input is a dataset with an attribute specified as the target, and the output (perhaps among other things) figures out the seasonality pattern (e.g. 12 for annual seasonality on monthly data, 7 for weekly seasonality on daily data, 168 for weekly seasonality on hourly data, etc.).
I know that R can do this with auto.arima, but does RapidMiner have such a feature built in? (If not, I know that I could use the R Scripting extension to run the R function.)
Regards,
Chitu

Best Answer

Answers

  • MartinLiebig
    MartinLiebig
    Altair Employee
    Hi,

    @yyhuang may correct me here, but to the best of my knowledge auto-arima is just a grid optimization around normal arima optimized on BIC/AIC. You can easily build this with operators.

    Best,
    Martin
  • Tripartio
    Tripartio New Altair Community Member
    edited November 2020
    Here is a brief description to how R's auto.arima works, summarized by one of its creators: 8.7 ARIMA modelling in R. I'm not quite expert enough in RapidMiner to "easily build this with operators".
    In any case, do I take it, then, that RapidMiner does not have an operator that outputs the seasonality, especially in ARIMA terms? As I said, I could work around it with the R Scripting extension, but with the recent Forecasting extension, I was wondering if auto.arima functionality was integrated (or on the roadmap).
    By the way, I've been playing around recently with the new Forecasting extension, and it is very impressive. Even though it is still quite rudimentary, it produces great results easily. Thanks for your work on that.
    Regards,
    Chitu


  • MartinLiebig
    MartinLiebig
    Altair Employee
    Hi,
    thats a great link :). As far as I know there is no out-of-the box method for this, but I am not our internal ARIMA expert. Those are @David_A and @yyhuang . So i leave the stage for them.

    Best,
    Martin
  • YYH
    YYH
    Altair Employee
    Answer ✓
    tftemme put a good example process for Auto ARIMA using grid optimization in the end of the documentation
    https://docs.rapidminer.com/9.3/studio/operators/modeling/time_series/forecasting/arima_trainer.html

    It does fine-tuning of (p,d,q) to minimize AIC as described in Hyndman-Khandakar algorithm for automatic ARIMA modelling
    We currently do not have seasonal ARIMA (p,d,q) x (P,D,Q), so you will need python/R integration to get auto Seasonal ARIMA.
  • Tripartio
    Tripartio New Altair Community Member
    @yyhuang Thanks for the pointer to the Auto ARIMA process. That's the kind of thing I'm looking for. It is disappointing that it does not support seasonality, but I hope that might come soon.

    @mschmitz, it seems that the new Forecasting extension operators Forecast (Univariate) and Forecast (Multivariate) do this kind of thing. But the main difference between what they currently do (version 0.1.6) and what I am looking for is that they do not report the ARIMA p, d, q parameters, or the parameters for other models (Holt-Winters or Functional and Seasonal Forecasting). Could they be updated to report the optimized parameters?
    Regards,
    Chitu
  • MartinLiebig
    MartinLiebig
    Altair Employee
    we could do it. But I would like to have Univariate Forcast as simple as possible. Why don't you just use the process as an execute process and edit it in the way you need it?

    Best,
    Martin
  • Tripartio
    Tripartio New Altair Community Member
    Sorry, but I don't understand your suggestion at all: "Why don't you just use the process as an execute process and edit it in the way you need it?" Could you please explain what you are suggesting?
    Regards,
    Chitu

  • MartinLiebig
    MartinLiebig
    Altair Employee
    you can just open the underlying process and store the process. Afterwards you can drag and drop this said process and use it as a function-type thing. This allows you to edit this process to do the things you want to do.

    I just got the idea of adding the best p-q-d used as an annotation to the resulting example set. that way we would keep it simple and you can see whats being used. How does this sound?

    Best,
    Martin
  • Tripartio
    Tripartio New Altair Community Member
    @mschmitz, Sorry for the very late response. Your idea sounds quite helpful ("I just got the idea of adding the best p-q-d used as an annotation to the resulting example set"). Would that be possible for an update to the operators?

    Thanks,
    Chitu