Jednotka 8 / 11

Analýza časových řad: Stacionarita, ARIMA a předpovědi

zisky:

  • Schopnost porozumět pojmům trend, sezónnost, stacionarita a kořen jednotek a používat umělou inteligenci s přesnými daty pro modelování a prognózování časových řad.
  • Schopnost interpretovat ARIMA/sezónní modely a předpovídat nejistotu (interval spolehlivosti, zbytková analýza) a vyhnout se falešné regresi
  • Být schopen rozlišit, že predikce umělé inteligence je založena na vzorcích z minulosti a že odborný úsudek přichází do popředí v obdobích strukturálních zlomů a krizí.

Velká část údajů, které jsou chlebem a máslem pro ekonomy a finanční analytiky, jsou časové řady: hodnoty stejné proměnné měřené v pravidelných intervalech v průběhu času (měsíční inflace, denní cena akcií, čtvrtletní HDP). Časové řady se zásadně liší od běžných průřezových dat, protože pozorování nejsou nezávislá: dnešní hodnota závisí na včerejšku. Tato závislost je zároveň příležitostí (můžeme předvídat budoucnost) i nebezpečím (běžná regrese zde snadno svede). V této jednotce uvidíme, jak umělá inteligence (AI) zrychluje modelování a předpovídání časových řad, ale proč nejnebezpečnější past – falešná regrese – vyžaduje pozornost.

Základní pojmy

Časová řada obecně obsahuje tři složky: trend (dlouhodobý vzestupný/sestupný trend), sezónnost (pravidelný vzor, ​​který se opakuje v průběhu roku, např. zvýšený cestovní ruch v létě) a cyklus/hluk (zbytková volatilita). Před modelováním je nejdůležitější vlastností série stacionárnost.

Stacionární řada je řada, jejíž statistické vlastnosti (střední hodnota, rozptyl) zůstávají v čase konstantní. Nestacionární řada obsahuje trend, jeho rozptyl roste nebo má jednotkovou odmocninu. Jednotkový kořen je struktura, ve které si řada trvale „pamatuje“ šoky a nevrací se ke svému průměru; Taková série se chová jako náhodná procházka. Proč je to důležité? Protože regrese mezi dvěma nestacionárními řadami může produkovat vysoké R-kvadráty a významné koeficienty, i když ve skutečnosti neexistuje žádný vztah – nazývá se to falešná regrese. Pouze společný trend způsobuje, že se tyto dvě série zdají být „příbuzné“.

Upozornění: Dvě rostoucí řady (např. počet obyvatel jedné země a prodej zmrzliny jiné země) mohou být ve vysoké korelaci; jak se oba časem zvyšují. To není vztah, ale iluze společného trendu. Před zahájením regrese v časové řadě nezapomeňte zkontrolovat stacionaritu.

Krok za krokem pracovní postup časových řad

1. Vizualizujte. Vykreslete řadu: existuje trend, sezónnost, mění se rozptyl v čase, existuje strukturální zlom (náhlá změna úrovně)?

2. Test stacionarity. Test ADF (Augmented Dickey-Fuller) a kořenová/stacionarita testovací jednotky KPSS. Oba se doplňují: v ADF je nulová hypotéza „existuje jednotkový kořen“, v KPSS je „stacionární“. Bezpečnější je používat obojí dohromady.

3. Stagnace. Pokud je řada nestacionární, je obvykle diferencovaná (rozdíl po sobě jdoucích pozorování; tím se trend odstraní). Jednorázové diferencování učiní sérii „prvního řádu integrované“ (I(1)) stacionární. Transformace logu také pomáhá, pokud rozptyl roste.

4. Sestavte model. Nejběžnějším frameworkem je ARIMA (AutoRegressive Integrated Moving Average): Kombinuje komponenty AR (závislost řady na vlastních minulých hodnotách), I (stupeň diferenciace), MA (efekt minulých chyb). Pokud existuje sezónnost, používá se SARIMA. AI generuje kód pro nástroje automatického výběru, jako je auto.arima; Nepřijímejte ale slepě automatický výběr.

5. Zkontrolujte zbytky. Zbytkem dobrého modelu by měl být bílý šum: žádný vzor, ​​žádná autokorelace. Test Ljung-Box to testuje. Pokud ve zbytcích stále existuje vzor, ​​model je neúplný.

