Vienība 8 / 11

Laika rindu analīze: stacionaritāte, ARIMA un prognozēšana

Ieguvumi:

  • Spēja izprast trenda, sezonalitātes, stacionaritātes un vienības saknes jēdzienus un izmantot mākslīgo intelektu ar precīziem datiem laikrindu modelēšanai un prognozēšanai.
  • Spēja interpretēt ARIMA/sezonālos modeļus un prognozēt nenoteiktību (uzticamības intervāls, atlikuma analīze) un izvairīties no viltus regresijas
  • Spēja atšķirt, ka mākslīgā intelekta prognozēšana ir balstīta uz pagātnes modeļiem un ka ekspertu spriedums tiek izvirzīts priekšplānā strukturālu lūzumu un krīzes periodos.

Liela daļa datu, kas ir ekonomistu un finanšu analītiķu maize un sviests, ir laikrindas: viena un tā paša mainīgā lieluma vērtības, ko mēra ar regulāriem intervāliem laika gaitā (ikmēneša inflācija, dienas akciju cena, ceturkšņa IKP). Laika rindas būtiski atšķiras no parastajiem šķērsgriezuma datiem, jo ​​novērojumi nav neatkarīgi: šodienas vērtība ir atkarīga no vakardienas. Šī atkarība ir gan iespēja (mēs varam paredzēt nākotni), gan briesmas (parasta regresija šeit viegli maldina). Šajā nodaļā mēs redzēsim, kā mākslīgais intelekts (AI) paātrina laikrindu modelēšanu un prognozēšanu, bet kāpēc visbīstamākajai slazdai — viltus regresijai — ir jāpievērš uzmanība.

Pamatjēdzieni

Laika rindā parasti ir trīs komponenti: tendence (ilgtermiņa augšupejoša/lejupoša tendence), sezonalitāte (regulārs modelis, kas atkārtojas visu gadu, piemēram, palielināts tūrisms vasarā) un cikls/troksnis (atlikušā nepastāvība). Pirms modelēšanas sērijas vissvarīgākā iezīme ir stacionaritāte.

Stacionāra rinda ir virkne, kuras statistiskās īpašības (vidējais, dispersija) laika gaitā paliek nemainīgas. Nestacionāra sērija satur tendenci, tās dispersija pieaug vai tai ir vienības sakne. Vienības sakne ir struktūra, kurā sērija pastāvīgi "atceras" triecienus un neatgriežas pie vidējā; Šāda sērija uzvedas kā nejauša pastaiga. Kāpēc tas ir svarīgi? Tā kā regresija starp divām nestacionārām sērijām var radīt lielus R kvadrātu un nozīmīgus koeficientus pat tad, ja patiesībā nav nekādas attiecības — to sauc par viltus regresiju. Tikai kopējā tendence liek abām sērijām izskatīties kā "saistītām".

Uzmanību: divas pieaugošas sērijas (piemēram, vienas valsts iedzīvotāju skaits un saldējuma pārdošanas apjoms citā valstī) var būt cieši saistītas; jo tie abi laika gaitā palielinās. Tās nav attiecības, bet gan kopējas tendences ilūzija. Pirms regresijas sākšanas laika rindā noteikti pārbaudiet stacionaritāti.

Soli pa solim laikrindu darbplūsma

1. Vizualizējiet. Uzzīmējiet sēriju: vai ir tendence, vai ir sezonalitāte, vai laika gaitā mainās dispersija, vai ir strukturāls pārtraukums (pēkšņa līmeņa maiņa)?

2. Pārbaudīt stacionaritāti. ADF tests (augmented Dickey-Fuller) un KPSS testa vienības saknes/stacionaritāte. Abi papildina viens otru: ADF nulles hipotēze ir "ir vienības sakne", KPSS tā ir "stacionāra". Drošāk ir lietot abus kopā.

3. Stagnēts. Ja sērija ir nestacionāra, tā parasti ir atšķirīga (secīgu novērojumu atšķirība; tas novērš tendenci). Vienreiz veicot diferenciāciju, "pirmās kārtas integrētā" (I(1)) sērija kļūst nekustīga. Baļķu transformācija palīdz arī tad, ja dispersija pieaug.

4. Izveidojiet modeli. Visizplatītākais ietvars ir ARIMA (AutoRegressive Integrated Moving Average): tas apvieno komponentus AR (sērijas atkarība no savām pagātnes vērtībām), I (atšķirības pakāpe), MA (pagātnes kļūdu ietekme). Ja ir sezonalitāte, izmanto SARIMA. AI ģenerē kodu automātiskajiem atlases rīkiem, piemēram, auto.arima; Bet nevajag akli pieņemt automātisko atlasi.

5. Pārbaudiet, vai nav pārpalikumu. Laba modeļa pārpalikumiem jābūt baltajam troksnim: bez raksta, bez autokorelācijas. Ljung-Box tests to pārbauda. Ja atlikumos joprojām ir paraugs, modelis ir nepilnīgs.

6. Paredzēt un parādīt nenoteiktību. Prognoze nav viena rindiņa; vienmēr norādīts ar ticamības/novērtējuma intervālu. Diapazons paplašinās, jo horizonts pagarinās — tā ir godīguma, nevis nepilnības zīme.

