r - R中的TSLM函数
问题描述
我目前在 R 中运行 TSLM 函数,我正在创建一个基于回归的模型,该模型包含外部信息,例如天气和马铃薯价格。我从创建虚拟变量开始,但是建议我将温度作为连续变量合并,因为数据会因分类而丢失。虽然我没有收到错误消息,但我的预测错误有点大,所以我想知道我是否正确地这样做了。
我的代码如下:
x <- as.data.frame(cbind(month.dummies[, -12], df.Data$`Difference in Temp`, df.Data$`Potato price`, df.Data$`Quadratic.Term.Potatoes`, df.Data$`Quadratic.Term.Temp`))
y <- df.Data$Demand
nTotal <-length(y)
nValid <- 12
nTrain <- nTotal - nValid
xTrain <- x[1:nTrain,]
yTrain <- y[1:nTrain]
xValid <- x[(nTrain + 1):nTotal, ]
yValid <- y[(nTrain + 1):nTotal]
formula <- as.formula(paste("yTrain", paste(c("trend", colnames(xTrain)), collapse = "+"),
sep = "~"))
Data.tslm <- tslm(formula, data = xTrain, lambda = "auto", h = 12)
Data.tslm.pred <- forecast(Data.tslm, newdata = xValid)
因此,当我尝试绘制此图时,我的时间序列似乎被扭曲了。
这表示实际的时间序列
然而,当我绘制图表时,时间序列的第一个值似乎超过 100,000,我似乎无法弄清楚为什么。
任何帮助将不胜感激,因为我完全被困住了。如果我忽略了某些事情,请指出我正确的方向。
亲切的问候
解决方案
推荐阅读
- python - 有没有办法参数化 VS Code 的 python.pythonPath 设置?
- javascript - 无法在 Visual Studio 中调试 JS:验证断点位置
- python - Python Lambda 函数变量排序
- javascript - 有什么办法可以将一个java脚本字符串变成一个数组然后改变数组值然后最后把它变成一个字符串
- c# - 为什么我的列表框中没有显示任何内容?C#
- c# - ASP.Net Azure OpenId 集成
- android - Android - 填充回收站视图问题
- java - Java多线程在长进程中减慢,最大CPU使用率
- xamarin.forms - Xamarin.Forms - 信息丰富的应用布局建议/方向
- android - 返回主活动后取消选中导航抽屉中的菜单项