【问题标题】:Exponentiating CI in StargazerStargazer 中的指数 CI
【发布时间】:2019-09-17 15:19:34
【问题描述】:

我正在尝试运行相当多的多项回归模型。 Stargazer 似乎是一个很棒的工具,可以在一个文档中报告所有结果以便于访问。但是,我注意到我得到了一些负置信区间,这是没有意义的。

我尝试单独使用apply.coef=exp,但我得到了负置信区间 我还尝试使用 apply.coef=expapply.ci=exp 置信区间没有意义。

当我自己做apply.ci=exp 时,CI 是正确的,但它不会对系数求幂。

健康有3个等级(差、中、理想),差是参考 ETI 是连续的。

test1 <- multinom(Health ~ ETI, data = X)
test2 <- multinom(Health ~ ETI + age + male, data = X)
test3 <- multinom(Health ~ ETI + age + male +educ +married+employed+income, data = X)
test4 <- multinom(Health ~ ETI + age + male +educ +married+depression+employed+income, data = X)

第一个代码(仅限apply.coef

stargazer(test1, test2, test3, test4, type="html", list(confint(test1, test2, test3, test4)),column.labels = c("Model1", "Model2", "Model3", "Model4"),column.separate = c(2,2,2,2), apply.coef=exp, out="X.htm")

我尝试的第二个代码(仅apply.ci):

stargazer(test1, test2, test3, test4, type="html", apply.coef = exp  list(confint(test1, test2, test3, test4)),column.labels = c("Model1", "Model2", "Model3", "Model4"),column.separate = c(2,2,2,2), apply.ci=exp,apply.coef=exp, out="X.htm")

最后一个代码(apply.ci & apply.coef):

stargazer(test1, test2, test3, test4, type="html", apply.coef = exp  list(confint(test1, test2, test3, test4)),column.labels = c("Model1", "Model2", "Model3", "Model4"),column.separate = c(2,2,2,2), apply.ci=exp,apply.coef=exp, out="X.htm")

对于第一个代码:

#        Ideal  Int 
#Model1 
#          (1)  (2) 
#ETI    0.453*  0.761***    
#(-0.051, 0.956)    (0.413, 1.109)

指数系数是正确的,但CI是错误的

对于第二个代码:

#           Ideal   Int 
#Model1 
#            (1)            (2) 
#ETI    -0.793***   -0.273  
#(0.273, 0.749)       (0.538, 1.078)

CI 正确且与cofint 匹配

对于第三个代码:

#       Ideal   Int 
#      Model1   
#       (1) (2) 
#ETI    0.453*  0.761***    
#(0.950, 2.602) (1.512, 3.033)

CI 是错误的,我认为它是双重指数化的

【问题讨论】:

  • 1.负置信区间不一定是错误的。 2. 我宁愿使用texreg 而不是stargazer。 3. 如果你想坚持使用 stargazer,我会尝试在 summary(lm(x)) 级别上处理 CI,而不是尝试使用 stargazer 更改它们。

标签: r stargazer


【解决方案1】:

如果 texreg 也适合您,这里有一个示例如何在 CI 上运行 exp 并将它们用于回归表。由于您没有包含数据,因此我使用了birthwt

library(MASS)
library(nnet)
library(stargazer)
example(birthwt)

test1 <- multinom(race ~ age + lwt + bwt,
                  data = birthwt)
summary(test1)
summary(test1)["standard.errors"]

ci.low <- c(confint(test1)[1:4], confint(test1)[9:12])
ci.up <-  c(confint(test1)[5:8], confint(test1)[13:16])
texreg::screenreg(test1,
                  ci.force = T,
                  override.ci.low = exp(ci.low),
                  override.ci.up = exp(ci.up)
                  )

【讨论】:

    【解决方案2】:

    另一种方法是使用gtsummary 包,这将允许您在一行代码中轻松地对模型求幂。您必须考虑种族因素才能使其发挥作用。

    library(nnet)
    library(MASS)
    library(gtsummary)
    
    test1 <- multinom(factor(race) ~ age + lwt + bwt,
                      data = birthwt) %>% 
      tbl_regression( exponentiate = TRUE)
    
    
    test2 <- multinom(factor(race) ~ age + lwt + bwt,
                      data = birthwt)%>% 
      tbl_regression( exponentiate = TRUE)
    

    【讨论】:

      猜你喜欢
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多