6

我正在尝试使用stargazer. 我想包括优势比及其置信区间而不是模型系数。

由于这个链接,我想出了如何用优势比替换系数,但对 CI 做同样的事情会产生问题。如果我给出stargazer一个参数,se = *a list of the standard errors or exp(standard errors)*它使用 OR +/- 1.96 乘以该列表来计算 CI,这是不正确的。

这是一些示例代码,第一部分来自UCLA DAE

library(stargazer)
mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
summary(mylogit) 

# Table with coefficients
stargazer(mylogit, ci = T, single.row = T, type = "text")

# Table with Odds Ratios, but the CI is not right
OR.vector <- exp(mylogit$coef)
stargazer(mylogit, coef = list(OR.vector), ci = T, single.row = T, type = "text")

# Correct CIs
CI.vector <- exp(confint(mylogit))
cbind(OR = OR.vector, CI.vector)
4

2 回答 2

9

感谢 Marek 在这个问题上提供的帮助。这是此示例中对我有用的代码:

library(stargazer)
mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
summary(mylogit) 

# Table with coefficients
stargazer(mylogit, ci = T, single.row = T, type = "text")

OR.vector <- exp(mylogit$coef)
CI.vector <- exp(confint(mylogit))
p.values <- summary(mylogit)$coefficients[, 4]

# Table with ORs and CIs
stargazer(mylogit, coef = list(OR.vector), ci = T, 
          ci.custom = list(CI.vector), p = list(p.values), 
          single.row = T, type = "text")
于 2013-10-31T08:29:01.903 回答
7

您可以使用该ci.custom参数来提供stargazer具有自定义置信区间的列表(第一列是下限,第二列是上限)。在您的示例中,您所要做的就是调用:

stargazer(mylogit, coef = list(OR.vector), ci = T, 
ci.custom = list(CI.vector), single.row = T, type = "text")

或者,您可以定义自己的函数来对值求幂,然后简单地将这个函数应用于您的系数和/或置信区间(使用参数apply.coefapply.ci):

exponentiate <- function(x) exp(x)

stargazer(mylogit, ci=T, apply.coef=exponentiate, apply.ci=exponentiate, 
single.row = T, type="text")
于 2013-10-25T01:43:33.653 回答