我必须在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<——forecast(fit,newdata=data.frame(X2=newframe$Temperature,X3=newframe$Inflation, .................................. till 150 variables))
请建议缩短这个代码的方法。注:"newframe"为预测数据帧
我对你的问题有点困惑。是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为预测值的时间序列。