我正在尝试运行相当多的多项式回归模型。Stargazer似乎是一个很好的工具,可以在一个文档中报告所有结果,以便于访问。但是,我注意到我得到了一些负置信区间,这没有意义。
我尝试单独使用apply.coef=exp
,在那里我得到了负置信区间 我还尝试使用置信区间没有意义的apply.coef=exp
和apply.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)
指数系数正确,但置信区间错误
对于第二个代码:
# 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是错误的,我认为它是双重指数
如果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)
)
一种替代方法是使用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)