在Stargazer中不准确的p值

时间:2014-04-22 11:04:46

标签: r stargazer

我希望在星际观察者的回归输出中使用相同的星星,就像“正常输出”一样。

我生成数据

library("stargazer"); library("lmtest"); library("sandwich")
set.seed(1234)
df <- data.frame(y=1001:1100)
df$x <- c(1:70,-100:-71) + rnorm(100, 0, 74.8)
model <- lm(log(y) ~ x, data=df)

并获得一些模型估计,其中x上的系数具有0.1023的p值

coeftest(model, vcov = vcovHC(model, type="HC3"))

我想在LaTeX中获得这些结果。基于相同的函数,我计算异方差性一致的标准估计值,并让观星者使用它们。

stderr_HC3_model <- sqrt(diag(vcovHC(model, type = "HC3")))
stargazer(model, se=list(stderr_HC3_model))

星辰输出在系数上有一个星,表示alpha = 10%时的显着性。我希望观星者和coeftest一样。 (由于与Stata的可比性,reg L_y x,vce(hc3)给出了精确的系数结果。)

我玩了一些没有帮助的观星选项p.auto,t.auto。当我执行“stargazer”时,我无法查看底层代码,因为在其他情况下它是可能的。怎么办?


理查兹的回答帮助了我。我指出了我用来给出多个回归的步骤(让我们说ols_a和ols_b)。

ses <- list(coeftest(ols_a, vcov = vcovHC(ols_a, type="HC3"))[,2],
        coeftest(ols_b, vcov = vcovHC(ols_b, type="HC3"))[,2])
pvals <- list(coeftest(ols_a, vcov = vcovHC(ols_a, type="HC3"))[,4],
          coeftest(ols_b, vcov = vcovHC(ols_b, type="HC3"))[,4])
stargazer(ols_a, ols_b, type="text", p=pvals, se=ses)

3 个答案:

答案 0 :(得分:4)

您需要提供与coeftest相关联的p值。从手册页。

  

p将替换默认p值的数字向量列表   每个型号。按元素名称匹配。这些将构成基础   关于重要明星的决定

以下情况应该有效。

test <- coeftest(model, vcov = vcovHC(model, type="HC3"))
ses <- test[, 2]
pvals <- test[, 4]
stargazer(model, type="text", p=pvals, se=ses)

这提供了以下内容。

===============================================
                        Dependent variable:    
                    ---------------------------
                              log(y)           
-----------------------------------------------
x                            -0.00005          


Constant                     6.956***          
                              (0.003)          

-----------------------------------------------
Observations                    100            
R2                             0.026           
Adjusted R2                    0.016           
Residual Std. Error       0.027 (df = 98)      
F Statistic             2.620 (df = 1; 98)     
===============================================
Note:               *p<0.1; **p<0.05; ***p<0.01

答案 1 :(得分:2)

这可能是一个小问题,但理查德的回答实际上并不完全正确 -  他的观星者输出不报告任何标准误差,也不报告变量x的潜在重要星。

另外,在星际观察手册coefficients中仅报告单个模型时,必须在列表中提供sept值。否则,观星者将报告一个空列表。

(略微)更正的例子:

test <- coeftest(model, vcov = vcovHC(model, type="HC3"))
ses <- list(test[, 2])
pvals <- list(test[, 4])
stargazer(model, type="text", p=pvals, se=ses)

输出:

=======================================================================
                                         Dependent variable:           
                              -----------------------------------------
                                        Daily added investors          
                                              negative                 
                                              binomial                 
-----------------------------------------------------------------------
log(lag_raised_amount + 1)                    -0.466***                
                                               (0.124)                 

lag_target1                                   -0.661***                
                                               (0.134)                 

Constant                                      -3.480**                 
                                               (1.290)                 

-----------------------------------------------------------------------
Observations                                    6,513                  
Log Likelihood                                 -8,834                
theta                                     1.840*** (0.081)             
Akaike Inf. Crit.                              17,924                
=======================================================================
Note:                         + p<0.1; * p<0.05; ** p<0.01; *** p<0.001

答案 2 :(得分:1)

se论证存在固有的危险。

使用此方法时,用户应谨慎使用t.autop.auto这两个参数,两者都默认为TRUE。我认为将它们设置为FALSE并提供手动tp值是谨慎的。

如果不这样做,您就有可能让显着的星星与显示的p值不同步。 (我怀疑观星者只会重复使用现在与默认值不同的se,并使用此输入重新计算显示的星星;这自然会产生意外结果。)

另见: