Python で kpss テストを実行する方法


KPSS テストを使用すると、時系列に定常傾向があるかどうかを判断できます。

この検定では、次の帰無仮説と対立仮説を使用します。

  • H 0 : 時系列には定常的な傾向があります。
  • H A : 時系列には定常的な傾向はありません

検定のp 値が特定の有意水準 (例: α = 0.05) を下回る場合、帰無仮説は棄却され、時系列には定常傾向がないと結論付けられます。

そうしないと、帰無仮説を棄却できなくなります。

次の例は、Python で KPSS テストを実行する方法を示しています。

例 1: Python での KPSS テスト (定常データを使用)

まず、操作する偽のデータを Python で作成しましょう。

 import numpy as np
import matplotlib. pyplot as plt

#make this example reproducible
n.p. random . seed ( 1 )

#create time series data
data = np. random . normal (size= 100 )

#create line plot of time series data
plt. plot (data) 

statsmodelsパッケージのkpss()関数を使用して、この時系列データに対して KPSS テストを実行できます。

 import statsmodels. api as sm

#perform KPSS test
sm. tsa . stattools . kpss (data, regression=' ct ')

(0.0477617848370993,
 0.1,
 1,
 {'10%': 0.119, '5%': 0.146, '2.5%': 0.176, '1%': 0.216})

InterpolationWarning: The test statistic is outside of the range of p-values available
in the look-up table. The actual p-value is greater than the p-value returned.

結果を解釈する方法は次のとおりです。

  • KPSS テスト統計: 0.04776
  • p値: 0.1
  • 切り捨てオフセットパラメータ: 1
  • 10%5%2.5%1%の臨界値

p 値は0.1です。この値は 0.05 未満ではないため、KPSS 検定の帰無仮説を棄却できません。

これは、時系列には定常的な傾向があると仮定できることを意味します。

注 1 : p 値は実際にはまだ 0.1 より大きいですが、kpss() 関数が生成する最小値は 0.1 です。

注 2 : データに定常傾向があるという検定の帰無仮説を指定するには、引数 regression=’ct’を使用する必要があります。

例 2: Python での KPSS テスト (非定常データを使用)

まず、操作する偽のデータを Python で作成しましょう。

 import numpy as np
import matplotlib. pyplot as plt

#make this example reproducible
n.p. random . seed ( 1 )

#create time series data
data =np. array ([0, 3, 4, 3, 6, 7, 5, 8, 15, 13, 19, 12, 29, 15, 45, 23, 67, 45])

#create line plot of time series data
plt. plot (data) 

繰り返しますが、 statsmodelsパッケージのkpss()関数を使用して、この時系列データに対して KPSS テストを実行できます。

 import statsmodels. api as sm

#perform KPSS test
sm. tsa . stattools . kpss (data, regression=' ct ')

(0.15096358910843685,
 0.04586367574296928,
 3,
 {'10%': 0.119, '5%': 0.146, '2.5%': 0.176, '1%': 0.216})

結果を解釈する方法は次のとおりです。

  • KPSS テスト統計: 0.1509
  • p値: 0.0458
  • 切り捨てオフセットパラメータ: 3
  • 10%5%2.5%1%の臨界値

p 値は0.0458です。この値が 0.05 未満であるため、KPSS 検定の帰無仮説は棄却されます。

これは、時系列が静止していないことを意味します。

: kpss() 関数の完全なドキュメントは、statsmodels パッケージからここで見つけることができます。

追加リソース

次のチュートリアルでは、Python で時系列データを操作する方法に関する追加情報を提供します。

Python で拡張ディッキー・フラーテストを実行する方法
Python で Mann-Kendall 傾向テストを実行する方法
Matplotlib で時系列をプロットする方法

コメントを追加する

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