Stacionaritás és detrending (ADF/KPSS) 6

Stacionaritás azt jelenti, hogy az idősorok statisztikai tulajdonságai, azaz az átlag, a variancia és a kovariancia nem változnak az idő múlásával. Sok statisztikai modell megköveteli, hogy a sorozat stacionárius legyen, hogy hatékony és pontos előrejelzéseket készítsen.

két statisztikai tesztet használnának egy idősoros Dickey Fuller (“ADF”) teszt és Kwiatkowski – Phillips-Schmidt-Shin (“KPSS”) teszt stacionaritásának ellenőrzésére. A nem helyhez kötött idősorok helyhez kötött sorozatokká történő átalakítására szolgáló módszert is alkalmazni kell.

ez az első cella szabványos csomagokat importál, és a diagramokat sorba állítja.

:
%matplotlib inlineimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport statsmodels.api as sm

a napfoltok adatkészletét használják. Évente (1700-2008) adatokat tartalmaz a napfoltokról a Nemzeti Geofizikai adatközpont.

:
sunspots = sm.datasets.sunspots.load_pandas().data

néhány előfeldolgozás az adatokon történik. Az” év ” oszlopot az index létrehozásához használják.

:
sunspots.index = pd.Index(sm.tsa.datetools.dates_from_range('1700', '2008'))del sunspots

az adatok most vannak ábrázolva.

:
sunspots.plot(figsize=(12,8))
:
<AxesSubplot:>
../../../_images / examples_notebooks_generated_stationarity_detrending_adf_kpss_8_1.png

az ADF-tesztet (ADF-teszt) a (z)

(ADF-teszt) arra használjuk, hogy meghatározzuk az egységgyök jelenlétét a sorozatban, és ezáltal segít megérteni, hogy a sorozat áll-e vagy sem. A teszt null és alternatív hipotézise a következő:

Null hipotézis: a sorozatnak egységgyöke van.

alternatív hipotézis: a sorozatnak nincs egységgyöke.

ha a nullhipotézist nem sikerült elutasítani, ez a teszt bizonyítékot szolgáltathat arra, hogy a sorozat nem helyhez kötött.

létrejön egy függvény az ADF teszt idősoron történő végrehajtására.

:
from statsmodels.tsa.stattools import adfullerdef adf_test(timeseries): print ('Results of Dickey-Fuller Test:') dftest = adfuller(timeseries, autolag='AIC') dfoutput = pd.Series(dftest, index=) for key,value in dftest.items(): dfoutput = value print (dfoutput)

a KPSS teszt (kpss) egy másik teszt egy idősor stacionaritásának ellenőrzésére. A KPSS teszt null és alternatív hipotézise ellentétes az ADF teszttel.

nullhipotézis: a folyamat trend stacionárius.

alternatív hipotézis: a sorozatnak egységgyöke van (a sorozat nem álló).

létrejön egy függvény a KPSS teszt idősoron történő végrehajtására.

:
from statsmodels.tsa.stattools import kpssdef kpss_test(timeseries): print ('Results of KPSS Test:') kpsstest = kpss(timeseries, regression='c', nlags="auto") kpss_output = pd.Series(kpsstest, index=) for key,value in kpsstest.items(): kpss_output = value print (kpss_output)

az ADF-tesztek a következő eredményeket adják: tesztstatisztika, p-érték és a kritikus érték 1% – os, 5% – os és 10% – os konfidencia intervallumokban.

ADF tesztet alkalmaznak az adatokon.

:
adf_test(sunspots)
Results of Dickey-Fuller Test:Test Statistic -2.837781p-value 0.053076#Lags Used 8.000000Number of Observations Used 300.000000Critical Value (1%) -3.452337Critical Value (5%) -2.871223Critical Value (10%) -2.571929dtype: float64

a 0,05 szignifikancia szint és az ADF teszt p-értéke alapján a nullhipotézis nem utasítható el. Ezért a sorozat nem helyhez kötött.

a KPSS tesztek a következő eredményeket adják: tesztstatisztika, p érték és a kritikus érték 1% – os, 5% – os és 10% – os konfidencia intervallumokban.

KPSS teszt most alkalmazzák az adatokat.

