【问题标题】:How can I extract coefficients from this model in caret?如何在插入符号中从此模型中提取系数?
【发布时间】:2019-08-06 02:11:24
【问题描述】:

我正在使用 caret 包和 jumps 包来获取要在线性回归中使用的变量数量。如何提取使用 mdl$bestTune 变量数的 RMSE 最低的模型?如果无法做到这一点,您是否会建议其他包中的函数允许逐步线性回归的 locv 并实际上允许我找到最终模型?

以下是可重现的代码。从中,我可以从mdl$bestTune 看出变量的数量应该是 4(即使我希望是 3)。似乎我应该能够从summary(mdl$finalModel) 的第三行中提取变量,但我不确定在一般情况下我将如何做到这一点,而不仅仅是这个例子。

library(caret)
set.seed(101)
x <- matrix(rnorm(36*5), nrow=36)
colnames(x) <- paste0("V", 1:5)
y <- 0.2*x[,1] + 0.3*x[,3] + 0.5*x[,4] + rnorm(36) * .0001 
train.control <- trainControl(method="LOOCV")
mdl <- train(x=x, y=y, method="leapSeq", trControl = train.control, trace=FALSE)
coef(mdl$finalModel, as.double(mdl$bestTune))
mdl$bestTune
summary(mdl$finalModel)
mdl$results

这是我的问题背后的背景,以防万一。我有数百个共同基金的历史月度回报。每个基金的回报将是一个因变量,我想针对少数(例如 5 个)因素的一组回报进行回归。对于每个基金,我想进行逐步回归。我预计这五个因素中只有 1 到 3 个对任何基金都具有重要意义。

【问题讨论】:

  • 您需要summary(mdl$finalModel) 的哪一部分?包含V1V2...列的表?
  • 第三行只有Forced in Forced out,这真的是你想要的吗?
  • @RonakShah 很抱歉没有让我的问题更清楚。如何提取使用 mdl$bestTune 变量数的 RMSE 最低的模型?我会更新我的问题。

标签: r linear-regression r-caret feature-selection


【解决方案1】:

您可以使用: coef(mdl$finalModel,unlist(mdl$bestTune))

【讨论】:

    猜你喜欢
    • 2018-06-13
    • 2021-08-11
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多