6. Předvídat a ukazovat nejistotu. Předpověď není jednořádková; vždy uveden s intervalem spolehlivosti/odhadu. Rozsah se rozšiřuje s prodlužujícím se horizontem – to je známka poctivosti, nikoli vady.

Kointegrace: reálný vztah s nestacionárními řadami

Dvě nestacionární řady nedávají vždy falešné vztahy. Pokud mezi nimi existuje skutečná dlouhodobá rovnováha (pohybují se společně), nazývá se to kointegrace a lze ji modelovat pomocí modelu opravy chyb (ECM). Řešením tedy není „rozlišovat a zahodit informace“; je nejprve otestovat kointegraci. Toto rozlišení odlišuje falešnou regresi od skutečné dlouhodobé korelace a je teoretickou úvahou, o které AI nemůže rozhodnout sama.

srovnávací graf

Stav

symptom

správný přístup

stacionární série

Konstantní průměr/rozptyl

Přímé OBLOUKOVÁNÍ

S trendem (kořen jednotky)

Neustálý nárůst, ADF nemá smysl

Rozdíl, pak model

Dvě nestacionární řady

Vysoké R² může být falešné

Nejprve test kointegrace

sezónní

Roční opakující se vzor

SARIMA / sezónní rozdíl

strukturální zlom

Náhlá změna úrovně/sklonu

Break test, znalecký posudek

Čtyři kopírovatelné výzvy

1. Diagnostika stacionárnosti:

Vaše role: asistent časových řad. Chci R kód, data nesdílím. 'series' je měsíční časová řada (objekt ts). Úkol: (1) nakreslete grafy řad a autokorelací (ACF/PACF), (2) aplikujte testy ADF a KPSS, (3) vysvětlete, jak společně interpretovat výsledky. Učiním rozhodnutí, že rozdíl přijmu; Provedete diagnózu.

2. Stavba modelu (pod dohledem):

Moje série se na první rozdíl jeví jako nehybná. Navrhněte model s auto.arima, ale: (1) vysvětlete vybrané (p, d, q) objednávky a PROČ byly vybrány, (2) přidejte kód pro testování, zda jsou zbytky bílý šum pomocí Ljung-Box, (3) připomeňte mi, abych slepě nepřijímal automatický výběr.

3. Falešné regresní varování:

Chci nastavit regresi mezi svými dvěma časovými řadami (X, Y), ale obě jsou detrendované. Napište kód pracovního postupu, který kontroluje riziko falešné regrese: nejprve otestujte stacionárnost obou a poté použijte kointegrační test (Engle-Granger nebo Johansen). Než spustím lm() přímo, zastavte mě a vysvětlete, proč je to nebezpečné.

4. Předpověď a nejistota:

Napište kód, který vytvoří předpověď na 12 měsíců s modelem ARIMA, který jsem vytvořil; Vyneste odhad s jeho 80% a 95% intervalem spolehlivosti. Přidejte pod graf poznámku, že předpověď je založena na minulých vzorcích a může se stát neplatnou v případě strukturálního zlomu/krize.

Slabá výzva / Silná výzva

Slabá výzva:

Najděte vztah těchto dvou řad s regresí a předpovězte příští rok.

Toto tvrzení je pozvánkou do falešné regresní pasti: pokud je regrese nastavena bez kontroly stacionarity, objeví se vysoký R-kvadrát, ale nesmyslný „vztah“ a neoprávněný odhad.

Výkonná výzva:

Vaše role: pečlivý asistent časových řad. Postupujte krok za krokem: (1) otestujte stacionaritu řad i zprávy, (2) pokud nejsou stacionární, NEPROVÁDĚJTE přímou regresi, nejprve otestujte kointegraci, (3) pokud vytváříte prognózu, nezapomeňte přidat interval spolehlivosti a napsat varování o strukturálním přerušení. Nechte rozhodnutí na mně na každém kroku; automatický postup.

Rozdíl: silná poptávka vyžaduje stacionaritu a kointegraci před regresí, což představuje odhad s nejistotou.

tři mini pouzdra

Případ 1 – Nepravá regrese. Analytik zjistil R²=0,91, p<0,001 mezi dvěma rostoucími řadami (obrat jednoho sektoru a spotřeba energie jiné země) a napsal „silný vztah“. Když jeho konzultant požádal o test stacionarity, bylo vidět, že oba mají jednotkové kořeny, a když se vzaly jejich rozdíly, vztah (r = 0,04) úplně zmizel. Vysoká R-kvadrát byla pouze iluze společného trendu. Ponaučení: regrese časových řad je nespolehlivá bez testování stacionarity.

