Vienetas 8 / 11

Laiko eilučių analizė: stacionarumas, ARIMA ir prognozavimas

Pelnas:

  • Gebėjimas suprasti tendencijos, sezoniškumo, stacionarumo ir vieneto šaknies sąvokas ir naudoti dirbtinį intelektą su tiksliais duomenimis laiko eilučių modeliavimui ir prognozavimui.
  • Gebėjimas interpretuoti ARIMA/sezoninius modelius ir prognozuoti neapibrėžtumą (pasitikėjimo intervalas, likutinė analizė) ir išvengti klaidingos regresijos
  • Galimybė atskirti, kad dirbtinio intelekto numatymas grindžiamas praeities modeliais ir kad ekspertų nuomonė išryškėja struktūrinio lūžio ir krizės laikotarpiais.

Didžioji dalis duomenų, kurie yra ekonomistų ir finansų analitikų duona, yra laiko eilutės: to paties kintamojo vertės, išmatuotos reguliariais laiko tarpais (mėnesinė infliacija, dienos akcijų kaina, ketvirtinis BVP). Laiko eilutės iš esmės skiriasi nuo įprastų skerspjūvio duomenų, nes stebėjimai nėra nepriklausomi: šiandienos vertė priklauso nuo vakar. Ši priklausomybė yra ir galimybė (galime numatyti ateitį), ir pavojus (įprasta regresija čia lengvai suklaidina). Šiame skyriuje pamatysime, kaip dirbtinis intelektas (AI) spartina laiko eilučių modeliavimą ir prognozavimą, tačiau kodėl į pavojingiausius spąstus – netikrą regresiją – reikia atkreipti dėmesį.

Pagrindinės sąvokos

Laiko eilutę paprastai sudaro trys komponentai: tendencija (ilgalaikė didėjimo / mažėjimo tendencija), sezoniškumas (reguliarus modelis, pasikartojantis ištisus metus, pvz., padidėjęs turizmas vasarą) ir ciklas / triukšmas (liekamasis nepastovumas). Prieš modeliuojant svarbiausia serijos savybė yra stacionarumas.

Stacionarioji eilutė yra eilutė, kurios statistinės savybės (vidurkis, dispersija) laikui bėgant išlieka pastovios. Nestacionarioje serijoje yra tendencija, jos dispersija auga arba turi vienetinę šaknį. Vieneto šaknis – tai struktūra, kurioje serija nuolat „prisimena“ sukrėtimus ir negrįžta į vidurkį; Toks serialas elgiasi kaip atsitiktinis pasivaikščiojimas. Kodėl tai svarbu? Kadangi regresija tarp dviejų nestacionarių eilučių gali sukurti didelius R kvadrato ir reikšmingus koeficientus, net jei tikrovėje nėra ryšio – tai vadinama klaidinga regresija. Tik dėl bendros tendencijos abi serijos atrodo „susijusios“.

Atsargiai: dvi didėjančios serijos (pvz., vienos šalies gyventojų skaičius ir kitos šalies ledų pardavimas) gali labai koreliuoti; nes laikui bėgant jie abu didėja. Tai ne santykiai, o bendros tendencijos iliuzija. Prieš pradėdami regresiją laiko eilutėje, būtinai patikrinkite stacionarumą.

Žingsnis po žingsnio laiko eilučių darbo eiga

1. Vizualizuokite. Nubraižykite seriją: ar yra tendencija, ar yra sezoniškumas, ar dispersija keičiasi laikui bėgant, ar yra struktūrinis lūžis (staigus lygio pokytis)?

2. Stacionarumo bandymas. ADF testas (Augmented Dickey-Fuller) ir KPSS bandymo įrenginio šaknies/stacionarumas. Abu papildo vienas kitą: ADF nulinė hipotezė yra „yra vieneto šaknis“, KPSS – „stacionari“. Saugiau naudoti abu kartu.

3. Sustingęs. Jei serija yra nestacionari, ji paprastai skiriasi (nuoseklių stebėjimų skirtumas; tai pašalina tendenciją). Vieną kartą diferencijuojant „pirmos eilės integruota“ (I(1)) serija tampa stacionari. Rąsto transformacija taip pat padeda, jei dispersija didėja.

4. Sukurkite modelį. Labiausiai paplitusi sistema yra ARIMA (AutoRegressive Integrated Moving Average): ji sujungia komponentus AR (eilės priklausomybė nuo savo praeities verčių), I (skirtumo laipsnis), MA (praeities klaidų poveikis). Jei yra sezoniškumas, naudojamas SARIMA. AI generuoja kodą automatiniams atrankos įrankiams, tokiems kaip auto.arima; Tačiau aklai nepriimkite automatinio pasirinkimo.

5. Patikrinkite, ar nėra likučių. Gero modelio likučiai turėtų būti baltas triukšmas: jokio rašto, jokios autokoreliacijos. Ljung-Box testas tai patikrina. Jei liekanose vis dar yra rašto, modelis yra neišsamus.

