我正在尝试将广义线性模型拟合到可能过度分散的某些计数数据集。此处适用的两个规范分布是泊松和负二项式(Negbin),其EV和方差
可以分别使用glm(..,family=poisson)
和将其安装在R中glm.nb(...)
。还有一个quasipoisson
家庭,以我的理解,这是一个经过调整的泊松,具有相同的EV和方差
,
即落在Poisson和Negbin之间。准泊松族的主要问题是没有相应的可能性,因此没有许多非常有用的统计检验和拟合度量(AIC,LR等)。
如果比较QP和Negbin方差,可能会注意到可以通过来使它们相等。继续这种逻辑,您可以尝试将准泊松分布表示为Negbin的特例:
,
即,一个\ theta的Negbin与\ mu线性相关。我试图通过根据上述公式生成一个随机的数字序列并将其拟合为来验证这种想法:glm
#fix parameters
phi = 3
a = 1/50
b = 3
x = 1:100
#generating points according to an exp-linear curve
#this way the default log-link recovers the same parameters for comparison
mu = exp(a*x+b)
y = rnbinom(n = length(mu), mu = mu, size = mu/(phi-1)) #random negbin generator
#fit a generalized linear model y = f(x)
glmQP = glm(y~x, family=quasipoisson) #quasipoisson
glmNB = glm.nb(y~x) #negative binomial
> glmQP
Call: glm(formula = y ~ x, family = quasipoisson)
Coefficients:
(Intercept) x
3.11257 0.01854
(Dispersion parameter for quasipoisson family taken to be 3.613573)
Degrees of Freedom: 99 Total (i.e. Null); 98 Residual
Null Deviance: 2097
Residual Deviance: 356.8 AIC: NA
> glmNB
Call: glm.nb(formula = y ~ x, init.theta = 23.36389741, link = log)
Coefficients:
(Intercept) x
3.10182 0.01873
Degrees of Freedom: 99 Total (i.e. Null); 98 Residual
Null Deviance: 578.1
Residual Deviance: 107.8 AIC: 824.7
这两个拟合均重现了参数,并且拟泊松给出了\ phi的“合理”估计。现在,我们还可以为拟泊松定义AIC值:
df = 3 # three model parameters: a,b, and phi
phi.fit = 3.613573 #fitted phi value copied from summary(glmQP)
mu.fit = glmQP$fitted.values
#dnbinom = negbin density, log=T returns log probabilities
AIC = 2*df - 2*sum(dnbinom(y, mu=mu.fit, size = mu.fit/(phi.fit - 1), log=T))
> AIC
[1] 819.329
(我不得不从中手动复制拟合的值,因为我在对象中找不到它)summary(glmQP)
glmQP
由于,这将表明拟泊松比是更好的拟合;这并不奇怪。因此,至少会做应做的事情,因此对于准浮点的AIC(并可能延伸)可能是一个合理的定义。我剩下的大问题是
- 这个想法有意义吗?我的验证是否基于循环推理?
- 对于任何人“发明”似乎已经建立的主题中似乎缺少的东西的主要问题:如果这个想法有意义,为什么还没有实现
glm
呢?
编辑:添加图