Probabil ați văzut postarea mea despre clasificarea STI a lui Hans Levenbach (acesta). Ei bine, am decis să-l implementez și a ajuns în pachetul greybox pentru R/Python.
Ce este greybox? Este un pachet pentru modelarea statistică care se concentrează pe prognoză și analiza seriilor temporale. L-am creat în 2018 pentru a separa modelele statice (cum ar fi regresia liniară) de cele dinamice care au ajuns în pachetul uniform. Greybox a evoluat de atunci, iar acum are regresie liniară (alm), selecție de regresie (în trepte) și combinații (calm), o varietate de instrumente pentru generarea de caracteristici, diagnosticare, evaluare de prognoză (de exemplu, origine rulantă) etc. Puteți citi mai multe despre el aici. Inițial, pachetul era disponibil doar pentru R, dar eu și Claude i-am portat funcțiile principale pe Python în februarie.
Tehnicile de analiză exploratorie a datelor pentru serii cronologice se potrivesc destul de bine pachetului, deși încă nu am multe dintre ele. Deci, am implementat ideea principală a STI a lui Hans Levenbach într-o funcție numită „stick” (Seasonal, Trend, Irregular Contribution Kit) în pachetul greybox pentru R/Python. Ideea este simplă: aplicați stick pe o serie de timp, va folosi ANOVA și vă va oferi puterea fiecărei componente. Iată, de exemplu, cum să aplicați funcția datelor AirPassengers (seria temporală de jucărie preferată a tuturor) în R:
library(greybox) stick(AirPassengers)
și în Python:
from fcompdata import AirPassengers from greybox import stick result = stick(AirPassengers.y, lags=12) print(result)
care dă exact același rezultat:
Strength of the components:
seasonal12 trend irregular
0.1061 0.8613 0.0326
Deci, tendința domină seria temporală, explicând 86,13% din variabilitatea acesteia, ceea ce înseamnă că, dacă o captezi corect, rezolvi o mare parte a problemei. Această împărțire vă oferă și o idee aproximativă despre defalcarea structurii versus zgomot în seria temporală, deși presupune că componenta sezonieră nu evoluează în timp.
Funcția acceptă mai multe componente sezoniere și s-ar putea să o extind pentru a include informații externe (de exemplu, promoții) în viitor, dacă există cerere pentru aceasta.
Funcția stick de mesaje pentru EDA în serii de timp a apărut pentru prima dată pe Open Forecasting.
