我有一个关于在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
- 为预测值(蓝线)每年的值相同。 有人可以解释我为什么?
- 的95%预测区间是
(36.38220,137.62)
这是什么推断?
预测是平线,因为你调用forecast()
与它的默认配置。 这将调用ets()
看forecast(tsValue,h=5)$method
看被用于预测哪一种方法)中,用指定为“ZZZ”的模型。 ets()
则试图找到最好的模式和结算的“ANN”:添加剂的错误,没有趋势,没有季节性(见?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%会说谎, 假设您的模型正确指定的时间间隔。
编辑:西元评论说,他想的预测为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)
预测后,我们backtransform平均预测预报的时间间隔限制:
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))))