如何为logistic svyglm()的优势比结果添加p值?
把svyglm模型的p值整合到OR和置信区间表中的方法
直接按以下步骤操作,就能把p值加到结果表里:
- 先计算OR和置信区间,再从模型的summary结果中提取p值,最后将两部分合并即可。
具体代码实现:
# 拟合你的模型 model <- svyglm(y ~ x + covariate, design = survey_design, family = quasibinomial(link = logit)) # 计算OR和95%置信区间 or_ci <- exp(cbind(OR = coef(model), confint(model))) # 从summary里提取p值——注意svyglm用的是t检验,对应列名是Pr(>|t|) p_vals <- summary(model)$coefficients[, "Pr(>|t|)"] # 合并成最终结果表 result_table <- cbind(or_ci, p_value = p_vals) # 查看结果 result_table
更简便的tidy风格输出(用broom包)
如果你偏好整洁的表格格式,可以用broom包一步搞定:
library(broom) # 直接提取指数化后的OR、置信区间和p值 tidy_output <- tidy(model, exponentiate = TRUE, conf.int = TRUE) # 整理成易读的列名 final_table <- tidy_output[, c("term", "estimate", "conf.low", "conf.high", "p.value")] colnames(final_table) <- c("变量", "OR", "95%CI下限", "95%CI上限", "p值") final_table
注意:svyglm的summary输出中,p值对应的列是
Pr(>|t|),和普通glm的Pr(>|z|)不同,别混淆了。
内容的提问来源于stack exchange,提问作者Lyra Johnson
相关产品推荐
相关产品推荐

