Python에서 mann-kendall 추세 테스트를 수행하는 방법
Mann-Kendall 추세 테스트는 시계열 데이터에 추세가 있는지 여부를 확인하는 데 사용됩니다. 이는 비모수적 테스트입니다. 즉, 데이터의 정규성에 대한 기본 가정이 이루어지지 않음을 의미합니다.
테스트 가설은 다음과 같습니다.
H 0 (귀무가설): 데이터에 추세가 없습니다.
HA (대립가설): 데이터에 추세가 존재합니다. (이것은 긍정적일 수도 있고 부정적인 추세일 수도 있습니다)
검정의 p-값이 특정 유의 수준(일반적으로 선택되는 값은 0.10, 0.05, 0.01)보다 낮으면 시계열의 데이터에 추세가 존재한다는 통계적으로 유의미한 증거가 있는 것입니다.
이 튜토리얼에서는 Python에서 Mann-Kendall 추세 테스트를 수행하는 방법을 설명합니다.
예: Python의 Mann-Kendall 추세 테스트
Python에서 Mann-Kendall 추세 테스트를 수행하려면 먼저 pymannkendall 패키지를 설치합니다.
pip install pymannkendall
이 패키지를 설치하면 시계열 데이터세트에 대해 Mann-Kendall 추세 테스트를 수행할 수 있습니다.
#create dataset data = [31, 29, 28, 28, 27, 26, 26, 27, 27, 27, 28, 29, 30, 29, 30, 29, 28] #perform Mann-Kendall Trend Test import pymannkendall as mk mk. original_test (data) Mann_Kendall_Test(trend='no trend', h=False, p=0.422586268671707, z=0.80194241623, Tau=0.147058823529, s=20.0, var_s=561.33333333, slope=0.0384615384615, intercept=27.692307692)
테스트 결과를 해석하는 방법은 다음과 같습니다.
- trend : 추세를 나타냅니다. 가능한 결과에는 증가, 감소 또는 추세 없음이 포함됩니다.
- h: 추세가 있으면 참입니다. 추세가 없으면 거짓입니다.
- p: 테스트의 p 값입니다.
- z: 정규화 테스트 통계입니다.
- 타우: 켄달 타우.
- s: Mann-Kendal 점수
- var_s: 편차 S
- 기울기: Theil-Sen/기울기 추정기
- 차단: 견고한 Kendall-Theil 라인 차단
우리가 관심을 갖는 주요 값은 데이터에 통계적으로 유의미한 추세가 있는지 여부를 알려주는 p-값입니다.
이 예에서 p-값은 0.4226 이며 이는 0.05 이상입니다. 따라서 시계열 데이터에는 큰 추세가 없습니다.
Mann-Kendall 추세 테스트를 수행하는 것 외에도 Matplotlib를 사용하여 빠른 선 그래프를 만들어 실제 시계열 데이터를 시각화할 수 있습니다.
import matplotlib. pyplot as plt plt. plot (data)
타임스 
차트를 보면 데이터가 약간 분산되어 있는 것을 볼 수 있는데, 이는 데이터에 명확한 추세가 없음을 확인시켜 줍니다.
추가 리소스
Matplotlib에서 시계열을 그리는 방법
Python에서 증강된 Dickey-Fuller 테스트를 수행하는 방법
Pandas DataFrame에서 여러 계열을 그리는 방법