一个新手问题:有人知道如何在 R 中使用聚集标准错误运行逻辑回归吗?在 Stata 中只是logit Y X1 X2 X3, vce(cluster Z)
,但不幸的是我还没有弄清楚如何在 R 中进行相同的分析。提前谢谢!
问问题
19588 次
4 回答
15
您可能想查看rms
(回归建模策略)包。所以,lrm
是逻辑回归模型,如果fit
是你的输出名称,你会有这样的东西:
fit=lrm(disease ~ age + study + rcs(bmi,3), x=T, y=T, data=dataf)
fit
robcov(fit, cluster=dataf$id)
bootcov(fit,cluster=dataf$id)
您必须在模型语句 中指定x=T
, 。表示具有 3 个结的受限三次样条。 y=T
rcs
于 2013-05-11T18:00:52.787 回答
5
在过去的两天里,我一直在努力解决这个问题;我神奇地发现了一个似乎注定要实现伟大事物的新包——例如,我还在分析中运行了一些集群健壮的 Tobit 模型,并且这个包也内置了该功能。更不用说语法比我见过的所有其他解决方案都干净得多(我们说的是接近 Stata 级别的干净)。
因此,对于您的玩具示例,我将运行:
library(Zelig)
logit<-zelig(Y~X1+X2+X3,data=data,model="logit",robust=T,cluster="Z")
瞧!
于 2015-04-01T23:50:43.920 回答
4
glm.cluster
R 包中有一个命令,miceadds
它似乎给出了与 Stata 对选项相同的逻辑回归结果vce(cluster)
。请参阅此处的文档。
在此页面上的一个示例中,命令
mod2 <- miceadds::glm.cluster(data=dat, formula=highmath ~ hisei + female,
cluster="idschool", family="binomial")
summary(mod2)
给出与 Stata 命令相同的稳健标准误差
logit highmath hisei female, vce(cluster idschool)
例如,变量的标准误差为 0.004038 hisei
。
于 2019-11-07T00:16:10.007 回答
4
另一种选择是使用sandwich
andlmtest
包,如下所示。假设这z
是您的数据集中包含集群指标的列dat
。然后
# load libraries
library("sandwich")
library("lmtest")
# fit the logistic regression
fit = glm(y ~ x, data = dat, family = binomial)
# get results with clustered standard errors (of type HC0)
coeftest(fit, vcov. = vcovCL(fit, cluster = dat$z, type = "HC0"))
将完成这项工作。
于 2020-04-06T02:20:58.010 回答