반응형
statsmodels.tsa.stattools의 adfuller를 이용해서 데이터의 정상성을 가지는지 파악할수 있다.
statsmodels.tsa.stattools.adfuller(
x,
maxlag=None,
regression='c',
autolag='AIC',
store=False,
regresults=False)
- x : 데이터
- maxlag : 테스트에 포함된 최대 지연, 기본값 12*(nobs/100)^{1/4}는 None
- regression : 회귀에 포함할 상수 및 추세 순서입니다.
- "c": 상수만(기본값).
- "ct": 상수 및 추세.
- "ctt": 일정하고 선형 및 이차 추세입니다.
- "n": 상수 없음, 추세 없음.
- autolag : 0, 1, …, maxlag 값 중 lag 길이를 자동으로 결정할 때 사용하는 방법.
- "AIC"(기본값) 또는 "BIC"인 경우 해당 정보 기준을 최소화하기 위해 지연 수가 선택됩니다.
- maxlag의 "t-stat" 기반 선택. 최대 시차로 시작하여 5% 크기 검정을 사용하여 마지막 시차 길이에 대한 t-통계량이 유의할 때까지 시차를 삭제합니다.
- None이면 포함된 지연 수가 maxlag로 설정됩니다.
- store : True이면 adf 통계에 추가로 결과 인스턴스가 반환됩니다. 기본값은 False입니다.
- regresults : True이면 전체 회귀 결과가 반환됩니다. 기본값은 False입니다.
#ADF-test(Original-time-series)
res = sm.tsa.adfuller(data,regression='ct')
print('p-value:{}'.format(res[1]))
#p-value:0.22741996706165474
#ADF-test(differenced-time-series)
res = sm.tsa.adfuller(data.diff().dropna(),regression='c')
print('p-value:{}'.format(res[1]))
#p-value:0.004603382380895592
원본데이터의 p-value가 0.22 > 0.05보다 크므로 정상성을 가지지 않는다.
정상성을 가지게 하기 위해 차분하여 ADF test진행 p-value가 0.004 > 0.05 보다 작으므로 정상성을 가지게 되었다.
차분을 두어 데이터의 정상성을 가지게 해야한다.
반응형
'빅데이터 분석 > Python' 카테고리의 다른 글
[시계열 분석] 부분자기상관함수(PACF) (0) | 2022.07.20 |
---|---|
[시계열분석] 자기 상관 함수(ACF) (0) | 2022.07.20 |
[seasonal_decompose] 시계열 데이터 분해 (0) | 2022.07.20 |
[chunksize]대용량 데이터 읽어오기 (0) | 2022.07.20 |