2

我正在从一组交互系数估计泊松模型,BMA 包的 bic.glm 有助于导航模型空间。我已经使用它多年了,但是当我昨晚将 R 从 2.10.x 更新到 2.14.2 时,它停止了工作。这是错误:首先,一个有效的调用:

> glm(formula(Y~.), data=XY5, family=poisson)

Call:  glm(formula = formula(Y ~ .), family = poisson, data = XY5)

Coefficients:
<results, etc>

现在 bic.glm 失败:

> bic.glm(formula(Y~.), data=XY5, glm.family=poisson, model=TRUE)
Error in terms.formula(formula, data = data) : 
  '.' in formula and no 'data' argument

同样,这个确切的代码在具有五个系统的早期版本的 R 中工作。当我使用 4 个交互系统而不是 5 个运行 bic.glm(即,删除 x5 并折叠交互)时,bic.glm 运行良好。我将在下面包括五个系统数据。提前致谢。

> XY5
   x1 x2 x3 x4 x5 x12 x13 x14 x15 x23 x24 x25 x34 x35 x45 x123 x124 x125 x134 x135 x145
2   0  0  0  0  1   0   0   0   0   0   0   0   0   0   0    0    0    0    0    0    0
3   0  0  0  1  0   0   0   0   0   0   0   0   0   0   0    0    0    0    0    0    0
4   0  0  0  1  1   0   0   0   0   0   0   0   0   0   1    0    0    0    0    0    0
5   0  0  1  0  0   0   0   0   0   0   0   0   0   0   0    0    0    0    0    0    0
6   0  0  1  0  1   0   0   0   0   0   0   0   0   1   0    0    0    0    0    0    0
7   0  0  1  1  0   0   0   0   0   0   0   0   1   0   0    0    0    0    0    0    0
8   0  0  1  1  1   0   0   0   0   0   0   0   1   1   1    0    0    0    0    0    0
9   0  1  0  0  0   0   0   0   0   0   0   0   0   0   0    0    0    0    0    0    0
10  0  1  0  0  1   0   0   0   0   0   0   1   0   0   0    0    0    0    0    0    0
11  0  1  0  1  0   0   0   0   0   0   1   0   0   0   0    0    0    0    0    0    0
12  0  1  0  1  1   0   0   0   0   0   1   1   0   0   1    0    0    0    0    0    0
13  0  1  1  0  0   0   0   0   0   1   0   0   0   0   0    0    0    0    0    0    0
14  0  1  1  0  1   0   0   0   0   1   0   1   0   1   0    0    0    0    0    0    0
15  0  1  1  1  0   0   0   0   0   1   1   0   1   0   0    0    0    0    0    0    0
16  0  1  1  1  1   0   0   0   0   1   1   1   1   1   1    0    0    0    0    0    0
17  1  0  0  0  0   0   0   0   0   0   0   0   0   0   0    0    0    0    0    0    0
18  1  0  0  0  1   0   0   0   1   0   0   0   0   0   0    0    0    0    0    0    0
19  1  0  0  1  0   0   0   1   0   0   0   0   0   0   0    0    0    0    0    0    0
20  1  0  0  1  1   0   0   1   1   0   0   0   0   0   1    0    0    0    0    0    1
21  1  0  1  0  0   0   1   0   0   0   0   0   0   0   0    0    0    0    0    0    0
22  1  0  1  0  1   0   1   0   1   0   0   0   0   1   0    0    0    0    0    1    0
23  1  0  1  1  0   0   1   1   0   0   0   0   1   0   0    0    0    0    1    0    0
24  1  0  1  1  1   0   1   1   1   0   0   0   1   1   1    0    0    0    1    1    1
25  1  1  0  0  0   1   0   0   0   0   0   0   0   0   0    0    0    0    0    0    0
26  1  1  0  0  1   1   0   0   1   0   0   1   0   0   0    0    0    1    0    0    0
27  1  1  0  1  0   1   0   1   0   0   1   0   0   0   0    0    1    0    0    0    0
28  1  1  0  1  1   1   0   1   1   0   1   1   0   0   1    0    1    1    0    0    1
29  1  1  1  0  0   1   1   0   0   1   0   0   0   0   0    1    0    0    0    0    0
30  1  1  1  0  1   1   1   0   1   1   0   1   0   1   0    1    0    1    0    1    0
31  1  1  1  1  0   1   1   1   0   1   1   0   1   0   0    1    1    0    1    0    0
32  1  1  1  1  1   1   1   1   1   1   1   1   1   1   1    1    1    1    1    1    1
   x234 x235 x245 x345 x1234 x1235 x1245 x1345 x2345    Y
