2014-06-12 5 views
1

사용 데이터 홀트 - 윈터스 예측 함수 & ggplot() 사용하려고 UKDriverDeathsggplot 및 신뢰 간격

.

기본적으로 신뢰 구간 (2)으로 ggplot (1)에 데이터를 재생하십시오.

library(xts) 
ts_pred <- ts(c(hw$fitted[, 1], pred), start = 1970, frequency = 12) 
df <- merge(as.xts(ts_pred), as.xts(UKDriverDeaths)) 
names(df) <- c("predicted", "actual") 
ggplot(df, aes(x=as.POSIXct(index(df)))) + 
    geom_line(aes(y=predicted), col='red') + 
    geom_line(aes(y=actual), col='black') + 
    theme_bw() + 
    geom_vline(xintercept=as.numeric(as.POSIXct("1982-12-01")), linetype="dashed") + 
    labs(title="Holt-Winters filtering\n", x="Time", y="Observed/Fitted") + 
    theme(plot.title = element_text(size=18, face="bold")) 

내가 홀트 - 겨울 예측에 대한 신뢰 구간 (2)를 찾고 있어요 : 이것은 (1) ggplot()에서 그것을 만드는 솔루션

data('UKDriverDeaths')  
past <- window(UKDriverDeaths, end = c(1982, 12)) 
hw <- HoltWinters(past) 
pred <- predict(hw, n.ahead = 10) 
plot(hw, pred, ylim = range(UKDriverDeaths)) 
lines(UKDriverDeaths) 

입니다 :

데이터입니다 .

+0

에 두 줄을 추가 할 수 있습니다. – MattBagg

답변

2

일반적으로 예측 "예측 간격"에 대한 신뢰 구간을 호출합니다. predict.HoltWinters 함수를 사용하면 prediction.interval=T을 사용하여 요청할 수 있습니다. 그렇게 할 수 있습니다

pred <- predict(hw, n.ahead = 10, prediction.interval = TRUE) 

이제 반환 된 값의 모양이 변경됩니다. 간단한 벡터가 아니라 매트릭스를 얻으므로이를 처리하기 위해 다른 변형 코드를 조정해야합니다. 시도해보십시오.

ts_pred <- ts(rbind(cbind(hw$fitted[, 1],upr=NA,lwr=NA), pred), 
    start = 1970, frequency = 12) 
df <- merge(as.xts(UKDriverDeaths), as.xts(ts_pred)) 
names(df)[1:2] <- c("actual", "predicted") 

이렇게하면 모든 열이 올바르게 관찰되고 관찰 값과 예상 값 사이에 레이블이 지정됩니다. 당신이`? 당신이 신뢰 구간이 명백 할 것이다 얻기 위해 추가해야하는 두 개의 인수를 predict.HoltWinters` 경우

지금 우리는 단지 플롯

ggplot(df, aes(x=as.POSIXct(index(df)))) + 
    geom_line(aes(y=predicted), col='red') + 
    geom_line(aes(y=actual), col='black') + 
    geom_line(aes(y=upr), col='blue') + 
    geom_line(aes(y=lwr), col='blue') + 
    theme_bw() + 
    geom_vline(xintercept=as.numeric(as.POSIXct("1982-12-01")), 
     linetype="dashed") + 
    labs(title="Holt-Winters filtering\n", x="Time", y="Observed/Fitted") + 
    theme(plot.title = element_text(size=18, face="bold")) 

holt winters gg2 plot

+2

(+1) 예측 주위에 음영 처리 된 영역은'geom_ribbon (aes (ymin = lwr, ymax = upr), alpha = 0.3, fill = "blue")을 사용할 수 있습니다. – MattBagg

+0

대단히 감사합니다! – user3608523