6. Numatykite ir parodykite neapibrėžtumą. Prognozė nėra viena eilutė; visada pateikiama su patikimumo/įvertinimo intervalu. Diapazonas plečiasi ilgėjant horizontui – tai sąžiningumo, o ne ydų ženklas.

Kointegracija: tikras santykis su nestacionariomis serijomis

Dvi nestacionarios serijos ne visada sukuria netikrus santykius. Jei tarp jų yra reali ilgalaikė pusiausvyra (jie juda kartu), tai vadinama kointegracija ir gali būti modeliuojama naudojant klaidų taisymo modelį (ECM). Taigi sprendimas nėra „skirtis ir mesti informaciją“; pirmiausia reikia išbandyti kointegraciją. Šis skirtumas išskiria klaidingą regresiją nuo tikrosios ilgalaikės koreliacijos ir yra teorinis samprotavimas, kad dirbtinis intelektas negali nuspręsti pats.

palyginimo diagrama

Būsena

simptomas

teisingas požiūris

stacionarios serijos

Pastovus vidurkis/dispersija

Tiesioginis LANKINIMAS

Su tendencija (vieneto šaknis)

Nuolatinis kilimas, ADF yra beprasmis

Skirtumas, tada modelis

Dvi nestacionarios serijos

Aukštas R² gali būti netikras

Pirma, kointegracijos testas

sezoninis

Kasmet pasikartojantis modelis

SARIMA / sezoninis skirtumas

struktūrinis lūžis

Staigus lygio / nuolydžio pasikeitimas

Plyšimo testas, eksperto išvada

Keturi nukopijuoti raginimai

1. Stacionarumo diagnostika:

Jūsų vaidmuo: laiko eilučių asistentas. Noriu R kodo, nedalinu duomenų. „serija“ yra mėnesio laiko eilutė (ts objektas). Užduotis: (1) nubraižykite serijų ir autokoreliacijos (ACF/PACF) grafikus, (2) pritaikykite ADF ir KPSS testus, (3) paaiškinkite, kaip interpretuoti rezultatus kartu. Aš priimsiu sprendimą keistis; Jūs nustatote diagnozę.

2. Modelio kūrimas (prižiūrimas):

Mano serija iš pirmo skirtumo atrodo nejudanti. Pasiūlykite modelį su auto.arima, bet: (1) paaiškinkite pasirinktus (p, d, q) užsakymus ir KODĖL jie buvo pasirinkti, (2) pridėkite kodą, kad patikrintumėte, ar likučiai yra balto triukšmo naudojant Ljung-Box, (3) priminkite, kad aklai nepriimčiau automatinio pasirinkimo.

3. Netikros regresijos įspėjimas:

Noriu nustatyti regresiją tarp savo dviejų laiko eilučių (X, Y), bet jos abi yra nepatenkintos. Parašykite darbo eigos kodą, kuris patikrina netikros regresijos riziką: pirmiausia patikrinkite abiejų stacionarumą, tada pritaikykite kointegracijos testą (Engle-Granger arba Johansen). Prieš paleisdamas lm() tiesiogiai, sustabdyk mane ir paaiškink, kodėl tai pavojinga.

4. Numatymas ir neapibrėžtumas:

Parašykite kodą, kuris sukuria 12 mėnesių prognozę su mano sukurtu ARIMA modeliu; Nubraižykite įvertį su jo 80% ir 95% pasikliautinaisiais intervalais. Po diagrama pridėkite pastabą, kad numatymas pagrįstas praeities modeliais ir gali tapti negaliojantis struktūrinio lūžio / krizės atveju.

Silpnas raginimas / Stiprus raginimas

Silpnas raginimas:

Raskite šių dviejų eilučių ryšį su regresija ir nuspėkite kitus metus.

Šis teiginys yra kvietimas į klaidingą regresijos spąstus: jei regresija nustatoma nepatikrinus stacionarumo, atsiranda didelis R kvadratas, bet beprasmis „ryšys“ ir nepagrįstas įvertinimas.

Galingas raginimas:

Jūsų vaidmuo: kruopštus laiko eilučių asistentas. Tęskite žingsnis po žingsnio: (1) patikrinkite abiejų eilučių ir ataskaitos stacionarumą, (2) jei jos nėra stacionarios, NEDARYKITE tiesioginės regresijos, pirmiausia patikrinkite kointegraciją, (3) jei sukuriate prognozę, būtinai pridėkite pasikliautinąjį intervalą ir parašykite įspėjimą apie struktūrinę pertrauką. Palik man sprendimą kiekviename žingsnyje; automatinis progresas.

Skirtumas: didelė paklausa reikalauja stacionarumo ir kointegracijos prieš regresiją, pateikiant įvertį su neapibrėžtumu.

trys mini dėklai

1 atvejis – klaidinga regresija. Analitikas nustatė R²=0,91, p<0,001 tarp dviejų didėjančių eilučių (vieno sektoriaus apyvarta ir kitos šalies energijos suvartojimas) ir parašė „stiprus ryšys“. Kai jo konsultantas paprašė atlikti stacionarumo testą, buvo matyti, kad jie abu turi vienetines šaknis, o paėmus jų skirtumus, ryšys (r = 0,04) visiškai išnyko. Didelis R kvadratas buvo tik bendros tendencijos iliuzija. Pamoka: laiko eilučių regresija yra nepatikima be stacionarumo patikrinimo.

