6

谁能帮我在 R 中复制这些相对风险计算(及其置信区间)?

此处描述了在 Stata 中使用的类似过程。谁能告诉我如何在 R 中做到这一点(我的数据有集群和层,但我举了一个更简单的例子)?我已经尝试了 relrisk.est 函数,但我更愿意使用调查包,因为它可以处理非常复杂的设计。我还想比较 Stata 和 R 的估计值。我按照这里的建议使用泊松。

###STATA CODE
use http://www.ats.ucla.edu/stat/stata/faq/eyestudy 
tabulate carrot lenses
*same as R binomial svyglm below
xi: glm lenses carrot, fam(bin) 
*switch reference code
char carrot[omit] 1
xi: glm lenses i.carrot, fam(poisson) link(log) nolog robust eform

###R
library(foreign)
library(survey)
D<-read.dta("http://www.ats.ucla.edu/stat/stata/faq/eyestudy.dta")
table(D$lenses,D$carrot)
D$wgt<-rep(1,nrow(D))
Dd<-svydesign(id=~1,data=D,weights=~wgt)
#change category and eform....?
svyglm(lenses~carrot,Dd,family=binomial)
svyglm(lenses~carrot,Dd,family=quasipoisson(log))
4

1 回答 1

7

您的示例是一个简单的数据集,因此您根本不需要使用调查包。我还建议,在使用 R 学习多元回归时,您可以从更简单的示例开始,逐步建立对所涉及方法的理解。

毕竟,我的观点是 Stata 和 R 的理念不同。Stata 很容易在你面前抛出大量信息,而你却不知道它的含义或它是如何派生的。另一方面,R 可以同样(甚至更多)强大且更通用,但缺乏 Stata 的“自动化”,并迫使您放慢速度以获得您想要的结果。

这是您的 Stata 代码的更直译:

require(foreign)
data <- read.dta("http://www.ats.ucla.edu/stat/stata/faq/eyestudy.dta")
with(data, table(carrot, lenses))
glm.out.1 <- glm(lenses ~ carrot, family="binomial", data=data)
summary(glm.out.1)
logLik(glm.out.1)   # get the log-likelihood for the model, as well
glm.out.2 <- glm(lenses ~ factor(carrot, levels=c(1,0)), family="poisson"(link="log"), data=data)
summary(glm.out.2)
logLik(glm.out.2)
exp(cbind(coefficients(glm.out.2), confint(glm.out.2)))

# deriving robust estimates. vcovHC() is in the sandwich package.
require(sandwich)
robSE <- sqrt(diag(vcovHC(glm.out.2, type="HC")))[2]
rob <- coef(glm.out.2)[2]
rob <- exp(c(rob, rob+qnorm(0.025)*robSE, rob-qnorm(0.025)*robSE))
names(rob) <- c("", "2.5 %", "97.5 %")
rob

请注意,(link="log")第二次glm()调用中的 不是必需的,因为它是 时的默认链接函数family="poisson"

为了得出“稳健”的估计,我必须阅读这个,这非常有帮助。您必须使用vcovHC()三明治包中的函数来获得与由 计算的不同的方差-协方差矩阵glm(),并使用它来计算标准误差和参数估计值。

“稳健”的估计与我从 Stata 得到的几乎相同,精确到小数点后三位。所有其他结果完全相同;运行代码并亲自查看。

哦,还有一件事:当您找到将 glm() 用于非分层设计的方式时,然后在survey包中映射您的方式,该包包含此功能的对应项以及针对复杂设计修改的其他分析功能。我还建议您阅读 Thomas Lumley 的书“复杂调查:使用 R 进行分析的指南”。

于 2013-01-13T11:43:25.140 回答