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 검정의 귀무가설을 기각합니다.

이는 시계열이 고정 되어 있지 않음을 의미합니다.

참고 : 여기에서 statsmodels 패키지의 kpss() 함수에 대한 전체 문서를 찾을 수 있습니다.

추가 리소스

다음 튜토리얼은 Python에서 시계열 데이터로 작업하는 방법에 대한 추가 정보를 제공합니다.

Python에서 증강된 Dickey-Fuller 테스트를 수행하는 방법
Python에서 Mann-Kendall 추세 테스트를 수행하는 방법
Matplotlib에서 시계열을 그리는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다