我想用加权数据做一个分层逻辑回归。回归似乎工作正常,但我在显示分层结果时遇到了问题。以前,当我对同一数据集进行单变量回归时,我使用了tbl_uvregression()
,效果很好。但是,我无法用tbl_regression()
实现同样的功能。即使我使用summary()
,它也只提供一个结果。
我提供了一些类似于我的数据集的虚构数据,以防任何人以前遇到过这个问题。
library(tidyverse)
library(gtsummary)
library(survey)
gender <- factor(c(1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2))
age <- factor(c(3, 4, 2, 1, 3, 1, 1, 2, 3, 3, 4, 1, 3, 1, 3, 4, 2, 1, 2, 1))
prema.5cl <- factor(c(5, 4, 5, 2, 1, 1, 3, 1, 5, 1, 2, 4, 4, 3, 1, 2, 1, 4, 5, 2))
meduc.4cl <- factor(c(1, 2, 3, 3, 1, 4, 2, 1, 4, 2, 1, 3, 3, 4, 4, 2, 4, 3, 1, 2))
mhealth <- factor(c(1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0))
parttime <- factor(c(1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0))
ref1 <- factor(c(0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0))
ref2 <- factor(c(0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0))
ref3 <- factor(c(0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1))
poids <- c(0.52, 1.43, 0.74, 1.60, 1.71, 0.08, 0.96, 1.62, 1.00, 0.83, 1.74, 0.82, 1.23, 1.04, 0.19, 1.63, 0.45, 0.08, 0.60, 1.73)
gd <- factor(c("gp_2", "gp_1", "gp_2", "gp_1", "gp_2", "gp_1", "gp_1", "gp_1", "gp_2", "gp_2", "gp_1", "gp_1", "gp_2", "gp_1", "gp_1", "gp_2", "gp_2", "gp_1", "gp_2", "gp_2"))
bth_2y <- factor(c(1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0))
db <- data.frame(gender, age, prema.5cl, meduc.4cl, mhealth, parttime, ref1, ref2, ref3, poids, gd, bth_2y)
reg1 <- svyglm(
bth_2y ~ gender + age + prema.5cl + meduc.4cl + mhealth + ref1 + ref2 + ref3,
family = quasibinomial,
design = svydesign(id=~1, data = db, weights = ~poids, strata = ~gd))
summary(reg1)
tbl_regression(reg1)
谢谢你的帮助。
1条答案
按热度按时间9w11ddsr1#
这段代码产生了我所期望的结果:它要求具有五个预测因子的单个逻辑回归模型。你没说你在找什么。
猜猜看,也许你脑子里有“分层”的另一种含义?在
svydesign
中,分层是样本量通过设计固定的人群子集(分层 * 样本 *)。“分层”还有另一种用法,意思是你想对不同的亚群分别进行分析。如果你是这个意思的话,你想要的是这在示例数据中实际上不起作用,因为它太小了;一些协变量组合没有出现。它应该在你的真实的数据中工作。
如果
gd
确实不是采样层,则需要省略svydesign
调用的strata=~gd
部分