三明治没有为具有偏移量的泊松回归拟合提供相同的协方差矩阵

问题描述 投票:0回答:1

泊松回归可以拟合原始数据,也可以通过汇总数据然后使用偏移量来拟合。无论采用何种方法(完整数据或偏移量),模型都应返回相同的系数估计值(以及协方差估计值)。

然而,当模型使用偏移量时,

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 创建

r standard-error
1个回答
0
投票

在 Twitter 上进行一些讨论后,我会说这显然不是正确的行为,尽管进一步的调查和考虑可能会有用(并且可能应该去 CrossValidated 而不是这里)。

如果正确指定平均模型并且观察是独立的,则两者估计相同的真实数量,因此在大数据集中应该相似。

聚合分析声称群体是独立的;个人分析更强烈地主张个人是独立的。如果均值模型被错误指定,使得同一组中的残差具有非零均值,则这些是有意义的不同声明。

点估计值相同这一事实并不像人们最初想象的那样令人信服。这些是频率标准误差估计,因此它们描述了重复实验中回归估计的抽样分布。分组/个体的区别可能会改变我们会考虑的重复实验。

© www.soinside.com 2019 - 2024. All rights reserved.