如何使用R中的ExtremeBounds包将极限范围分析应用于包含100个以上变量的数据集?

时间:2018-11-22 21:02:39

标签: r regression variable-selection

我有一个包含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个变量的组合。

我相信引数应该使我的计算机可以完成此任务,但是我收到以下错误消息:

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

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

我已经检查过文档,并且由于我没有指定哪些变量是自由的,哪些是焦点,哪些是可疑的,因此应将所有106个变量都视为焦点。我不明白为什么它表明某些焦点变量不在我的数据框中。请告诉我我在做什么错,我该怎么做我打算做的事。

1 个答案:

答案 0 :(得分: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)