2 atvejis – aklas pasitikėjimas automatiniu modeliu. Mokinys naudojo auto.arima pasirinktą modelį jo nenagrinėjęs; jis nebepastebėjo reikšmingo sezoniškumo, likusio jo analizėje. Modelis sistemingai neįvertino vasaros mėnesių. Ljung-Box testas parodė likučių autokoreliaciją. Teisingas būdas: buvo pridėti sezoninį komponentą (SARIMA). Pamoka: automatinis pasirinkimas yra pradžia, o ne paskutinis žodis; Likučiai turi būti patikrinti.

3 atvejis. Prognozuojamas žlugimas struktūrinio lūžio metu. Vienas modelis prognozavo 2020 m. paklausą su 2019 m. duomenimis; pasikliautinasis intervalas buvo siauras, įvertinimas buvo patikimas. Didelis 2020 m. šokas (pandemija) visiškai sugriovė prognozę, nes modelis žinojo tik praeities modelį. Pamoka: prognozuojant laiko eilutes daroma prielaida, kad praeitis bus panaši į ateitį; Krizės / gedimo metu ekspertų sprendimas iškyla į priekį.

Dažnos klaidos

  • Regresijos nustatymas netikrinant stacionarumo. Klaidinga regresija sukuria didelį R kvadrato ryšį, bet nereikšmingą; Pirmiausia pritaikykite ADF/KPSS.
  • Kointegracijos diferencijavimas ir praleidimas. Jei yra tikri ilgalaikiai santykiai, aklai imant skirtumą išmeta informaciją; Pirmiausia patikrinkite kointegraciją.
  • Automatinio modelio naudojimas jo nepatikrinus. auto.arima yra gera pradžia, bet nepatikrinus likučių (Ljung-Box).
  • Pateikti sąmatą kaip vieną eilutę. Įvertinimas be pasikliautinojo intervalo sukuria klaidingą tikslumą; Visada parodykite netikrumą.
  • Struktūrinio lūžio ignoravimas. Krizė / režimo pasikeitimas sujaukia praeities modelį; Modelis negali to žinoti, reikalingas eksperto sprendimas.
Patarimas: prieš rašydami laiko eilutės radinį, dar kartą peržiūrėkite neapdorotą serijos grafiką. Aiški tendencija ar lūžis, kurį matote savo akimis, yra stipriausias įspėjimas, kad joks testas neturėtų priversti jūsų pamiršti.

Apibendrinant

Atliekant laiko eilučių analizę, stebėjimai nėra nepriklausomi; Tai ir suteikia nuspėjamąją galią, ir sukuria spąstus, tokius kaip klaidinga regresija. Prieš modeliuojant patikrinamas stacionarumas (ADF/KPSS); išbandyti kointegraciją, o ne tiesiogiai nustatyti regresiją tarp nestacionarių eilučių; Patikrinkite ARIMA/SARIMA modelio likučius iki balto triukšmo; Visada pateikite įvertinimą su pasikliautinuoju intervalu. AI generuoja visų šių veiksmų kodą, tačiau ekspertas kontroliuoja automatinį modelio pasirinkimą, kointegracijos sprendimą ir struktūrinių pertraukų interpretavimą. Numatymas grindžiamas praeitimi; Krizės metu galutinį žodį taria žmogaus sprendimas.

Taikymo užduotis

Pasirinkite laiko eilutę (mėnesį arba ketvirtį). Prieš AI pateikite užklausą ir vykdykite stacionarumo diagnostiką (grafiką, ACF/PACF, ADF, KPSS) ir klasifikuokite serijas kaip stacionarią / nestacionarią. Jei reikia, diferencijuokite, sukurkite ARIMA/SARIMA modelį ir patikrinkite likučius su Ljung-Box. Sudarykite 6–12 periodų prognozę ir nubraižykite ją su pasikliautinuoju intervalu. Galiausiai pastraipoje apsvarstykite, kaip jūsų prognozė gali būti klaidinga, jei jūsų duomenyse būtų struktūrinis lūžis.

kontrolinis sąrašas

  • [ ] Nubraižiau seriją ir vizualiai išnagrinėjau tendencijas, sezoniškumą ir lūžius.
  • [ ] Išbandžiau stacionarumą su ADF ir KPSS; Gavau reikiamą skirtumą.
  • [ ] Vengiau tiesioginės regresijos ir išbandžiau kointegraciją tarp nestacionarių eilučių.
  • [ ] Patikrinau modelio likučius (Ljung-Box) ir patvirtinau, kad tai baltas triukšmas.
  • [ ] Pateikiau įvertį su pasikliautinuoju intervalu; Aš to nepateikiau kaip vieną eilutę.
  • [ ] Pažymėjau prognozavimo ribas struktūrinio lūžio/krizės atveju.