2     0    0    0    0     0     0     0     0     0 1276
3     0    0    0    0     0     0     0     0     0  714
4     0    0    0    0     0     0     0     0     0  481
5     0    0    0    0     0     0     0     0     0  628
6     0    0    0    0     0     0     0     0     0  365
7     0    0    0    0     0     0     0     0     0  836
8     0    0    0    1     0     0     0     0     0 1343
9     0    0    0    0     0     0     0     0     0 1348
10    0    0    0    0     0     0     0     0     0  161
11    0    0    0    0     0     0     0     0     0  266
12    0    0    1    0     0     0     0     0     0  239
13    0    0    0    0     0     0     0     0     0  144
14    0    1    0    0     0     0     0     0     0  135
15    1    0    0    0     0     0     0     0     0  469
16    1    1    1    1     0     0     0     0     1 1356
17    0    0    0    0     0     0     0     0     0  594
18    0    0    0    0     0     0     0     0     0  431
19    0    0    0    0     0     0     0     0     0   18
20    0    0    0    0     0     0     0     0     0   83
21    0    0    0    0     0     0     0     0     0   22
22    0    0    0    0     0     0     0     0     0   16
23    0    0    0    0     0     0     0     0     0   12
24    0    0    0    1     0     0     0     1     0   29
25    0    0    0    0     0     0     0     0     0   16
26    0    0    0    0     0     0     0     0     0    3
27    0    0    0    0     0     0     0     0     0    2
28    0    0    1    0     0     0     1     0     0    3
29    0    0    0    0     0     0     0     0     0    6
30    0    1    0    0     0     1     0     0     0    0
31    1    0    0    0     1     0     0     0     0   11
32    1    1    1    1     1     1     1     1     1    9
4

2 回答 2

1

我代表 BMA 包装团队回答,我非常感谢他们。他们是这样说的:

我认为由于数据的离散性导致这个问题浮出水面,可能会出现一些意料之外的退化。我将相应地更新包,但您应该能够通过将下面指示的行添加到 bic.glm.data.frame(和 bic.glm.matrix)来修复它

while (length(glm.out$coefficients) > maxCol) {
           any.dropped <- TRUE
           dropglm <- drop1(glm.out, test = "Chisq")
           dropped <- which.max(dropglm$"Pr(Chi)"[-1]) + 1
#
           if (length(dropped) == 0) break  #### add to prevent bug
#
           x.df <- x.df[, -(dropped - 1)]
           designx.levels <- designx.levels[-dropped]
           designx <- designx[-dropped]
于 2012-11-19T23:24:55.710 回答
0

我收到了同样的错误信息。考虑到这条消息是 9 年前发布的,但我收到了关于积压的错误消息,我会就我发现和解决的问题做出一些贡献。

它可能是样本量。尽管 BMA 已将自己声明为包含小样本量和许多变量的数据包,但仍有一个下限。尝试增加样本量并执行运行将是理想的。

下一个可能的问题是一个或多个变量的共线性。包装以如此智能的方式设计了自己,以至于它可以捕捉到小的共线性迹象。一个典型的例子是变量 Z 是从变量 A 的一部分导出的;假设变量 Z 是由分析师生成的。虽然它不会导致 glm 中的问题(二项式或泊松或伽马),但它确实会导致 bic.glm 中的收敛问题。分析师将不得不忽略特定变量。

如果主要问题主要是由于后者,我怀疑 BMA 开发人员会修复它。

于 2021-12-24T03:39:33.853 回答