0

我正在尝试对 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 所基于的包)。

任何帮助将非常感激。

4

1 回答 1

1

如果你只是运行library(caret)method="glmboost"会加载mboost包,但它不会将mboost包附加到你的搜索路径。不鼓励包自动附加其他包,因为它们可能会导入可能与您已加载的其他功能冲突的功能。因此,大多数包都是私下加载依赖项的。如果你用包名完全限定函数名,那么你可以在你的模型中使用它

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

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

于 2019-04-10T15:11:35.833 回答