在R预测值

时间:2012-10-25 07:02:23

标签: r forecasting

我对R中的预测时间序列模型几乎没有疑问。

我得到的预测值是::

想要获取这些值:40,60,67,80,87作为百分比值。

那么,如何考虑percenatge中阴谋的Y轴

YrTimeSeries <- c(40,60,67,80,87);

tsValue<-ts(YrTimeSeries,frequency=1,start=2006)
library(forecast)
(forecast(tsValue,h=5))
    Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
2011        86.9993 72.19680 101.8018 64.36083 109.6378
2012        86.9993 66.06645 107.9321 54.98528 119.0133
2013        86.9993 61.36233 112.6363 47.79094 126.2077
2014        86.9993 57.39653 116.6021 41.72576 132.2728
2015        86.9993 53.90256 120.0960 36.38220 137.6164
  1. 每年的预测值(蓝线)的值相同。有人可以解释一下为什么吗?
  2. 95%预测间隔为(36.38220,137.62)。它推断出什么?

1 个答案:

答案 0 :(得分:2)

由于您使用默认配置调用了forecast(),因此预测是一条固定线。这将调用ets()(查看forecast(tsValue,h=5)$method以查看用于预测的方法),模型指定为&#34; ZZZ&#34;。 ets()然后试图找到最好的模型,并在#34; ANN&#34;:加性错误,没有趋势,没有季节性(见?ets),因此模型中没有任何内容应该导致预测偏离平坦线。添加更多数据并使用趋势调用ets()以查看趋势预测:

YrTimeSeries <- c(40,60,67,80,87,100,200,300,400)
tsValue<-ts(YrTimeSeries,frequency=1,start=2006)
forecast(tsValue,h=5,model="AAN")

95%的预测区间为您提供了95%的未来观测值所在的区间,假设您的模型已正确指定

编辑:Vids评论他希望预测在0到100之间作为百分比。在这种情况下,我首先将输入数据转换为logits(http://en.wikipedia.org/wiki/Logit),在那里我添加了一些数据,因此我们得到了一个自动趋势:

YrTimeSeries <- c(10,20,30,40,60,67,80,87)
YrTimeSeries.logit <- log((YrTimeSeries/100)/(1-YrTimeSeries/100))
tsValue<-ts(YrTimeSeries.logit,frequency=1,start=2006)

预测后,我们回溯平均预测和预测间隔限制:

100*(1/(1+exp(-(forecast(tsValue,h=5)$mean))))
100*(1/(1+exp(-(forecast(tsValue,h=5)$upper))))
100*(1/(1+exp(-(forecast(tsValue,h=5)$lower))))