시작하기무료로 시작하기

주간 데이터 예측

주간 데이터의 경우, 계절 길이가 너무 길기(약 52) 때문에 ETS나 ARIMA 모델로 계절성을 다루기 어렵습니다. 대신 사인과 코사인을 사용해 계절성을 모델링하는 조화 회귀(harmonic regression)를 사용할 수 있어요.

fourier() 함수는 필요한 조화항을 쉽게 생성해 줍니다. 차수(\(K\))가 높을수록 계절 패턴이 더 “물결치듯” 유연해집니다. $K=1$이면 단순한 사인 곡선이 됩니다. AICc 값을 최소화하도록 \(K\) 값을 선택할 수 있습니다. 영상에서 보셨듯이, fourier()는 필수 시계열, 생성할 푸리에 항의 개수, 그리고 선택적으로 예측에 필요한 행 수를 입력으로 받습니다:

> # fourier(x, K, h = NULL)

> fit <- auto.arima(cafe, xreg = fourier(cafe, K = 6),
                    seasonal = FALSE, lambda = 0)
> fit %>%
    forecast(xreg = fourier(cafe, K = 6, h = 24)) %>%
    autoplot() + ylim(1.6, 5.1)

사전 로드된 gasoline 데이터는 미국의 완제품 자동차용 가솔린 주간 데이터를 담고 있습니다. 이 연습에서는 이 데이터에 조화 회귀를 적합하고, 향후 3년을 예측해 보겠습니다.

이 연습은 강의의 일부입니다

R로 배우는 시계열 예측

강의 보기

연습 안내

  • AICc를 최소화하도록 선택된 차수 $K=13$으로 gasolinefourier()를 적용해 harmonics라는 이름의 xreg 행렬을 만드세요.
  • fit에 동적 회귀 모델을 적합하세요. 계절성은 회귀 변수가 처리하므로 xregharmonics로, seasonalFALSE로 설정하세요.
  • 같은 방식으로 새로운 xreg 행렬 newharmonics를 만들고, 다음 3년의 예측을 fc로 계산하세요.
  • 마지막으로 예측 결과 fc를 시각화하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Set up harmonic regressors of order 13
harmonics <- fourier(___, K = ___)

# Fit regression model with ARIMA errors
fit <- auto.arima(___, xreg = ___, seasonal = ___)

# Forecasts next 3 years
newharmonics <- fourier(___, K = ___, h = ___)
fc <- forecast(___, xreg = ___)

# Plot forecasts fc
___
코드 편집 및 실행