我正在尝试对Caret(使用Huber家族)进行增强的稳健回归,但是在训练模型时出现错误:

library(caret)

X <- rnorm(300, 0, 100)
Y <- rnorm(300, 0, 100000)
data <- cbind(X,Y)

model <- train(Y~X, method="glmboost", data=data, family=Huber())


我收到错误消息“找不到函数Huber()”,但是该错误已明确包含在mboost软件包中(glmboost所基于的软件包)。

任何帮助将非常感激。

最佳答案

如果仅使用library(caret)运行method="glmboost",它将加载mboost程序包,但不会将mboost程序包附加到搜索路径。不建议使用程序包自动附加其他程序包,因为它们可能会导入可能与您已加载的其他功能冲突的功能。因此,大多数软件包会私下加载依赖关系。如果用包名完全限定了函数名,则可以在模型中使用它

model <- train(Y~X, method="glmboost", data=data, family=mboost::Huber())


或者,您也可以运行library(mboost)将软件包附加到搜索路径,这样就不必包括软件包名称前缀。

08-25 05:52