我必须在tslm模型的newdata参数中包含150多个变量。
请建议我这样做。
我试过这个。但我不认为这是一个实际的过程。有人可以建议我采用一种简单而小巧的方法吗?
//将数据框中的151个变量转换为时间序列
x <- 1:151
for(i in seq_along(x)){
y<-ts(data[,i])
assign(paste('X',i,sep=''),y)
}
//我得到151个时间序列对象为X1,X2 .. X151 ..这一步很好。
//模型构建
的 fit<-tslm(X1~trend+X2+X3+ ........ + X151)
//请建议我一个简单的方法,因为手动编写所有150个变量没有意义..实际上变量的数量可能会增加
//预测
fcast&LT - forecast(fit,newdata=data.frame(X2=newframe$Temperature,X3=newframe$Inflation, .................................. till 150 variables))
请建议一种缩短此代码的方法。
注意:&#34; newframe&#34;是预测数据框
答案 0 :(得分:-1)
我对你的问题有点困惑。是150个不同的协变量,您将其包括为回归量,或150个值,如行。如果它们是150个不同的协变量,并且每个协变量都是时间序列,那么使用时间序列来构建模型,正如您所提到的那样
fit<-tslm(X1~trend+X2+X3+ ........ + X151)
对于预测,您不必显式转换为数据框,只需使用以下命令
即可 fcast<-forecast(fit,newdata=data.frame(X2=X2_f,X3=X3_f, .................................. till 150 variables))
其中X2_f,X3_f是包含预测期间值的所有时间序列。
如果有150种不同的协变量,则必须手动包含。 但是,如果单个协变量有150个不同的值,它可以直接包含在
中 fit<-tslm(X1~trend+X2)
,其中X2是包含150个值的时间序列 和预测
fcast<-forecast(fit,newdata=data.frame(X2=X2_f)
其中X2_f是具有预测值的时间序列。
希望这有帮助。