시계열 분석의 이론적 토대를 체계적으로 정리하고, 통계·신호처리·머신러닝 관점에서 주요 알고리즘과 활용 기법을 심화 탐구해 보았다. 특히 비정상성(non-stationarity) 처리, 주파수 영역 분석, 상태 공간 모델(State-Space Model), 그리고 딥러닝 기반 예측 모델까지 폭넓게 다루었다.
수학적 정의
확률 과정으로서의 시계열은, 시간 (t)에 대응하는 확률 변수 (X_t)의 집합으로 정의됩니다.
고전적 분해(Classical Decomposition)
STL 분해(Stl: Seasonal-Trend decomposition using Loess)
from statsmodels.tsa.seasonal import STL
stl = STL(ts, period=12)
res = stl.fit()
res.plot()
정상시계열: 평균과 분산이 시간에 따라 일정, 공분산도 시차만 의존
ADF 검정(Augmented Dickey–Fuller)
from statsmodels.tsa.stattools import adfuller
stat, p, _, _, crit, _ = adfuller(ts)
print(f"ADF 통계량: {stat}, p-value: {p}")
KPSS 검정(Kwiatkowski-Phillips-Schmidt-Shin)
from statsmodels.tsa.stattools import kpss
stat, p, _, crit = kpss(ts, regression='c')
print(f"KPSS 통계량: {stat}, p-value: {p}")
차분(Differencing)
| 분류 | 모델 | 장점 | 단점 |
|---|---|---|---|
| 통계적 | ARIMA / SARIMA | 해석력 우수, 적은 데이터도 가능 | 비선형성·복잡도 처리 어려움 |
| 신호처리 | 스펙트럼 분석, 웨이블릿 | 주파수 특징 추출 탁월 | 시계열 길이에 민감 |
| 머신러닝 | 랜덤포레스트, XGBoost | 비선형 패턴 학습 가능 | 시계열 특성 무시 시 과적합 위험 |
| 딥러닝 | RNN / LSTM / Transformer | 장기 의존성·복합 패턴 학습 | 학습 데이터·연산량 요구량 높음 |
푸리에 변환(FFT)
연속 웨이블릿 변환(CWT)
import pywt, numpy as np
coef, freqs = pywt.cwt(ts, scales=np.arange(1,128), wavelet='morl')
모델 구조
칼만 필터: 시계열 데이터의 실시간 추정 및 예측
from pykalman import KalmanFilter
kf = KalmanFilter(transition_matrices=[[1]], observation_matrices=[[1]])
state_means, _ = kf.filter(ts.values)
Prophet (Facebook)
from fbprophet import Prophet
m = Prophet(yearly_seasonality=True, weekly_seasonality=True)
m.fit(df.rename(columns={'date':'ds','sales':'y'}))
future = m.make_future_dataframe(periods=12, freq='M')
forecast = m.predict(future)
LSTM
from keras.models import Sequential
from keras.layers import LSTM, Dense
model = Sequential([
LSTM(64, input_shape=(n_timesteps, n_features)),
Dense(1)
])
model.compile('adam','mse')
model.fit(X_train, y_train, epochs=50)
Transformer 기반 예측
활용 사례
- 금융공학: 고빈도(HFT) 데이터 이상 탐지
- 산업 IoT: 설비 상태 예측, 유지보수 시점 자동화
- 기후 모델링: 기온·강수량 장기 예측
느낀 점
“시계열 분석은 통계학·신호처리·머신러닝이 유기적으로 결합된 학문이었고, 특히 정상성 처리와 주파수 분석의 수학적 원리를 이해하니 모델 선택과 하이퍼파라미터 튜닝에 훨씬 자신감이 생겼습니다. 다음 스텝은 Transformer 기반 시계열 예측 모델을 직접 구현해 보고, 기존 통계 모델과 성능을 비교해 보는 것입니다.”