R中具有鲁棒聚类标准误差的Logistic回归

时间:2013-05-11 15:39:09

标签: r regression stata

一个新手问题:有人知道如何在R中运行带有聚类标准错误的逻辑回归吗?在Stata中它只是logit Y X1 X2 X3, vce(cluster Z),但遗憾的是我还没有想出如何在R中进行相同的分析。提前感谢!

4 个答案:

答案 0 :(得分:13)

您可能希望查看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=Ty=Trcs表示受限制的三次样条曲线具有3节。

答案 1 :(得分:2)

过去两天我一直在反对这个问题。我神奇地发现了似乎是一个似乎注定要用于伟大事物的新软件包 - 例如,我在我的分析中运行了一些集群强大的Tobit模型,而且这个软件包也具有内置的功能。更不用说语法很多比我见过的所有其他解决方案更清洁(我们谈论的是干净的Stata级别)。

所以对于你的玩具示例,我会跑:

library(Zelig)
logit<-zelig(Y~X1+X2+X3,data=data,model="logit",robust=T,cluster="Z")

Etvoilà!

答案 2 :(得分:2)

R程序包glm.cluster中有一个命令miceadds,似乎与Stata使用选项vce(cluster)所做的逻辑回归结果相同。请参阅文档here

在此页面上的示例之一中,命令

mod2 <- miceadds::glm.cluster(data=dat, formula=highmath ~ hisei + female,
                              cluster="idschool", family="binomial")
summary(mod2)

给出与Stata命令相同的可靠标准错误

logit highmath hisei female, vce(cluster idschool)

例如变量hisei的标准错误为0.004038。

答案 3 :(得分:0)

另一种替代方法是如下使用sandwichlmtest包。假设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"))

会做。