如何解决使R报告调整后的R平方和输出中的F检验具有可靠的标准误差
我已经使用lm(x~y1 + y1 + ... + yn)
估计了线性回归模型,并且为了解决当前的异方差性,我让R估计了鲁棒的标准误差,
coeftest(model,vcov = vcovHC(model,type = "HC0"))
我知道“正常”模型中的(稳健)R平方和F统计量仍然有效,但是如何获得R在输出中报告它们呢?我想将来自不同规格的几个回归输出与stargazer
融合在一起,如果我不得不为了获得这些统计数据而不得不输入非稳健模型,那将变得非常混乱。理想情况下,我想在包含这些统计信息的stargazer
中输入回归输出,然后将其导入到其框架中。
提前感谢所有答案
解决方法
这是解决方法。您需要使用stargazer支持的模型对象作为模板,然后可以提供要使用的标准错误列表:
library(dplyr)
library(lmtest)
library(stargazer)
# Basic Model ---------------------------------------------------------------------------------
model1 <- lm(hp ~ factor(gear) + qsec + cyl + factor(am),data = mtcars)
summary(model1)
# Robust standard Errors ----------------------------------------------------------------------
model_robust <- coeftest(model1,vcov = vcovHC(model1,type = "HC0"))
# Get robust standard Errors (sqrt of diagonal element of variance-covariance matrix)
se = vcovHC(model1,type = "HC0") %>% diag() %>% sqrt()
stargazer(model1,model1,se = list(NULL,se),type = 'text')
使用这种方法,即使对于不受支持的模型对象,也可以使用stargazer。您只需要系数,标准误差和p值作为向量。然后,您甚至可以“机械地插入”不受支持的模型。
最后一个音符。您是正确的,一旦出现异方差,仍然可以使用Rsquared。但是,总体F检验和t检验不再有效。
,我没有stargarzer
的解决方案,但对于具有可靠标准错误的回归表,我确实有两个可行的选择:
选项1
使用modelsummary
包制作表格。
它有一个statistic_override
参数,可让您提供一个用于计算鲁棒方差协方差矩阵的函数(例如sandwich::vcovHC
。
library(modelsummary)
library(sandwich)
mod1 <- lm(drat ~ mpg,mtcars)
mod2 <- lm(drat ~ mpg + vs,mtcars)
mod3 <- lm(drat ~ mpg + vs + hp,mtcars)
models <- list(mod1,mod2,mod3)
modelsummary(models,statistic_override = vcovHC)
注1:上面的屏幕截图来自HTML表,但是modelsummary
包也可以保存Word,LaTeX或markdown表。
注意2:我是此软件包的作者,因此请将此视为可能带有偏见的观点。
选项2
使用estimatr::lm_robust
函数,该函数自动包含可靠的标准错误。我相信estimatr
支持stargazer
,但我知道它受modelsummary
支持。
library(estimatr)
mod1 <- lm_robust(drat ~ mpg,mtcars)
mod2 <- lm_robust(drat ~ mpg + vs,mtcars)
mod3 <- lm_robust(drat ~ mpg + vs + hp,mod3)
modelsummary(models)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。