【发布时间】:2020-05-30 12:20:43
【问题描述】:
正如标题所暗示的,我的目标是使用 L1 惩罚(Lasso)执行时间序列交叉验证。 由于数据框是时间序列格式,显然时间序列分析的结果应该比普通的简历更合适。
这是我尝试过的代码行
library(caret)
library(ggplot2)
library(pls)
economics
timeSlices <- createTimeSlices(1:nrow(economics),
initialWindow = 36, horizon = 12, fixedWindow = FALSE)
trainSlices <- timeSlices[[1]]
testSlices <- timeSlices[[2]]
这允许为一个训练集创建两个切片(总是得到一个更多的观察值),同时保持测试集的长度不变。 问题就出现在这里
plsFitTime <- train(unemploy ~ pce + pop + psavert,
data = economics[trainSlices[[1]],],
method = "glmnet",
alpha = 1)
这里是错误
出了点问题;缺少所有 RMSE 指标值:
RMSE Rsquared MAE
Min. : NA Min. : NA Min. : NA
1st Qu.: NA 1st Qu.: NA 1st Qu.: NA
Median : NA Median : NA Median : NA
Mean :NaN Mean :NaN Mean :NaN
3rd Qu.: NA 3rd Qu.: NA 3rd Qu.: NA
Max. : NA Max. : NA Max. : NA
NA's :9 NA's :9 NA's :9
Error: Stopping
In addition: Warning message:
In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, :
There were missing values in resampled performance measures.
我真的不明白这可能有什么问题。
我的最终目标是表演
pred <- predict(plsFitTime,economics[testSlices[[1]],])
true <- economics$unemploy[testSlices[[1]]]
对此有何建议?
【问题讨论】:
-
这似乎主要是一个方法问题,最好在 CrossValidated.com 上寻求可靠的答案。与此同时,您可能想在那里进行自己的搜索。并查看:books.google.es/books/about/…
标签: r cross-validation r-caret glmnet lasso-regression