如何使用 R 中的 ExtremeBounds 包将极值边界分析应用于超过 100 个变量的数据集?

How can I apply extreme bounds analysis to a dataset of over 100 variables with the ExtremeBounds package in R?

我有一个包含 107 个变量和 1794 个观测值的数据集。我想实施极值界限分析,以确定 106 个变量中的哪些变量在广泛的回归中与因变量密切相关,每个变量都具有不同的模型规范。我打算 select 最稳健的变量用于我的最终模型。

我正在使用 Marek Hlavac 的 ExtremeBounds 包。我正在尝试 运行 以下代码行:

free=eba(formula=flg_activacion_0_12~., data=Data1, k=0:106, reg.fun=glm, family=binomial(link='logit'), draws=100)

因变量

flg_activacion_0_12

是一个虚拟变量,这就是为什么我在家庭参数中选择二项式link。

reg.fun 论点是针对 R 不是 运行 OLS 回归而是广义线性模型,例如 logit。

我将 k 参数设置为 0:106。这意味着我想确定变量在最多包含 106 个变量的模型中是否稳健。然而,要估计的模型总量将是巨大的。有 106 个可能的模型只包含一个解释变量。有 106!/[2!(104!)] 个可能的模型,其中包含两个解释变量。参数 draws=100 将模型数量限制为 100 个。它 运行 只有 100 个模型是从庞大的模型池中随机选择的,可以写成 106 个变量的组合。

我相信参数 draws 应该可以在我的计算机上执行此任务,但我收到以下错误消息:

All variables in argument 'focus' must be in the data frame. 

Argument 'k' is too high for the given number of doubtful variables.

我已经查看了文档,由于我没有指定哪些变量是自由的,哪些是重点的,哪些是可疑的,那么所有106个变量都应该被认为是重点。我不明白为什么它表明某些焦点变量不在我的数据框中。请告诉我我哪里做错了,我怎么能做我想做的事。

我认为问题出在公式参数上。使用此代码,您最终也会遇到相同的错误:

 library(ExtremeBounds) 
 naive.eba <- eba(formula = mpg ~. , data = mtcars, k = 0:9)

如果您使用(如 ExtremeBounds 小插图中的)以下命令,该模型运行良好,该命令拼写了公式中的因变量:

 naive.eba <- eba(formula = mpg ~ cyl + carb + disp + hp + vs + drat + wt + qsec + gear + am, data = mtcars, k = 0:9)