Kointegrācija: reālas attiecības ar nestacionārām sērijām

Divas nestacionāras sērijas ne vienmēr rada viltus attiecības. Ja starp tām pastāv reāls ilgtermiņa līdzsvars (tie pārvietojas kopā), to sauc par kointegrāciju, un to var modelēt ar kļūdu korekcijas modeli (ECM). Tātad risinājums nav "atšķirības un izmetiet informāciju"; vispirms ir jāpārbauda kointegrācija. Šī atšķirība atšķir viltus regresiju no patiesas ilgtermiņa korelācijas un ir teorētisks apsvērums, ko AI nevar izlemt pats.

salīdzināšanas diagramma

Statuss

simptoms

pareizā pieeja

stacionāra sērija

Pastāvīgs vidējais/dispersija

Tiešā ARCHING

Ar tendenci (vienības sakne)

Nepārtraukts pieaugums, ADF ir bezjēdzīga

Atšķirība, tad modelis

Divas nestacionāras sērijas

Augsts R² var būt viltots

Pirmkārt, kointegrācijas tests

sezonāls

Ikgadējais atkārtošanās modelis

SARIMA / sezonas atšķirība

strukturāls pārtraukums

Pēkšņa līmeņa / slīpuma maiņa

Pārrāvumu pārbaude, ekspertu spriedums

Četras kopējamas uzvednes

1. Stacionaritātes diagnostika:

Jūsu loma: laikrindu palīgs. Es gribu R kodu, es nedalos ar datiem. 'sērija' ir ikmēneša laikrinda (ts objekts). Uzdevums: (1) uzzīmējiet sērijas un autokorelācijas (ACF/PACF) grafikus, (2) izmantojiet ADF un KPSS testus, (3) izskaidrojiet, kā interpretēt rezultātus kopā. Es pieņemšu lēmumu mainīt; Jūs izveidojat diagnozi.

2. Modeļa veidošana (uzraudzīta):

Mana sērija pēc pirmās atšķirības šķiet nekustīga. Piedāvājiet modeli ar auto.arima, bet: (1) paskaidrojiet atlasītos (p, d, q) pasūtījumus un KĀPĒC tie tika izvēlēti, (2) pievienojiet kodu, lai pārbaudītu, vai atlikumi ir baltie trokšņi ar Ljung-Box, (3) atgādiniet man, ka nevajag akli pieņemt automātisko atlasi.

3. Viltus regresijas brīdinājums:

Es vēlos iestatīt regresiju starp savām divām laika rindām (X, Y), taču tās abas ir detrended. Uzrakstiet darbplūsmas kodu, kas pārbauda viltus regresijas risku: vispirms pārbaudiet abu stacionaritāti, pēc tam izmantojiet kointegrācijas testu (Engle-Granger vai Johansen). Pirms palaist lm() tieši, apturiet mani un paskaidrojiet, kāpēc tas ir bīstami.

4. Prognozēšana un nenoteiktība:

Uzrakstiet kodu, kas ar manis izveidoto ARIMA modeli veido 12 mēnešu nākotnes prognozi; Uzzīmējiet novērtējumu ar tā 80% un 95% ticamības intervāliem. Zem diagrammas pievienojiet piezīmi, ka prognoze ir balstīta uz pagātnes modeļiem un var kļūt nederīga strukturālas pārrāvuma/krīzes gadījumā.

Vāja uzvedne / spēcīga uzvedne

Vāja uzvedne:

Atrodiet šo divu sēriju saistību ar regresiju un prognozējiet nākamo gadu.

Šis apgalvojums ir aicinājums uz viltus regresijas slazdu: ja regresija tiek iestatīta, nepārbaudot stacionaritāti, rodas liela R kvadrāta, bet bezjēdzīga "attiecība" un nepamatots novērtējums.

Spēcīga uzvedne:

Jūsu loma: rūpīgs laikrindu palīgs. Turpiniet soli pa solim: (1) pārbaudiet gan sēriju, gan atskaites stacionaritāti, (2) ja tās nav stacionāras, NEVEIKET tiešu regresiju, vispirms pārbaudiet kointegrāciju, (3) ja veidojat prognozi, noteikti pievienojiet ticamības intervālu un uzrakstiet brīdinājumu par strukturālu pārtraukumu. Atstājiet lēmumu manā ziņā ik uz soļa; automātiska virzība.

Atšķirība: spēcīgajam pieprasījumam ir nepieciešama stacionaritāte un kointegrācija pirms regresijas, sniedzot aplēsi ar nenoteiktību.

trīs mini futrāļi

1. gadījums — viltus regresija. Analītiķis atrada R²=0,91, p<0,001 starp divām pieaugošām sērijām (vienas nozares apgrozījums un citas valsts enerģijas patēriņš) un uzrakstīja "spēcīgas attiecības". Kad viņa konsultants lūdza veikt stacionaritātes testu, bija redzams, ka abiem ir vienības saknes, un, ņemot vērā to atšķirības, attiecības (r = 0,04) pilnībā izzuda. Augstais R kvadrāts bija tikai kopējas tendences ilūzija. Nodarbība: bez stacionaritātes pārbaudes laikrindu regresija ir neuzticama.

