我有一个glm模型,我使用coeftest
包中的lmtest
来估计可靠的标准错误。当我使用观星者制作回归表时,我得到了正确的结果,但没有观察数量和其他相关统计数据,如零偏差和模型偏差。
以下是一个例子:
library(lmtest)
library(stargazer)
m1 <- glm(am ~ mpg + cyl + disp, mtcars, family = binomial)
# Simple binomial regression
# For whatever reason, let's say I want to use coeftest to estimate something
m <- coeftest(m1)
stargazer(m, type = "text", single.row = T) # This is fine, but I want to also include the number of observations
# the null deviance and the model deviance.
我特别感兴趣的是观察次数,零偏差和剩余偏差。
我认为如果我用新的系数矩阵替换旧的系数矩阵,我会用正确的统计数据得到正确的估计值,而观星者会识别模型并正确打印。为此,我尝试用coeftest
模型中的m1
模型替换系数,SE,s,z统计和p值,但其中一些统计数据是用{{ 1}}并且不包含在summary.glm
输出中。我可以很容易地在m1
输出中替换这些系数,但是观星者不会识别摘要类型类。我尝试使用特定统计信息向summary
对象添加属性,但它们不会显示在输出中,而且观星者也无法识别它。
注意:我知道stargazer可以计算强大的SE,但我也在进行其他计算,因此该示例需要包含m
输出。
感谢任何帮助。
答案 0 :(得分:0)
如果我找对你,你可以尝试以下方法:
首先,将您的观星分析分配给像这样的对象
stargazer.values <- stargazer(m, type = "text", single.row = T)
然后使用body(stargazer)
检查stargazer命令的代码。
希望您可以找到观星者使用但不报告的值的对象。然后,您可以像这样解决它们(例如,如果有一个名为“null.deviance”的对象
stargazers.values$null.deviance
或者,如果它是另一个数据框的一部分,比如df,它可能就像这样
stargazers.values$df$null.deviance
也许像这样的代码可能会有所帮助
print(null.deviance <- stargazers.values$null.deviance)
希望这有帮助!
答案 1 :(得分:0)
将原始模型传递到注视者中,然后使用coeftest
传递标准误差(se =
,置信区间(ci.custom =
)和/的自定义值可能是最简单的或p个值(p =
)。有关如何轻松处理包含多个模型的列表,请参见下文。
suppressPackageStartupMessages(library(lmtest))
suppressPackageStartupMessages(library(stargazer))
mdls <- list(
m1 = glm(am ~ mpg, mtcars, family = poisson),
m2 = glm(am ~ mpg + cyl + disp, mtcars, family = poisson)
)
# Calculate robust confidence intervals
se_robust <- function(x)
coeftest(x, vcov. = sandwich::sandwich)[, 2]
# Original SE
stargazer(mdls, type = "text", single.row = T, report = "vcsp")
#>
#> ===============================================
#> Dependent variable:
#> -----------------------------
#> am
#> (1) (2)
#> -----------------------------------------------
#> mpg 0.106 (0.042) 0.028 (0.083)
#> p = 0.012 p = 0.742
#> cyl 0.435 (0.496)
#> p = 0.381
#> disp -0.014 (0.009)
#> p = 0.151
#> Constant -3.247 (1.064) -1.488 (3.411)
#> p = 0.003 p = 0.663
#> -----------------------------------------------
#> Observations 32 32
#> Log Likelihood -21.647 -20.299
#> Akaike Inf. Crit. 47.293 48.598
#> ===============================================
#> Note: *p<0.1; **p<0.05; ***p<0.01
# With robust SE
stargazer(
mdls, type = "text", single.row = TRUE, report = "vcsp",
se = lapply(mdls, se_robust))
#>
#> ===============================================
#> Dependent variable:
#> -----------------------------
#> am
#> (1) (2)
#> -----------------------------------------------
#> mpg 0.106 (0.025) 0.028 (0.047)
#> p = 0.00002 p = 0.560
#> cyl 0.435 (0.292)
#> p = 0.137
#> disp -0.014 (0.007)
#> p = 0.042
#> Constant -3.247 (0.737) -1.488 (2.162)
#> p = 0.00002 p = 0.492
#> -----------------------------------------------
#> Observations 32 32
#> Log Likelihood -21.647 -20.299
#> Akaike Inf. Crit. 47.293 48.598
#> ===============================================
#> Note: *p<0.1; **p<0.05; ***p<0.01
由reprex package(v0.3.0)于2020-11-09创建