不一致的 p 值和置信区间

Inconsistent pvalues and confidence intervals

一直在尝试在给定数据集中拟合多元逻辑回归模型,但我似乎发现 'strange results' 有一些变量。 p 值和置信区间似乎不一致。然而,当我尝试在 Stata 中拟合完全相同的模型时,我得到了一致的结果。有没有办法解决这个问题?我需要指定一个选项来满足这个需求吗?...我将如何进行?

library(tidyverse)

set.seed(2021)

testdata <- tibble(
  var1 = rbinom(1114, 1, 0.12),
  var2 = rbinom(1114, 1, 0.82),
  var3 = rbinom(1114, 1, 0.60),
  var4 = rbinom(1114, 1, 0.18),
  var5 = rbinom(1114, 1, 0.12),
  var6 = rbinom(1114, 1, 0.05),
  var7 = rbinom(1114, 1, 0.63),
  var8 = rbinom(1114, 1, 0.20),
  var9 = rbinom(1114, 1, 0.06),
  var10 = rbinom(1114, 1, 0.40),
  var11 = rbinom(1114, 1, 0.35),
  var12 = rbinom(1114, 1, 0.32),
  outcome = rbinom(1114, 1, 0.04)
) %>%
  mutate(across(.cols = everything(), 
                ~factor(., levels = c(0, 1),
                        labels = c("No", "Yes"))))



mvariate.regress <- function(outcome, covariates, mydata) {
  form <- paste(outcome, "~",
                paste(covariates, collapse = " + "))

  model1 <- glm(as.formula(form),
                data = mydata, family = binomial)

  model1

}


ipvars <- paste0("var", 1:12)

mlogitfit <- mvariate.regress("outcome", ipvars, testdata)

summary(mlogitfit)
confint(mlogitfit)

var1 和 var2 pvalues 和 CI 似乎不一致。

Stata Output 
        Coef.      Std. Err.    z     P>|z|      [95% Conf. Interval]
var1   .7269858    .360992     2.01   0.044     .0194544    1.434517
var2   -.6520712   .3250667   -2.01   0.045     -1.28919   -.0149521

似乎 Stata 使用不同的方法计算 CI

根据评论中的建议,我找到了this

R 给出不同置信区间(但系数、标准误差等相同)的原因是 confint() 计算它们的方式,即通过分析可能性。 Stata默认的方法应该是基于Wald方法,也就是基于正态逼近。事实上,运行 confint.default() 在 R returns 上具有相同的 Stata 置信区间。

我刚刚总结了@chl的回答here,所以请考虑去给他投票。