我正在尝试使用观星者输出一些具有稳健标准误差的回归结果,但是底部的nobs和f stat等值的行没有显示。 下面是代码和输出。
r_FEB1_se <- coeftest(r_FEB1, vcov = vcovHC(r_FEB1, method = "arellano", type = "HC3", cluster = "group"))
r_FED1_se <- coeftest(r_FED1, vcov = vcovHC(r_FED1, method = "arellano", type = "HC3", cluster = "group"))
r_FEF1_se <- coeftest(r_FEF1, vcov = vcovHC(r_FEF1, method = "arellano", type = "HC3", cluster = "group"))
r_FEH1_se <- coeftest(r_FEH1, vcov = vcovHC(r_FEH1, method = "arellano", type = "HC3", cluster = "group"))
r_FEB2_se <- coeftest(r_FEB2, vcov = vcovHC(r_FEB2, method = "arellano", type = "HC3", cluster = "group"))
r_FED2_se <- coeftest(r_FED2, vcov = vcovHC(r_FED2, method = "arellano", type = "HC3", cluster = "group"))
r_FEF2_se <- coeftest(r_FEF2, vcov = vcovHC(r_FEF2, method = "arellano", type = "HC3", cluster = "group"))
r_FEH2_se <- coeftest(r_FEH2, vcov = vcovHC(r_FEH2, method = "arellano", type = "HC3", cluster = "group"))
stargazer::stargazer(r_FEB1_se,r_FEB2_se,r_FED1_se,r_FED2_se,r_FEF1_se,r_FEF2_se,r_FEH1_se,r_FEH2_se, type = "text")
=========================================================================================================================
Dependent variable:
--------------------------------------------------------------------------
(1) (2) (3) (4) (5) (6) (7) (8)
-------------------------------------------------------------------------------------------------------------------------
`Ratio Immigrants/pop t-1` 0.594* 0.653* 1.193*** 1.368*** 0.973*** 1.031*** 0.841*** 0.904***
(0.337) (0.338) (0.450) (0.458) (0.295) (0.306) (0.294) (0.299)
`Disposable income in Thousand EUR t-1` 0.000* 0.000 0.000 0.00000***
(0.000) (0.000) (0.000) (0.000)
`Unemployment rate on all civilian income t-1` 0.010*** 0.031*** -0.006 0.009**
(0.003) (0.007) (0.005) (0.004)
`Disposable income in Thousand EUR t-2` 0.000 0.000 0.000 0.00000***
(0.000) (0.000) (0.000) (0.000)
`Unemployment rate on all civilian income t-2` 0.008** 0.025*** -0.011** 0.007
(0.003) (0.007) (0.005) (0.005)
=========================================================================================================================
=========================================================================================================================
Note: *p<0.1; **p<0.05; ***p<0.01
通常"lm"
对象用于生成表。但您可以覆盖这些值。由于我更熟悉texreg
包,我希望您不介意我提供相应的解决方案。
您需要两者,"lm"
对象(表示如下fit*
(和由coeftest
产生的具有稳健标准误差的矩阵,由下面的rob.fit*
表示。例:
fit1 <- lm(mpg ~ hp, mtcars)
fit2 <- lm(mpg ~ hp + am, mtcars)
library(sandwich);library(lmtest)
rob.fit1 <- coeftest(fit1, vcov.=vcovHC(fit1))
rob.fit2 <- coeftest(fit2, vcov.=vcovHC(fit2))
然后,在texreg
中使用override.*
提供修改后的标准误差以及 p 值。
library(texreg)
screenreg(list(fit1, fit2),
override.se=list(rob.fit1[,2], rob.fit2[,2]),
override.pvalues=list(rob.fit1[,4], rob.fit2[,4]))
# =================================
# Model 1 Model 2
# ---------------------------------
# (Intercept) 30.10 *** 26.58 ***
# (2.41) (1.47)
# hp -0.07 *** -0.06 ***
# (0.02) (0.01)
# am 5.28 ***
# (1.22)
# ---------------------------------
# R^2 0.60 0.78
# Adj. R^2 0.59 0.77
# Num. obs. 32 32 <-- THERE THEY ARE!!
# RMSE 3.86 2.91
# =================================
# *** p < 0.001, ** p < 0.01, * p < 0.05
只需将screenreg
替换为 LaTeX 的texreg
,或 HTML 的htmlreg
,随心所欲。
我相信这也可能以某种方式与stargazer
.
我同意 jay.sf 的观点,即如果提供coeftest
对象而不是回归模型,stargazer
不会显示测试统计信息。但是有一个解决方案,无需切换到texreg
。
您仍然可以使用coeftest
来查找可靠的标准错误。您需要将每个模型的标准误差保存在一个数值向量中,然后将所有向量组合到一个列表中,该列表将补充到stargazer
中的se
选项中。但请注意,stargazer
必须依赖于这些向量中的元素名称,以将每个健壮的标准误差与每个自变量相匹配。因此,对于每个模型,应使用 [,2] 对coeftest
对象进行子集化,因为第二列用于鲁棒标准误差。变量名称将以这种方式保留。然后,您可以将所有数值向量合并到一个列表中,并将其提供给se
选项中。
不适合数据集的示例代码:
(我有八个模型要运行,从 q4a1 到 q4a8,它们存储在列表 q4a 中。我想找到双向聚类标准误差,而不是稳健的标准误差。
se.q4a <- sapply(q4a, function(z) coeftest(z, vcov = vcovCL, cluster = ~ wbcode + cluster)[, 2])
stargazer(q4a[[1]], q4a[[2]], q4a[[3]], q4a[[4]], q4a[[5]], q4a[[6]], q4a[[7]], q4a[[8]], keep = c("rlaw", "corrupt"), type = "text", se = se.q4a)