【发布时间】:2017-03-01 09:23:41
【问题描述】:
我有一个 glm 模型,我使用来自 lmtest 包的 coeftest 来估计稳健的标准误差。当我使用 stargazer 生成回归表时,我得到了正确的结果,但没有观察次数和其他相关统计数据,如零偏差和模型偏差。
这是一个例子:
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.
我对观察次数、零偏差和残余偏差特别感兴趣。
我认为如果我用新的系数矩阵替换旧的系数矩阵,我会得到具有正确统计数据的正确估计值,并且 stargazer 会识别模型并正确打印它。为此,我尝试在 m1 模型中替换 coeftest 模型中的系数、SE、z 统计量和 p 值,但其中一些统计量是用 summary.glm 计算的,不包括在 m1 中输出。我可以在summary 输出中轻松替换这些系数,但 stargazer 无法识别摘要类型类。我尝试使用特定统计信息向 m 对象添加属性,但它们没有显示在输出中,并且 stargazer 无法识别它。
注意:我知道 stargazer 可以计算稳健的 SE,但我也在进行其他计算,因此示例需要包含 coeftest 输出。
感谢任何帮助。
【问题讨论】:
-
您是否反对使用
add.lines选项手动操作?然后您可以使用 coeftest 对象并从 lm 对象添加其他统计信息:stargazer(m,type="text", single.row = T,add.lines = list(c("Observations",length(m1$data[,1])),c("Null Deviance" ,round(m1$null.deviance,3)))) -
感谢@paqmo,但在我的真实示例中,这太麻烦了。我实际上是在列表中输入带有 N 个模型的列表。对于 5-6 个模型来说,这将是太多的手工工作。