Případ 2 — Slepá důvěra v automatický model. Student použil model vybraný auto.arima, aniž by jej zkoumal; ve své analýze již nezaznamenal výraznou sezónnost. Letní měsíce modelka systematicky podceňovala. Ljung-Boxův test ukázal autokorelaci v reziduích. Správný způsob: bylo přidat sezónní složku (SARIMA). Poučení: automatický výběr je začátek, ne konečné slovo; Zbytky je třeba zkontrolovat.

Případ 3 – Předpokládané zhroucení při strukturálním porušení. Jeden model předpovídal poptávku v roce 2020 s údaji z roku 2019; interval spolehlivosti byl úzký, odhad byl jistý. Velký šok (pandemie) v roce 2020 předpověď zcela zkazil, protože model znal pouze minulý vzor. Ponaučení: prognóza časových řad předpokládá, že minulost bude podobná budoucnosti; V době krize/poruchy přichází na řadu odborný úsudek.

Časté chyby

  • Stanovení regrese bez kontroly stacionarity. Falešná regrese vytváří vysoký R-kvadrát, ale nevýznamný vztah; Nejprve použijte ADF/KPSS.
  • Diferenciace a přeskakování kointegrace. Pokud existuje skutečný dlouhodobý vztah, slepé přebírání rozdílu zahazuje informace; Nejprve otestujte kointegraci.
  • Použití automatického modelu bez jeho kontroly. auto.arima je dobrý start, ale nespolehlivá bez kontroly zbytků (Ljung-Box).
  • Prezentace odhadu jako jeden řádek. Odhad bez intervalu spolehlivosti vytváří falešnou přesnost; Vždy dávejte najevo nejistotu.
  • Ignorování strukturálního zlomu. Krize/změna režimu narušuje minulý vzor; Modelka to vědět nemůže, je nutný odborný posudek.
Tip: Před napsáním zjištění časové řady se znovu podívejte na nezpracovaný graf řady. Jasný trend nebo zlom, který vidíte na vlastní oči, je tím nejsilnějším varováním, že by vás žádný test neměl přimět zapomenout.

V souhrnu

Při analýze časových řad nejsou pozorování nezávislá; To dává prediktivní sílu a vytváří úskalí, jako je falešná regrese. Před modelováním otestujte stacionaritu (ADF/KPSS); test kointegrace spíše než přímé stanovení regrese mezi nestacionárními řadami; Zkontrolujte zbytky modelu ARIMA/SARIMA, dokud se neobjeví bílý šum; Odhad vždy uvádějte s intervalem spolehlivosti. AI generuje kód pro všechny tyto kroky, ale odborník řídí automatický výběr modelu, rozhodnutí o kointegraci a interpretaci strukturálních zlomů. Předpověď je založena na minulosti; V době krize má poslední slovo lidský úsudek.

Aplikační úkol

Vyberte časovou řadu (měsíční nebo čtvrtletní). Před AI si vyžádejte a spusťte diagnostiku stacionárnosti (graf, ACF/PACF, ADF, KPSS) a klasifikujte sérii jako stacionární/nestacionární. V případě potřeby odlište, nastavte model ARIMA/SARIMA a zkontrolujte zbytky pomocí Ljung-Boxu. Vytvořte předpověď na 6–12 období a vykreslete ji s intervalem spolehlivosti. Nakonec zvažte v odstavci, jak by vaše předpověď mohla být chybná, pokud by ve vašich datech došlo ke strukturálnímu porušení.

kontrolní seznam

  • [ ] Sérii jsem vykreslil a vizuálně prozkoumal trendy, sezónnost a přestávky.
  • [ ] Stacionaritu jsem testoval s ADF a KPSS; Dostal jsem požadovaný rozdíl.
  • [ ] Vyhnul jsem se přímé regresi a testoval jsem kointegraci mezi nestacionárními řadami.
  • [ ] Zkontroloval jsem zbytky modelu (Ljung-Box) a potvrdil jsem, že se jedná o bílý šum.
  • [ ] Uvedl jsem odhad s intervalem spolehlivosti; Nedával jsem to jako jeden řádek.
  • [ ] Zaznamenal jsem limity predikce v případě strukturálního zlomu/krize.