【问题标题】:How can I apply extreme bounds analysis to a dataset of over 100 variables with the ExtremeBounds package in R?如何使用 R 中的 ExtremeBounds 包将极端边界分析应用于包含 100 多个变量的数据集?
【发布时间】:2018-11-22 21:02:38
【问题描述】:

我有一个由 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

是一个假人,这就是为什么我在family参数中选择二项式链接。

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

【问题讨论】:

    标签: r regression variable-selection


    【解决方案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)
    

    【讨论】:

    • 确实是问题所在!非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多