ARIMA와 SARIMA 모델
AR, MA, I 구성 요소, ACF/PACF를 활용한 매개변수 선택, statsmodels를 이용한 ARIMA 적합.
ARIMA와 SARIMA 모델은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.
ARIMA란 무엇인가
ARIMA는 AutoRegressive 통합 이동 평균을 뜻합니다. 정상 시계열을 세 가지 요소로 모델링합니다. 자기회귀(p), 적분/차분(d), 오차의 이동 평균(q)이며, ARIMA(p, d, q)로 표기합니다.
AR(p): 자기회귀
자기회귀 항은 자체 p개 이전 값의 선형 결합으로 다음 값을 예측합니다. 오늘의 값이 최근 며칠의 값에 크게 좌우된다면 0이 아닌 p가 필요합니다.
예를 들어 p=2는 가장 최근의 관측값 두 개를 예측 변수로 사용합니다.
I(d): 적분 및 차분
I 항은 시계열을 정상적으로 만들기 위해 필요한 d차 차분 차수입니다. 이는 이전 수업의 ADF 검정으로 구한 d와 정확히 같습니다. d=1은 선형 추세를 제거합니다.
MA(q): 이동 평균
MA 항은 과거 q개의 예측 오차(충격)를 사용하여 다음 값을 모델링합니다. 자기회귀 부분이 포착하지 못하는 단기 잡음 보정을 포착합니다.
statsmodels에서 ARIMA 적합하기
시계열을 endog와 선택한 차수 튜플로 전달하십시오.
from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(endog=series, order=(p, d, q))
fit = model.fit()
print(fit.summary())예측하기
적합이 끝나면 forecast 또는 get_forecast로 미래 값을 생성할 수 있습니다. get_forecast는 신뢰 구간도 제공합니다.
preds = fit.forecast(steps=12) # next 12 periods
fc = fit.get_forecast(steps=12)
ci = fc.conf_int() # confidence intervalsACF 및 PACF 도표
p와 q를 선택하려면 자기상관 도표를 살펴보십시오.
- ACF(자기상관)는 q(MA 차수)를 선택하는 데 도움이 됩니다.
- PACF(편자기상관)는 p(AR 차수)를 선택하는 데 도움이 됩니다.
상관이 급격히 끊기는 시차를 찾으십시오.
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
plot_acf(series.diff().dropna())
plot_pacf(series.diff().dropna())차수 선택을 위한 AIC와 BIC
AIC와 BIC는 모델의 복잡도에 불이익을 주면서 적합도를 평가합니다. 값이 낮을수록 좋습니다. 여러 (p,d,q) 후보를 적합하고 AIC/BIC가 가장 낮은 모델을 선택하십시오. BIC는 추가 매개변수에 더 큰 불이익을 줍니다.
print("AIC:", fit.aic)
print("BIC:", fit.bic)차수 그리드 탐색
일반적인 방법은 p, d, q의 작은 범위를 순회하며 각각을 적합하고 AIC가 가장 낮은 결과를 유지하는 것입니다. pmdarima.auto_arima와 같은 라이브러리는 이 탐색을 자동화합니다.
best = None
for p in range(3):
for q in range(3):
try:
f = ARIMA(series, order=(p, 1, q)).fit()
if best is None or f.aic < best[1]:
best = ((p, 1, q), f.aic)
except Exception:
pass
print(best)계절성을 위한 SARIMA
SARIMA는 계절 구성 요소를 추가합니다. (P, D, Q, m)에서 m은 계절 길이입니다(월별 데이터의 연간 계절성이라면 12). 일반 ARIMA로는 처리할 수 없는 반복 패턴을 처리합니다.
from statsmodels.tsa.statespace.sarimax import SARIMAX
model = SARIMAX(series,
order=(1, 1, 1),
seasonal_order=(1, 1, 1, 12))
fit = model.fit()ARIMA와 SARIMA 비교
- ARIMA(p,d,q): 추세와 단기 의존성을 다루며 계절성은 없습니다.
- SARIMA(p,d,q)(P,D,Q,m): 반복되는 주기를 위한 계절 항을 추가합니다.
분해 결과 뚜렷한 계절성이 나타났다면 SARIMA를 선택하십시오.
빠른 확인
ARIMA 지식을 확인해 보십시오.
복습
ARIMA(p,d,q)를 배웠습니다. AR은 과거 값을 사용하고, I는 차분 차수이며, MA는 과거 오차를 사용합니다. ARIMA(endog, order=...)로 모델을 적합하고, ACF/PACF와 AIC/BIC를 사용해 차수를 선택하고, 계절성을 위해 SARIMA로 확장했습니다. 다음 주제는 자동 예측을 위한 프로펫입니다.
자주 묻는 질문
“ARIMA와 SARIMA 모델” 강의는 무료인가요?
네 — “ARIMA와 SARIMA 모델” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.
“ARIMA와 SARIMA 모델”에서 뭘 배우나요?
AR, MA, I 구성 요소, ACF/PACF를 활용한 매개변수 선택, statsmodels를 이용한 ARIMA 적합. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“ARIMA와 SARIMA 모델” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 시계열 구성 요소와 정상성
- ARIMA와 SARIMA 모델
- 자동 예측을 위한 Prophet
- 시계열 예측을 위한 LSTM