泊松回归可以拟合原始数据,也可以通过汇总数据然后使用偏移量来拟合。无论采用何种方法(完整数据或偏移量),模型都应返回相同的系数估计值(以及协方差估计值)。
然而,当模型使用偏移量时,
sandwich
中的 {sandwich}
函数似乎返回不同的协方差估计。这尤其令人不安,因为这意味着置信区间和 p 值会受到影响。
下图就是这样一个例子。两个协方差矩阵在预期相同时不同。
这是故意的行为吗?
library("tidyverse")
grouped_data <- tibble::tribble(
~treatment, ~g, ~y, ~N,
"A", "a", 1338L, 20669L,
"A", "b", 36L, 1237L,
"A", "c", 2555L, 39438L,
"A", "d", 402L, 5713L,
"B", "a", 1281L, 19986L,
"B", "b", 38L, 1224L,
"B", "c", 2495L, 36749L,
"B", "d", 382L, 5646L
)
重新组织数据,就像我们没有分组和汇总一样 通过计算成功的次数(
y
)
和失败次数 (N
- y
)
yes_outcomes <-grouped_data %>%
mutate(yy=1) %>%
uncount(y)
no_outcomes <-grouped_data %>%
mutate(yy=0) %>%
uncount(N-y)
# This is equivalent to the data we had before grouping
unit_data <- bind_rows(yes_outcomes, no_outcomes) %>%
select(-y) %>%
rename(y=yy)
在没有偏移的未分组数据上拟合一个模型,在有偏移的分组数据上拟合一个模型。
fit <- glm(y ~ treatment + g, data = unit_data, family = poisson)
offset_fit <- glm(y ~ treatment + g, data = grouped_data, family = poisson,
offset = log(N))
对应的
sandwich
结果为:
sandwich::sandwich(fit)
#> (Intercept) treatmentB gb gc
#> (Intercept) 0.0004689434 -2.213726e-04 -3.599604e-04 -3.621573e-04
#> treatmentB -0.0002213726 4.385850e-04 5.526098e-06 9.843754e-06
#> gb -0.0003599604 5.526098e-06 1.346409e-02 3.572512e-04
#> gc -0.0003621573 9.843754e-06 3.572512e-04 5.422671e-04
#> gd -0.0003545652 -5.331337e-06 3.572202e-04 3.571526e-04
#> gd
#> (Intercept) -3.545652e-04
#> treatmentB -5.331337e-06
#> gb 3.572202e-04
#> gc 3.571526e-04
#> gd 1.544801e-03
sandwich::sandwich(offset_fit)
#> (Intercept) treatmentB gb gc
#> (Intercept) 1.672258e-04 -8.616787e-05 -1.238920e-04 -1.263405e-04
#> treatmentB -8.616787e-05 1.742927e-04 -1.483730e-06 3.456605e-06
#> gb -1.238920e-04 -1.483730e-06 3.554277e-04 1.246024e-04
#> gc -1.263405e-04 3.456605e-06 1.246024e-04 2.040329e-04
#> gd -1.237209e-04 -1.827624e-06 1.246399e-04 1.245998e-04
#> gd
#> (Intercept) -1.237209e-04
#> treatmentB -1.827624e-06
#> gb 1.246399e-04
#> gc 1.245998e-04
#> gd 5.878420e-04
由 reprex 包 (v2.0.1) 于 2023-02-19 创建
在 Twitter 上进行一些讨论后,我会说这显然不是正确的行为,尽管进一步的调查和考虑可能会有用(并且可能应该去 CrossValidated 而不是这里)。
如果正确指定平均模型并且观察是独立的,则两者估计相同的真实数量,因此在大数据集中应该相似。
聚合分析声称群体是独立的;个人分析更强烈地主张个人是独立的。如果均值模型被错误指定,使得同一组中的残差具有非零均值,则这些是有意义的不同声明。
点估计值相同这一事实并不像人们最初想象的那样令人信服。这些是频率标准误差估计,因此它们描述了重复实验中回归估计的抽样分布。分组/个体的区别可能会改变我们会考虑的重复实验。