【发布时间】:2014-12-20 22:21:44
【问题描述】:
我有每月的通货膨胀数据。从 1999/01 到 2014/10。
我制作了一个 AR(1) 模型,数据从 1999/01 到 2007/12,它给了我: Yt = 0.0057 + 0.6212Yt-1 ;
data<-read.table("C:/TimeSeries/Inflation/inflation.txt", header=T, dec=",")
data.ts <- ts(data, start=c(1999,01), freq=12)
time = window(data.ts, start=c(1999,01),end=c(2007,12))
inflarima<-Arima(time,order=c(1,0,0))
inflarima
正如理论所说,我的第一个预测应该是:Et(Yt+1) = 0.0057 + 0.6212Yt ;第二个:0.0057 + 0.6212*0.0057 + (0.6212^2)*Yt 以此类推……对吧???
所以,我的第一个周期预测是 2008 年 1 月,它给出的值是 (0,0057 + 0,6212*Y2007,12 = (0,0057 + 0,6212*0.003790990 = 0,008054962988强>) 0,008054962988
使用递归方法运行预测代码
stat=c(2008,01) #First Prediction will be january 2008
out_of_sample=window(data.ts,start=stat) #out of sample data
recurs.pred1=ts(0,start=stat,end=c(2014,7),frequency=12) #Matrix to put the predictions through RECURSIVE METHOD
for (t in 1:(length(dado_de_fora))) {
reg.recur1=Arima(window(time,end=c(2007,3+t)),c(1,0,0))
recurs.pred1[t]=predict(reg.recur1,n.ahead=1)$pred #y chapeu de 1T2008, modelo Arma(1,1)
}
我的预测价值:
recurs.pred1[]
Jan Feb Mar Apr May .......
2008 0.004556208 0.003796366 0.003965125 0.003948726 0.003681815 .......
问题从这里开始:
Jan
2008 0.004556208
我是如何得到这个值的???!!正确的值应该是 0,008054962988 ,对吗?
这些是数据:从 1999/01 到 2014/07
【问题讨论】:
-
错了,错了。错了。
-
提供可重现的例子。
标签: r time-series forecasting