10

一个新手问题:有人知道如何在 R 中使用聚集标准错误运行逻辑回归吗?在 Stata 中只是logit Y X1 X2 X3, vce(cluster Z),但不幸的是我还没有弄清楚如何在 R 中进行相同的分析。提前谢谢!

4

4 回答 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=Trcs

于 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.clusterR 包中有一个命令,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

另一种选择是使用sandwichandlmtest包,如下所示。假设这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 回答