我正在尝试对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)
将软件包附加到搜索路径,这样就不必包括软件包名称前缀。