Python에서 증강된 dickey-fuller 테스트(예제 포함)


시계열은 추세가 없고 시간이 지남에 따라 일정한 변동을 나타내며 시간이 지남에 따라 일정한 자기상관 구조를 갖는 경우 “정지적”이라고 합니다.

시계열이 고정되어 있는지 테스트하는 한 가지 방법은 다음과 같은 귀무 가설과 대립 가설을 사용하는 증강 Dickey-Fuller 테스트를 수행하는 것입니다.

H 0 : 시계열이 고정적이지 않습니다. 즉, 구조는 시간에 따라 달라지며 시간이 지나도 변화가 일정하지 않습니다.

H A : 시계열은 고정되어 있습니다.

검정의 p-값이 특정 유의 수준(예: α = 0.05)보다 낮으면 귀무 가설을 기각하고 시계열이 고정되어 있다는 결론을 내릴 수 있습니다.

다음 단계별 예는 주어진 시계열에 대해 Python에서 증강된 Dickey-Fuller 테스트를 수행하는 방법을 보여줍니다.

예: Python에서 증강된 Dickey-Fuller 테스트

Python에 다음과 같은 시계열 데이터가 있다고 가정합니다.

 data = [3, 4, 4, 5, 6, 7, 6, 6, 7, 8, 9, 12, 10]

데이터에 대해 증강된 Dickey-Fuller 테스트를 수행하기 전에 데이터를 시각화하는 빠른 플롯을 만들 수 있습니다.

 import matplotlib. pyplot as plt

plt. plot (data) 

증강된 Dickey-Fuller 테스트를 수행하려면 statsmodels 라이브러리의 adfuller() 함수를 사용할 수 있습니다. 먼저 statsmodel을 설치해야 합니다.

 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 추세 테스트를 수행하는 방법

의견을 추가하다

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