:
kpss_test(sunspots)
Results of KPSS Test:Test Statistic 0.669866p-value 0.016285Lags Used 7.000000Critical Value (10%) 0.347000Critical Value (5%) 0.463000Critical Value (2.5%) 0.574000Critical Value (1%) 0.739000dtype: float64

a 0,05 szignifikancia szint és a KPSS teszt p-értéke alapján bizonyíték van a nullhipotézis elutasítására az alternatíva javára. Ezért a sorozat nem helyhez kötött a KPSS teszt szerint.

mindig jobb mindkét tesztet alkalmazni, hogy biztosítható legyen, hogy a sorozat valóban álló legyen. A helyhez kötött tesztek alkalmazásának lehetséges eredményei a következők:

1. eset: Mindkét teszt arra a következtetésre jut, hogy a sorozat nem álló – a sorozat nem álló
2.eset: mindkét teszt arra a következtetésre jut, hogy a sorozat álló – a sorozat álló
3. eset: a KPSS stacionaritást, az ADF pedig nem stacionaritást jelez-a sorozat trend álló. A trendet el kell távolítani, hogy a sorozat szigorú helyhez kötött legyen. A detrended sorozat stacionaritását ellenőrzi.
4.eset: a KPSS nem stacionaritást, az ADF pedig stacionaritást jelez-a sorozat stacionárius különbség. Differencing kell használni, hogy a sorozat álló. A differenciált sorozat stacionaritását ellenőrzi.

itt az ADF teszt és a KPSS teszt eredményeinek különbsége miatt arra lehet következtetni, hogy a sorozat trend stacionárius és nem szigorú stacionárius. A sorozat differenciálással vagy modell illesztéssel rontható.

Degrending által Differencinging GmbH

ez az egyik legegyszerűbb módszer a degrend egy idősor. Új sorozat jön létre, ahol az aktuális időlépés értékét az eredeti megfigyelés és az előző időlépés megfigyelése közötti különbségként számítják ki.

differenciálást alkalmaznak az adatokon, és az eredményt ábrázolják.

:
sunspots = sunspots - sunspots.shift(1)sunspots.dropna().plot(figsize=(12,8))
:
<AxesSubplot:>
../../../_images / examples_notebooks_generated_stationarity_detrending_adf_kpss_20_1.png

az ADF tesztet most alkalmazzák ezekre a detrended értékekre, és ellenőrzik a stacionaritást.

:
adf_test(sunspots.dropna())
Results of Dickey-Fuller Test:Test Statistic -1.486166e+01p-value 1.715552e-27#Lags Used 7.000000e+00Number of Observations Used 3.000000e+02Critical Value (1%) -3.452337e+00Critical Value (5%) -2.871223e+00Critical Value (10%) -2.571929e+00dtype: float64

az ADF teszt p-értéke alapján bizonyíték van a nullhipotézis elutasítására az alternatíva javára. Ezért a sorozat most szigorú helyhez kötött.

KPSS tesztet alkalmaznak ezekre a detrended értékekre, és ellenőrzik a stacionaritást.

:
kpss_test(sunspots.dropna())
Results of KPSS Test:Test Statistic 0.021193p-value 0.100000Lags Used 0.000000Critical Value (10%) 0.347000Critical Value (5%) 0.463000Critical Value (2.5%) 0.574000Critical Value (1%) 0.739000dtype: float64
/home/travis/build/statsmodels/statsmodels/statsmodels/tsa/stattools.py:1911: InterpolationWarning: The test statistic is outside of the range of p-values available in thelook-up table. The actual p-value is greater than the p-value returned. warn_msg.format(direction="greater"), InterpolationWarning

a KPSS teszt p-értéke alapján a nullhipotézist nem lehet elutasítani. Ezért a sorozat helyhez kötött.

következtetés 6163>

egy idősor stacionaritásának ellenőrzésére két vizsgálatot alkalmaznak, nevezetesen az ADF-tesztet és a KPSS-tesztet. A Detrending differenciálás alkalmazásával történik. A Trend helyhez kötött idősorokat szigorú helyhez kötött idősorokká alakítják át. A szükséges előrejelzési modell most már alkalmazható egy álló idősoros adatokra.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.