끄적이는 개발노트
260522_강의 정리 (시계열분석, Statsmodel) 본문
728x90
Statsmodels · 시계열 분석
Statsmodels와 시계열 분석 완전 정리
- AR · MA · ARMA · ARIMA → 단변량 시계열 예측의 핵심 모델 계보
- SARIMA · VAR · VECM → 계절성·다변량·장기균형까지 확장
- model.summary() 한 줄로 모델 전체 성적표 확인 가능
1. 시계열 분석 모델 계보
모델을 이해하는 핵심 질문 → "무엇을 보고 현재를 예측하는가?"
AR
Autoregression · 자기회귀
- 과거의 나 자신 값으로 현재 예측 — "어제 더웠으니 오늘도 더울 것이다"
- 차수 p = 몇 시점 전까지 참조할 것인가 → PACF 그래프로 결정
MA
Moving Average · 이동평균
- 과거 예측 오차(잔차)로 현재 예측 — "지난 예측이 틀렸으니 보정하자"
- 차수 q = 몇 번의 오차까지 반영할 것인가 → ACF 그래프로 결정
ARMA
Autoregressive Moving Average
- AR + MA 결합 — 과거 값과 과거 오차를 동시에 활용
- 정상 시계열에만 적용 가능 / 파라미터 : ARMA(p, q)
ARIMA
Autoregressive Integrated Moving Average
- ARMA + 차분(d) 통합 → 비정상 시계열도 처리 가능
- d = 차분 횟수 (현재값 - 이전값으로 추세 제거 → 정상화)
- 파라미터 : ARIMA(p, d, q)
💡 새 개념 — 이 섹션에 등장하는 용어
정상 시계열 Stationarity
- 평균 · 분산 · 공분산이 시간이 지나도 일정한 상태
- AR · MA · ARMA 모델의 전제 조건
- 비정상이면 차분 · 변환으로 정상화 후 적용
평균이 일정하고 분산이 균일한 랜덤 신호
차분 Differencing
- 연속된 관측값 간 차이를 계산 (yₜ - yₜ₋₁)
- 추세 제거 → 정상성 확보
- 연속수학의 미분과 유사한 역할
d=1 → 1차 차분 / d=2 → 2차 차분
잔차 Residual
- 예측값과 실제 관측값의 차이
- 잔차가 백색잡음에 가까울수록 좋은 모델
- MA 모델은 이 잔차의 패턴을 활용
실제값 100 - 예측값 95 → 잔차 5
백색잡음 White Noise
- 평균 0, 분산 일정, 시점 간 상관관계 없는 순수 무작위 오차
- 잔차가 백색잡음 = 모델이 패턴을 다 설명했음을 의미
완전 무작위 주사위 던기기 결과
p · d · q 핵심 요약
· p → 과거 몇 시점을 볼 것인가 (AR 차수, PACF로 결정)
· d → 차분을 몇 번 할 것인가 (비정상 → 정상화)
· q → 과거 오차를 몇 번까지 볼 것인가 (MA 차수, ACF로 결정)
· p → 과거 몇 시점을 볼 것인가 (AR 차수, PACF로 결정)
· d → 차분을 몇 번 할 것인가 (비정상 → 정상화)
· q → 과거 오차를 몇 번까지 볼 것인가 (MA 차수, ACF로 결정)
2. 고급 시계열 모델 비교
ARIMA에서 한 단계씩 확장된 모델들 — 데이터 특성에 따라 선택
ARIMA
기본 단변량 모델
- 추세 변동 처리 / 변수 1개짜리 시계열의 기본 모델
SARIMA(X)
Seasonal ARIMA + 외생변수
- ARIMA + 계절성(Seasonal) 패턴 추가 — 매년 12월 판매 급증 같은 패턴
- X = 외생변수(Exogenous) 포함 버전 — 날씨·광고비 같은 외부 요인도 반영
- 상태공간 모델 기반으로 외부충격도 처리 가능
VAR
Vector Autoregression · 벡터 자기회귀
- ARIMA는 변수 1개 → VAR은 여러 변수를 동시에 모델링
- 모든 내생변수가 서로 영향을 주고받는 관계 포착
- 전제 조건 : 각 변수가 정상시계열 + 공적분 없을 때 사용
→ 금리 ↔ 환율 ↔ 주가가 서로 영향을 줄 때
VECM
Vector Error Correction Model
- VAR에서 공적분이 있을 때 사용
- 공적분 = 각각은 불안정하지만 장기적으로 함께 움직이는 관계
- 단기 이탈 + 장기균형으로의 복귀 패턴을 동시에 모델링
→ 원유 가격 ↔ 휘발유 가격 (장기적으로 같이 오르내림)
💡 새 개념 — 이 섹션에 등장하는 용어
공적분 Cointegration
- 각 변수는 비정상이지만, 선형 결합하면 정상이 되는 관계
- 장기균형 관계가 존재함을 의미
- 공적분 있음 → VECM / 없음 → VAR
원유·휘발유 각각은 불안정하나 장기적으로 동조
내생변수 Endogenous Variable
- 모델 내에서 서로 영향을 주고받는 변수
- VAR에서는 모든 변수가 내생변수로 취급
금리 ↔ 환율 — 서로 원인이자 결과
외생변수 Exogenous Variable
- 모델 외부에서 영향을 주지만 영향을 받지 않는 변수
- SARIMAX의 X 성분
판매량 예측 시 날씨·광고비를 외생변수로 추가
3. ARIMA 모델 선택 흐름
처음 접하면 막막한 ARIMA — 단계별로 따라가면 체계적으로 선택 가능
①
원본 시계열 확인
데이터를 시각화해서 추세·계절성·이상치 유무 파악
②
정상성 확인 — ADF 검정
"평균과 분산이 시간에 따라 일정한가?" → 비정상이면 차분 진행
③
d 결정 — 차분 횟수
차분 후 정상시계열이 되면 d = 1 / 한 번 더 필요하면 d = 2
④
ACF / PACF 그래프 분석
ACF → q 결정 (MA 차수 힌트) / PACF → p 결정 (AR 차수 힌트)
⑤
ARIMA(p, d, q) 후보 여러 개 생성
p, q 조합을 바꿔가며 여러 모델 학습
⑥
AIC / BIC 최소 모델 선택
값이 작을수록 성능은 좋고 복잡하지 않은 균형 잡힌 모델
⑦
잔차 검정
잔차가 백색잡음이면 합격 / 패턴이 남아 있으면 p · q 재조정
원본 시계열
→
정상성 확인
→
ACF / PACF
→
후보 생성
→
AIC/BIC 선택
→
잔차 검정
💡 새 개념 — 이 섹션에 등장하는 용어
ADF 검정 Augmented Dickey-Fuller
- 시계열이 정상인지 통계적으로 확인하는 검정
- p-value < 0.05 → 정상 시계열로 판단
- p-value ≥ 0.05 → 비정상 → 차분 필요
AIC / BIC
- 모델 복잡도 대비 성능을 측정하는 지표
- 값이 작을수록 좋은 모델 — 과적합 방지 기준
- BIC는 AIC보다 파라미터 수에 더 강하게 페널티 부여
AIC = 120 vs 135 → 120인 모델 선택
ACF 자기상관함수
- 각 lag별 자기상관계수를 그래프로 표현
- lag q 이후 급격히 0으로 수렴 → MA(q) 적합
PACF 편자기상관함수
- 중간 lag 영향을 제거한 순수 상관관계
- lag p 이후 급격히 0으로 수렴 → AR(p) 적합
4. 모델 평가 지표
"내 모델이 얼마나 잘 예측하는가?"를 숫자로 나타내는 기준
| 지표 | 핵심 의미 | 특징 및 사용 시점 |
|---|---|---|
| MAE | 평균 절대 오차 | 이상치 영향 적음 · 직관적 · 이상치 많은 데이터에 적합 |
| MSE | 평균 제곱 오차 | 오차를 제곱 → 큰 오차에 더 강한 페널티 · 이상치에 민감 |
| RMSE | 실제 단위 평균 오차 | MSE의 제곱근 → 원래 데이터 단위와 같아 해석 쉬움 · 큰 오차를 줄이고 싶을 때 |
| MAPE | 평균 퍼센트 오차 | 오차를 %로 표현 → 단위가 달라도 비교 가능 · 스케일 다른 데이터 간 비교 |
| R² | 설명력 | 모델이 데이터 변동을 얼마나 설명하는가 · 1에 가까울수록 좋음 · 0.7 이상이면 양호 |
지표 선택 가이드
· 이상치 많음 → MAE | 큰 오차 민감 → RMSE | 단위 무관 비교 → MAPE
· 이상치 많음 → MAE | 큰 오차 민감 → RMSE | 단위 무관 비교 → MAPE
5. summary()의 강력함
model.summary() 한 줄로 모델 전체 성적표를 출력 — 진단에 필요한 핵심 정보 한눈에 확인
coef
각 변수가 결과에 미치는 영향의 크기 — 클수록 해당 변수의 예측 기여도 높음
std err
계수 추정의 불안정성 — 작을수록 계수를 신뢰할 수 있음
t-stat
이 변수가 통계적으로 유의미한지 검정하는 수치 — 절댓값이 클수록 유의미
p-value
0.05 미만이면 통계적으로 유의미한 변수 — 0.05 이상이면 모델에서 제거 고려
CI
실제 계수가 존재할 범위 (95% 신뢰구간) — 0을 포함하면 유의미하지 않을 수 있음
R²
모델이 데이터 변동을 얼마나 잘 설명하는가 — 1에 가까울수록 좋음
AIC / BIC
모델 복잡도 대비 성능 점수 — 작을수록 좋은 모델 · 과적합 방지 기준으로 모델 비교 시 활용
💡 새 개념 — 이 섹션에 등장하는 용어
p-value 유의확률
- "이 결과가 우연히 나올 확률"
- p < 0.05 → 우연이 아닐 가능성 95% → 유의미
- p ≥ 0.05 → 우연일 가능성 높음 → 유의미하지 않음
p=0.03 → 유의미 / p=0.12 → 유의미하지 않음
신뢰구간 Confidence Interval
- 95% CI = "이 범위 안에 실제 값이 있을 확률이 95%"
- CI가 0을 포함하면 계수가 의미 없을 수 있음
- CI가 좁을수록 추정이 정밀함
과적합 Overfitting
- 훈련 데이터에는 잘 맞지만 새 데이터에는 성능이 낮은 상태
- 파라미터가 많을수록 과적합 위험 증가
- AIC/BIC는 파라미터 수에 페널티를 부여해 과적합 방지
728x90
'Python' 카테고리의 다른 글
| 260527_강의 정리 (Scipy, 모델) (1) | 2026.05.27 |
|---|---|
| 260526_강의 정리(Scipy, 수치해석) (0) | 2026.05.27 |
| 260521_강의 정리 (시계열 분석) (0) | 2026.05.21 |
| 260520_강의 정리 (Data Summerization & EDA) (0) | 2026.05.20 |
| 260519_강의 정리 (데이터 전처리) (0) | 2026.05.20 |
