비계절성 데이터에서 auto.arima()와 ets() 비교
AICc 통계량은 같은 모델 계열 내에서 모델을 선택할 때 유용합니다. 예를 들어 ETS 모델들 중에서 선택하거나 ARIMA 모델들 중에서 선택할 때 사용할 수 있어요. 그러나 ETS와 ARIMA는 서로 다른 모델 계열이기 때문에, AICc로 두 모델 계열을 직접 비교할 수는 없습니다.
대신, 시계열 교차 검증을 사용하여 austa 데이터에서 ARIMA 모델과 ETS 모델을 비교할 수 있습니다. tsCV()는 예측 객체를 반환하는 함수가 필요하므로, 모델을 적합하고 예측을 반환하는 간단한 함수를 설정하겠습니다. tsCV()의 인수는 시계열, 예측 함수, 예측 지평 h입니다. 2장에 나온 코드 조각을 다시 살펴보세요:
e <- matrix(NA_real_, nrow = 1000, ncol = 8)
for (h in 1:8)
e[, h] <- tsCV(goog, naive, h = h)
...
또한, R의 파이프 연산자는 왼쪽에 있는 값을 받아 오른쪽에 있는 함수의 인수로 차례대로 전달한다는 점을 기억하세요. 이전 장에서 보았던 코드를 바탕으로 한 예시는 다음과 같습니다:
# ets()로 적합한 lynx 시계열의 20년 예측을 그립니다
lynx %>% ets() %>% forecast(h = 20) %>% autoplot()
이번 연습에서는 austa에 적용한 두 예측 함수의 MSE를 비교하고, 더 좋은 예측을 내는 함수로 미래 값을 예측하여 그래프로 그려 보겠습니다. austa는 워크스페이스에 이미 로드되어 있어요.
이 연습은 강의의 일부입니다
R로 배우는 시계열 예측
연습 안내
auto.arima()결과를 예측하도록farima()함수를 완성하세요.ets()에 대해 동일한 작업을 수행하는fets()의 미리 작성된 코드를 참고해 같은 구조로 작성하면 됩니다.tsCV()를 사용해 한 걸음 예측 오차로austa에 대한 ETS 모델의 교차 검증 오차를 계산하고, 이를e1에 저장하세요.tsCV()를 사용해 한 걸음 예측 오차로austa에 대한 ARIMA 모델의 교차 검증 오차를 계산하고, 이를e2에 저장하세요.- 각 모델 계열의 교차 검증 MSE를 계산하고 결측값을 제거하세요. MSE 계산 방법이 기억나지 않으면 이전 장을 참고하세요.
- 더 좋은 모델 계열을 사용해
austa의 향후 10년 예측을 만들고 그래프로 표시하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Set up forecast functions for ETS and ARIMA models
fets <- function(x, h) {
forecast(ets(x), h = h)
}
farima <- function(x, h) {
forecast(___, ___)
}
# Compute CV errors for ETS on austa as e1
e1 <- tsCV(austa, ___, ___)
# Compute CV errors for ARIMA on austa as e2
e2 <- tsCV(___, ___, ___)
# Find MSE of each model class
mean(___, ___)
mean(___, ___)
# Plot 10-year forecasts using the best model class
austa %>% ___ %>% ____