Включение стандартизированных коэффициентов в таблицу Stargazer

У меня есть ряд линейных моделей, и я хотел бы сообщить стандартизированные коэффициенты для каждой. Однако, когда я печатаю модели в Stargazer, похоже, что 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 ответа

Решение

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

Большое спасибо 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 отображал некоторые из них).

Другие вопросы по тегам