Python での拡張 dickey-fuller テスト (例付き)
時系列に傾向がなく、時間の経過とともに一定の変動を示し、時間の経過とともに一定の自己相関構造がある場合、時系列は「定常」であると言われます。
時系列が定常であるかどうかをテストする 1 つの方法は、次の帰無仮説と対立仮説を使用する拡張ディッキー・フラー検定を実行することです。
H 0 :時系列は非定常です。言い換えれば、その構造は時間に依存し、その変化は時間の経過とともに一定ではありません。
H A :時系列は静止しています。
検定のp 値が特定の有意水準 (例: α = 0.05) を下回っている場合、帰無仮説を棄却し、時系列が定常であると結論付けることができます。
次のステップバイステップの例は、Python で特定の時系列に対して拡張ディッキー フラー テストを実行する方法を示しています。
例: Python での拡張された Dickey-Fuller テスト
Python に次の時系列データがあるとします。
data = [3, 4, 4, 5, 6, 7, 6, 6, 7, 8, 9, 12, 10]
データに対して拡張ディッキー・フラー検定を実行する前に、データを視覚化するための簡単なプロットを作成できます。
import matplotlib. pyplot as plt plt. plot (data)
拡張された Dickey-Fuller テストを実行するには、 statsmodelsライブラリのadfuller()関数を使用できます。まず、statsmodels をインストールする必要があります。
pip install statsmodels
次に、次のコードを使用して、拡張された Dickey-Fuller テストを実行できます。
from statsmodels. tsa . stattools import adfuller #perform augmented Dickey-Fuller test adfuller(data) (-0.9753836234744063, 0.7621363564361013, 0, 12, {'1%': -4.137829282407408, '5%': -3.1549724074074077, '10%': -2.7144769444444443}, 31.2466098872313)
結果の最も重要な値を解釈する方法は次のとおりです。
- テスト統計: -0.97538
- P 値: 0.7621
p 値は 0.05 未満ではないため、帰無仮説を棄却できません。
これは、時系列が静止していないことを意味します。言い換えれば、その構造は時間に依存し、その変化は時間の経過とともに一定ではありません。
追加リソース
Matplotlib で時系列をプロットする方法
Pandas DataFrame から複数のシリーズをプロットする方法
Python で Mann-Kendall 傾向テストを実行する方法