R BMA包中的数据错误';s bic.glm,但不是glm
我根据一组交互系数估计泊松模型,BMA包的bic.glm帮助导航模型空间。我已经使用它很多年了,但是当我昨晚将R从2.10.x更新到2.14.2时,它停止了工作。错误如下:首先,一个有效的调用:R BMA包中的数据错误';s bic.glm,但不是glm,r,glm,R,Glm,我根据一组交互系数估计泊松模型,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>
> glm(formula(Y~.), data=XY5, family=poisson)
Call: glm(formula = formula(Y ~ .), family = poisson, data = XY5)
Coefficients:
<results, etc>
同样,这段代码在早期版本的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
我代表BMA软件包团队回答这个问题,我非常感谢他们。他们是这么说的: 我认为可能会有一些未预料到的简并,由于离散 导致此问题出现的数据的性质。我会的 相应地更新包,但您应该能够通过 将下面指示的行添加到bic.glm.data.frame(和 bic.glm.矩阵)
while(长度(glm.out$系数)>maxCol){
在打开和关闭跟踪后,any.DROPED错误变为“as.environment(where)中的错误:无效的'pos'参数”。我不觉得更接近,但我想能够影响错误总是好的。
> 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
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]