품질관리(QAQC) 데이터 부트캠프(본캠프)

본캠프_10주차(목)_TIL(ADF, ACF, ARIMA 정리)

Wat_zy 2025. 11. 20. 09:16

✅ 오늘 한 것

태블로, 시계열 라이브세션, 기초 프로젝트 복습


✏️ 오늘 배운 점

시계열

ARIMA, SARIMA 같은 고전 시계열 모델은 데이터가 정상 시계열이라고 가정

하지만, 실제 데이터들은 대부분 비정상 시계열이다. 

 

따라서, 모델링 진행 전 정상성 검사 → ADF 사용을 통해 정상 시계열로 변환이 필요하다.

 

ADF의 귀무가설(H0)과 대립가설(H1)

구분 의미
H₀ (귀무가설) 단위근 존재 → 비정상 시계열
H₁ (대립가설) 단위근 없음 → 정상 시계열

 

  • p-value > 0.05 → 단위근을 기각할 수 없음 → 비정상 시계열
  • p-value < 0.05 → 단위근 기각 → 정상 시계열

정상 시계열: 시간이 지나도 평균, 분산, 자기공분산이 일정한 시계열

특징 3가지

  1. 평균이 일정함
  2. 분산이 일정함
  3. 자기공분산이 “시점 t”가 아니라 “두 점의 차이 h(lag)”에만 의존

비정상 시계열: 평균·분산·구조가 시간에 따라 변하는 시계열

특징

  • 추세(Trend) 존재
  • 계절성(Seasonality) 존재
  • 확률 보행(Random walk)
  • 분산이 점점 커짐(heteroscedastic)

ADF 함수의 반환값 구조

result = adfuller(series)

result[0] → ADF Statistic
result[1] → p-value
result[2] → usedlag(사용된 lag 수)
result[3] → nobs(검정 시 사용된 관측치 수)
result[4] → critical values (임계값 dict)
result[5] → icbest (정보기준값)

result[0]가 음수일수록 정상일 가능성 높아짐

result[1]을 통해 정상 시계열과 비정상 시계열 확인

 

ARIMA

ADF로 정상 여부 판단

  • p-value < 0.05 → 정상 시계열
  • p-value > 0.05 → 비정상 → 변환 필요

정상성 확보 후 적용한 차분 횟수가 ARIMA의 d가 된다. ARIMA의 구성 요소(p, d, q)

 

  • ACF → MA(q)
    과거 오차(ε)의 영향이 몇 시점까지 있는지 확인
  • PACF → AR(p)
    과거 값(y)의 영향이 몇 시점까지 있는지 확인

ARIMA(p, d, q)로 예

  • p: 자기회귀(AR) 차수
  • d: 차분(diff) 횟수
  • q: 이동평균(MA) 차수

정상화된 데이터를 기반으로 ARIMA(p, d, q) 모델이 미래 시점 값을 예측합니다.

get_forecast(): statsmodels ARIMA/ARMA/ARIMAX/SARIMA/AR/MA 모델에서 앞으로의 값을 예측하는 함수

result = model.get_forecast(steps=len(test))


✏️ 오늘의 질문

1. 정상성 검사 → ADF 사용을 통해 정상 시계열로 변환이 되는가?

ADF는 현재 시계열이 정상인지 비정상인지 판별하는 역할만 진행

ADF 검정 실행 결과 비정상일 경우 차분(diff)을 적용하여 정상성이 확인될 때까지 반복한다.

비정상 시계열 → (차분) → ADF → (정상판정) → ARIMA 모델링

 

2. ADF 확인을 위한 정상으로의 과정은 로그 변환, 차분(diff)으로만 진행이 되는가?

로그 변환과 차분(diff)만으로 이루어지는 것이 아니다.
로그 변환 후 차분을 하는 방법이 흔히 사용되지만, 데이터의 특성에 따라 Box–Cox 변환 → 차분(diff) 과정을 적용하여 정상성을 확보하는 것이 더 효과적일 때도 있다.


📌추가로 해야 할 점

태블로, Streamlit 라이브세션