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에서 시계열을 그리는 방법