我收到以下错误:
Error in if (family$family %in% c("quasibinomial", "quasipoisson", "quasi")) stop("\"quasi\" families cannot be used in glmer") :
argument is of length zero
当我运行glmm负二项模型时,如下所示。
library(lme4)
nm <- glmer.nb(value~(1|replicate)+(1|family)+condition,data=cdat)
我有一个如下所示的数据集:
cdat
condition family replicate value
1 c 20 1 60
2 c 20 2 131
3 c 20 3 84
4 c 21 1 179
5 c 21 2 98
6 c 21 3 107
7 c 27 1 80
8 c 27 2 72
9 c 27 3 84
10 c 30 1 87
11 c 30 2 81
12 c 30 3 120
13 l 20 1 136
14 l 20 2 101
15 l 20 3 88
16 l 21 1 83
17 l 21 2 52
18 l 21 3 77
19 l 27 1 136
20 l 27 2 110
21 l 27 3 126
22 l 30 1 69
23 l 30 2 77
24 l 30 3 115
str(cdat)
'data.frame': 24 obs. of 4 variables:
$ condition: Factor w/ 2 levels "c","l": 1 1 1 1 1 1 1 1 1 1 ...
$ family : Factor w/ 4 levels "20","21","27",..: 1 1 1 2 2 2 3 3 3 4 ...
$ replicate: Factor w/ 3 levels "1","2","3": 1 2 3 1 2 3 1 2 3 1 ...
$ value : int 60 131 84 179 98 107 80 72 84 87 ...
family
中没有glmer.nb
参数,无法更改。我一般有兴趣比较这两个条件,同时控制家庭和重复之间的生物学差异。我希望我的模型是正确的。
答案 0 :(得分:2)
我无法从CRAN全新安装当前版本的lme4
来复制问题:
packageVersion("lme4")
## [1] ‘1.1.12’
library(lme4)
g1 <- glmer.nb(value~condition+(1|replicate)+(1|family),data=cdat)
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: Negative Binomial(14.228) ( log )
## Formula: value ~ condition + (1 | replicate) + (1 | family)
## Data: cdat
## AIC BIC logLik deviance df.resid
## 236.4621 242.3524 -113.2311 226.4621 19
## Random effects:
## Groups Name Std.Dev.
## family (Intercept) 0
## replicate (Intercept) 0
## Number of obs: 24, groups: family, 4; replicate, 3
## Fixed Effects:
## (Intercept) conditionl
## 4.59090 -0.01105
glmer.nb
估计两种随机效应的零方差,对于如此小的数据集并不奇怪 - 通常需要5个级别的最小才能获得非零方差的合理希望估计。答案 1 :(得分:0)
负二项式是单向随机效应泊松模型,其中随机效应是伽马分布的。调用family
时隐含glmer
参数:我认为glmer.nb
只是glmer
的包装器,它在某处提供family=poisson
参数的调用在深处。但是,在你的情况下,它不起作用:我不确定双向模型,你指定的方式,是一种统计可能性。显然,glmer
解析您的请求的方式是尝试推广nb
模型(正如我上面所述,它是一个过度分散的poisson
),它能做的最好的就是那个quasi
东西......它失败了。
您可能想尝试使用您感兴趣的双向效果回到泊松,看看它是否会运行。