2. gadījums — akla uzticēšanās automātiskajam modelim. Kāds skolēns izmantoja auto.arima izvēlēto modeli, to nepārbaudot; viņš vairs nepamanīja, ka viņa analīzē ir saglabājusies būtiska sezonalitāte. Modelis sistemātiski par zemu novērtēja vasaras mēnešus. Ljung-Box tests parādīja autokorelāciju atlikumos. Pareizais veids: bija pievienot sezonas komponentu (SARIMA). Nodarbība: automātiskā izvēle ir sākums, nevis pēdējais vārds; Atlikumi ir jāpārbauda.

3. gadījums — prognozēts sabrukums konstrukcijas pārtraukuma laikā. Viens modelis paredzēja 2020. gada pieprasījumu ar 2019. gada datiem; ticamības intervāls bija šaurs, novērtējums bija pārliecinošs. 2020. gada lielais šoks (pandēmija) pilnībā sagrāva prognozes, jo modelis zināja tikai pagātnes modeli. Nodarbība: laikrindu prognozēšanā tiek pieņemts, ka pagātne būs līdzīga nākotnei; Krīzes/sabrukuma laikā ekspertu spriedums izvirzās priekšplānā.

Biežas kļūdas

  • Regresijas noteikšana, nepārbaudot stacionaritāti. Neīstā regresija rada lielu R kvadrātu, bet nenozīmīgu attiecību; Vispirms izmantojiet ADF/KPSS.
  • Kointegrācijas diferencēšana un izlaišana. Ja ir reālas ilgtermiņa attiecības, akli uztverot atšķirības, tiek izmesta informācija; Vispirms pārbaudiet kointegrāciju.
  • Automātiskā modeļa izmantošana, to nepārbaudot. auto.arima ir labs sākums, bet neuzticams, nepārbaudot atlikumus (Ljung-Box).
  • Tāmes uzrādīšana kā viena rinda. Novērtējums bez ticamības intervāla rada nepareizu precizitāti; Vienmēr parādiet nenoteiktību.
  • Strukturālā pārtraukuma ignorēšana. Krīzes/režīma maiņa izjauc pagātnes modeli; Modelis to nevar zināt, nepieciešams eksperta spriedums.
Padoms. Pirms laikrindas atraduma rakstīšanas vēlreiz apskatiet sērijas neapstrādāto grafiku. Skaidra tendence vai lūzums, ko redzat savām acīm, ir spēcīgākais brīdinājums, ka neviens pārbaudījums nedrīkst likt aizmirsties.

Rezumējot

Laikrindu analīzē novērojumi nav neatkarīgi; Tas gan nodrošina prognozēšanas spēku, gan rada nepilnības, piemēram, viltus regresiju. Pirms modelēšanas pārbaudīt stacionaritāti (ADF/KPSS); pārbaudīt kointegrāciju, nevis tieši noteikt regresiju starp nestacionārām sērijām; Pārbaudiet ARIMA/SARIMA modeļa atlikumus, līdz parādās balts troksnis; Vienmēr iesniedziet novērtējumu ar ticamības intervālu. AI ģenerē kodu visām šīm darbībām, bet eksperts kontrolē automātisko modeļa atlasi, kointegrācijas lēmumu un strukturālo pārtraukumu interpretāciju. Prognoze balstās uz pagātni; Krīzes laikā cilvēka spriedumam ir galīgais vārds.

Lietojumprogrammas uzdevums

Izvēlieties laika rindu (mēneša vai ceturkšņa). Pirms mākslīgā intelekta pieprasiet un palaidiet stacionaritātes diagnostiku (grafiku, ACF/PACF, ADF, KPSS) un klasificējiet sēriju kā stacionāru/nestacionāru. Ja nepieciešams, diferencējiet, izveidojiet ARIMA/SARIMA modeli un pārbaudiet atlikumus ar Ljung-Box. Izveidojiet 6–12 periodu prognozi un izveidojiet to ar ticamības intervālu. Visbeidzot, kādā rindkopā apsveriet, kā jūsu prognoze varētu būt nepareiza, ja jūsu datos būtu strukturāls pārtraukums.

kontrolsaraksts

  • [ ] Es uzzīmēju sēriju un vizuāli pārbaudīju tendences, sezonalitāti un pārtraukumus.
  • [ ] Es pārbaudīju stacionaritāti ar ADF un KPSS; Saņēmu vajadzīgo starpību.
  • [ ] Es izvairījos no tiešas regresijas un pārbaudīju kointegrāciju starp nestacionārām sērijām.
  • [ ] Es pārbaudīju modeļa atlikumus (Ljung-Box) un apstiprināju, ka tas ir balts troksnis.
  • [ ] Es uzrādīju novērtējumu ar ticamības intervālu; Es to nenorādīju kā vienu rindiņu.
  • [ ] Es atzīmēju prognozēšanas robežas strukturālas lūzuma/krīzes gadījumā.