12.6 과거 재구성
때때로 시계열을 반대로 “재구성(backcast)”하는 것이 유용합니다 — 즉, 시간이 흐르는 반대 방향으로 예측하는 것입니다. 이 작업을 해주는 내장된 R 함수가 있지는 않지만, 쉽게 구현할 수 있습니다. 다음의 함수로 ts
객체와 forecast
객체를 뒤집을 수 있습니다.
# Function to reverse time
<- function(y)
reverse_ts
{ts(rev(y), start=tsp(y)[1L], frequency=frequency(y))
}# Function to reverse a forecast
<- function(object)
reverse_forecast
{<- length(object[["mean"]])
h <- frequency(object[["mean"]])
f "x"]] <- reverse_ts(object[["x"]])
object[["mean"]] <- ts(rev(object[["mean"]]),
object[[end=tsp(object[["x"]])[1L]-1/f, frequency=f)
"lower"]] <- object[["lower"]][h:1L,]
object[["upper"]] <- object[["upper"]][h:1L,]
object[[return(object)
}
그리고 나서 어떤 시계열을 재구성하기 위해 이러한 함수를 적용할 수 있습니다. 1996년부터 2011년까지 유로존에서의 분기별 소매업 데이터에 적용한 예제를 살펴보겠습니다. 1994년부터 1995년을 재구성해보겠습니다.
# Backcast example
%>%
euretail reverse_ts() %>%
auto.arima() %>%
forecast() %>%
reverse_forecast() -> bc
autoplot(bc) +
ggtitle(paste(bc[["method"]], "로 재구성한 결과"))

Figure 12.6: ARIMA 모델을 이용하여 유로 지역 분기별 소매 거래를 재구성한 것.