R: 在 ExtremeBounds 命令中调试 glm "subscript out of bounds"

R: Debug glm "subscript out of bounds" in ExtremeBounds command

我运行宁代码使用 ExtremeBounds 和 glm (logit) 通过几个规范,有时我 运行 遇到以下问题:

Data <- data.frame(var1=rbinom(30,1,0.2),var2=rbinom(30,1,0.2),var3=rnorm(30),coll1=rep(3:32),coll2=rep(1:30))
eba <- eba(data=Data, y="var1", 
       free="var2", 
       doubtful=c("var3","coll1","coll2"),
       reg.fun=glm, k=1, vif=7, draws=50, weights = "lri", family = binomial(logit))

错误信息是:

Error in reg.summary$coefficients[variable.label, 1] : 
subscript out of bounds

由于我的数据集很大,我不知道在我的实际应用中是哪个变量导致了这个问题。有谁知道这些问题的答案之一:

  1. 如何查看是哪个变量导致的?

  2. 我怎样才能自动删除它(可能会显示如下消息:"coll2 omitted due to collinearity")

  3. 这个问题是glm引起的吗?

作为回答发布,评论有点长:

  • 设置options(error=recover)
  • 运行 上面的代码(没有 se.fun=se.robust)给出
1: eba(data = Data, y = "var1", free = "var2", doubtful = c("var3", "coll1", "
2: .eba.wrap(formula = formula, data = data, y = y, free = free, doubtful = do
3: run.eba(y = y, v = focus, x = free, combinations = comb, data = data, level
4: run.regressions(y, v, x, combinations, data, level, vif.max, vars.labels, v

我选择选项#4(最低级别)

我可以 运行 ls() 查看此范围内存在的所有变量。因为我知道 reg.summary$coefficients[variable.label, 1] 会出现问题,所以我可以尝试

Browse[1]> variable.label
#   coll2 
# "coll2" 
Browse[1]> str(reg.summary$coefficients)
#  num [1:3, 1:4] -0.9154 0.9436 -0.0504 1.1159 0.9728 ...
#  - attr(*, "dimnames")=List of 2
#   ..$ : chr [1:3] "(Intercept)" "var2" "coll1"
#   ..$ : chr [1:4] "Estimate" "Std. Error" "z value" "Pr(>|z|)"

这表明 reg.summary$coefficients 显然删除了 coll2 变量 ...

不幸的是,我对 eba() 正在做什么知之甚少,无法知道如何进一步进行诊断......如果你知道,你可以进一步检查 reg.summary 对象以尝试找出问题所在...