nobs=length(data_set)
fit=arima(data_set, order=c(1,1,1), xreg=1:nobs)
fore=predict(fit, 15, newxreg=(nobs+1):(nobs+15))
arima 是fit模型
predict 是预测
ts.plot 是按时间画图
好吧。。。希望对你有用~~~~~~~~~~~~~
预测的话,应该用接下来的时间,所以应该是预测2014,2015....
程序如下:
new<-data.frame(year=2014)
lm.pred<-predict(z,new,interval="prediction",level=0.95)
lm.pred
解释:第一行表示输入新的点year=2014,注意,即使就一个点,也要采用数据框结构;第二行的函数predict()给出相应的预测值,参数interval="prediction"表示同时要给出相应的置信区间,参数level=0.95表示相应的概率为0.95.这个参数也可以不写,因为它的缺省值为0.95.
你提到的2013的数据不是预测,而是拟合。我们可以通过得到的模型对原来的year这个变量的数据进行拟合。
程序如下:
fit<-fitted(z)
fit
得到的就是在你得到的模型下2006-2013这8年的拟合值了。
希望能对你有所帮助~
简单的说,fitted是拟合值,predict是预测值:
所做的模型是基于给定样本的值建立的,在这些给定样本x1,x2,...,xn(已知所对应的y值)上做预测就是拟合;
在新样本上xn+1,xn+2,...(y值未知)做预测,就是模型预测。
例如,R in action中的例子:
fit<-lm(weight~height,data=women)
fitted(fit)
predict(fit,newdata=data.frame(height=90))
##将90代入,可以对比下结果。