RTSLM模型如何使用新数据协议包含多个变量(100个)



我必须在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为预测值的时间序列。

最新更新