在 stargazer 表格中包括标准化系数

3
我有一系列线性模型,我想为每个模型报告标准化系数。然而,当我在stargazer中打印模型时,它似乎会自动将标准化系数的显著性星号打印出来,就好像它们是未标准化系数一样。你可以看到下面的差异。
在未标准化值的基础上打印显著性星号是否在统计上是错误的?在stargazer中如何实现这一点?谢谢!
#load libraries
library(stargazer)
library(lm.beta)
#fake data
var1<-rnorm(100, mean=10, sd=5)
var2<-rnorm(100, mean=5, sd=2)
var3<-rnorm(100, mean=2, sd=3)
var4<-rnorm(100, mean=5, sd=1)
df<-data.frame(var1, var2, var3, var4)
#model with unstandardized betas
model1<-lm(var1~var2+var3+var4, data=df)
#Standardized betas
model1.beta<-lm.beta(model1)
#print
stargazer(model1, model1.beta, type='text')
2个回答

5

Stargazer并不会自动识别第二个模型中的标准化系数。 lm.beta只是将标准化系数添加到lm.object中。因此,它仍然是一个lm.object,所以它按照通常的方式提取系数(从model1.beta$coefficients中提取)。使用coef =参数来指定您想要使用的特定系数:coef = list(model1$coefficients, model1.beta$standardized.coefficients)

> stargazer(model1, model1.beta, 
            coef = list(model1$coefficients, 
            model1.beta$standardized.coefficients),
            type='text')

==========================================================
                                  Dependent variable:     
                              ----------------------------
                                          var1            
                                   (1)            (2)     
----------------------------------------------------------
var2                              0.135          0.048    
                                 (0.296)        (0.296)   

var3                              -0.088        -0.044    
                                 (0.205)        (0.205)   

var4                              -0.190        -0.030    
                                 (0.667)        (0.667)   

Constant                         10.195**        0.000    
                                 (4.082)        (4.082)   

----------------------------------------------------------
Observations                       100            100     
R2                                0.006          0.006    
Adjusted R2                       -0.025        -0.025    
Residual Std. Error (df = 96)     5.748          5.748    
F Statistic (df = 3; 96)          0.205          0.205    
==========================================================
Note:                          *p<0.1; **p<0.05; ***p<0.01

1
非常感谢paqmo提供的答案。我想补充一点,为了获得标准化解决方案的正确p值,您需要添加另一行详细说明要使用哪些p值:

    stargazer(model1, model1.beta, 
    coef = list(model1$coefficients, 
    model1.beta$standardized.coefficients),
    p = list (coef(summary(model1))[,4], coef(summary(model1.beta))[,5]),
    type='text')

另外,通常情况下,Stargazer有时无法处理较长的模型名称,并显示警告Error in if (is.na(s)) { : the condition has length > 1

因此,我建议您将模型名称保持简短(特别是如果您想让Stargazer显示其中几个)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接