我对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
(36.38220,137.62)
。它推断出什么?答案 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))))