1

我有一个由 107 个变量和 1794 个观察值组成的数据集。我想实施极限边界分析,以确定 106 个变量中的哪些变量在广泛的回归中与因变量稳健相关,每个变量都有不同的模型规范。我打算为我的最终模型选择最稳健的变量。

我正在使用 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

是一个假人,这就是为什么我在家庭论证中选择二项式链接。

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 个变量都应该被视为焦点。我不明白为什么它表明某些焦点变量不在我的数据框中。请告诉我我做错了什么,我怎么能做我打算做的事情。

4

1 回答 1

1

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

 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)
于 2018-11-22T21:28:46.103 回答