我遵循this article来实现hdm包中的单套索和双套索过程,但不知道为什么双套索对我来说不能正常工作。我将使用包提供的数据集,因为除了我自己的数据集之外,它对我也不起作用。
在本文中,我加载了GrowthData数据集,然后尝试实现双套索过程:
library(hdm)
DS=rlassoEffects(Outcome~. , I=~gdpsh465, data=GrowthData)
summary(DS)
但是,我收到以下错误消息:
> DS=rlassoEffects(Outcome~. , I=~gdpsh465, data=GrowthData)
Error in colnames(X) : object 'X' not found
> summary(DS)
Error in summary(DS) : object 'DS' not found
我知道official guide for rlassoEffects为函数提供了两种不同的语法,因此对“对象X”的引用似乎指的是另一种语法。
但是,为什么我使用的语法风格不能正常工作?
谢谢!
发布于 2021-01-07 08:43:05
谢谢你的问题。是的,完全正确。所指示的行中存在错误。我们已经在开发版本中修复了这个问题,该版本可以从package git repository获得。
您可以通过以下命令安装开发版本
devtools::install_github("MartinSpindler/hdm")
您的示例现在应该可以工作了。
我们将很快更新CRAN版本。
发布于 2021-01-05 23:39:02
实际上,我在同一篇文章中偶然发现了同样的问题。请注意,rlassoEffects只是rlassoEffect的包装器。您可以尝试在this tutorial之后自己实现它。
编辑:
或者只使用它而不使用包装器。
rlassoEffect(data.matrix(dataset[, -c(1:2)]), unlist(dataset[, 1]), unlist(dataset[, 2]), method = "double selection")
奇怪的是,与你引用的文章相比,这给出了一个稍微不同的系数值。
EDIT2:
我找到了导致这种行为的可能代码行:
I.c <- which(colnames(X) %in% cn[I.c])
它位于文件rlassoEffects.formula的source code中。我已经联系过作者了。让我们看看会发生什么。
https://stackoverflow.com/questions/63001918
复制相似问题