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 傾向テストを実行する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です