【发布时间】:2016-11-01 23:33:01
【问题描述】:
以下代码运行,但 不 返回(950 个数值)我所期望的(想要的)。在下面的代码中,result 是一个 72 行 3 列的矩阵。 作为输出,我想要一个包含 72 列和 length(spots) 行 的矩阵。我尝试初始化fcasts<- matrix(0, nrow=length(spots), ncol=72),但随后代码无法运行。
y<- ts(rnorm(1000),start = 1850, frequency=1)
library(forecast)
#Searching for the best models
order.matrix<-matrix(0,nrow = 3, ncol = 6 * 2 * 6)
aic.vec<- numeric(6 * 2 * 6)
k<-1
for(p in 0:5) for(d in 0:1) for(q in 0:5){
order.matrix[,k]<-c(p,d,q)
aic.vec[k]<- AIC(Arima(y, order=c(p,d,q)))
k<-k+1
}
ind<- order(aic.vec,decreasing=F)
aic.vec<- aic.vec[ind]
order.matrix<- order.matrix[,ind]
order.matrix<- t(order.matrix)
result<- cbind(order.matrix,aic.vec)
SlideFunction<- function(data, window, step){
total<- length(data)
spots<- seq(from=1, to=(total-window), by=step)
fit<- vector(mode="list",length=72)
#fcasts<- matrix(0,nrow=length(spots),ncol=72)
fcasts<- numeric(length(spots))
for(i in 1:length(spots)){
for(j in 1:72){
p<- result[j,1]
d<- result[j,2]
q<- result[j,3]
#Note I am using Arima(in forecast package) not arima
fit[[j]]<- Arima(data[spots[i]:(spots[i]+window)], order=c(p,d,q), method="CSS")
fcasts[i]<- forecast(fit[[j]], h=step)$mean
#I expected(would like to have) 72 one-step ahead prediction for each fcasts i.e, store values for each arima model.
}
}
return(fcasts)
}
SlideFunction(y,50,1)
有人可以帮我解决这个问题吗?
【问题讨论】:
-
我添加了缺少的库语句,但上面的代码仍然给出
Error: object 'result' not found错误。我只是想确保我们在同一个页面上,然后再花时间讨论这个,因为你说它运行。你是否也遇到同样的错误? -
我也为结果添加了代码。我希望这个问题现在更清楚了。
-
是否有可能让程序更快,从而可以在更短的时间内获得非常大的数据的结果?
标签: r function loops matrix time-series