r语言 - 观星者剂量不显示稳健s.e的观测次数



我正在尝试使用观星者输出一些具有稳健标准误差的回归结果,但是底部的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)

最新更新