首页 > 解决方案 > 使用 cbind 从分组二项式 glm 进行似然计算的问题

问题描述

使用 cbind 时与 glm 拟合的二项式模型的似然计算是否存在问题,或者我遗漏了什么。请参阅下面的可重现示例:

set.seed(123)
n <- 100
sze <- 5
x <- rnorm(n, 0, 1)
p <- binomial()$linkinv(x)
y <- rbinom(n, sze, p)
tot <- rep(sze, n)
# Fit binomial model on grouped data
modA <- glm(cbind(y, tot - y) ~ x, family = binomial())
modA
# Ungroup the bernoulli trials
xy <- lapply(1:n, function(i) cbind(c(rep(1,y[i]), rep(0,sze-y[i])), c(rep(x[i], sze))))
xy <- do.call(rbind, xy)
# Fit binomial model on ungrouped 0/1 data
modB <- glm(xy[,1] ~ xy[,2], family = binomial())
modB
logLik(modA)
logLik(modB)

如果我没记错的话,两个模型应该是一样的。系数估计值完全相同。但是,对数似然是不同的。

标签: rglm

解决方案


推荐阅读