泊松回归的分组和未分组数据的含义

机器算法验证 回归 广义线性模型 泊松回归
2022-03-16 09:14:46

泊松回归可以使用分组和未分组的数据进行。这两种方法之间应该有一些区别。为了确定这一点,我尝试使用一组模拟数据来研究这些差异。我发现的结果是,两种方法的估计参数相同,但剩余偏差却大不相同。

这让我想到了在我们对数据进行分组之前是否需要满足任何假设的问题。

# Rcode for simulated data #
rm(list=ls())
set.seed(1)
##############################################################
# Creating Random Age, Gender, obs count and population      #
##############################################################
nsim = 10000
age = sample(20:70,size = nsim, replace = T)
Gender = sample(c("M","F"),size = nsim, replace = T)
obs.count = sample(c(0,0,1),size = nsim, replace = T)
population = sample(c(0.7,0.8,0.9,1), size=nsim, replace = T)
ungrouped.data = data.frame(age,Gender,obs.count,population)
grouped.data = aggregate(cbind(ungrouped.data$obs.count,ungrouped.data$population),list(ungrouped.data$age,ungrouped.data$Gender), FUN = "sum")
names(grouped.data) = c("age", "Gender", "obs.count", "population")

############################################
# GLM model for group and ungroup data set #
############################################
model.group = glm(obs.count ~ age + Gender + offset((log(population))), family = poisson, data = grouped.data)
summary(model.group)
model.ungroup = glm(obs.count ~ age + Gender + offset((log(population))), family = poisson, data = ungrouped.data)
summary(model.ungroup)  
2个回答

由于模型中因子组合的计数总和以及反对数偏移量是泊松分布的充分统计数据,因此两种分析之间应该没有差异。任何不同的分析结果都是由于软件使用错误造成的。

在这种情况下,问题在于 R glm 函数不知道使用什么自由度。当您使用足够的统计数据而不是单独的观察时,这可能是某些软件的问题。例如SAS中的PROC NLMIXED在PROC NLMIXED语句中有DF选项来处理这类问题。我不确定 glm 中的等效选项是什么,但我认为它存在。

我的期望是聚合模型始终具有较低的偏差,因为它不必解释组内的差异。在一维线性情况下,这更容易看出,因为分组数据通常具有更高的相关性。请参阅:与分类数据相比,使用汇总数据“更适合”:解释?