我有一系列线性模型,我想报告每个模型的标准化系数。但是,当我在观星器中打印模型时,看起来观星者会自动打印标准化系数的显著性星星,就好像它们是非标准化系数一样。 您可以在下面看到差异是如何出现的。
根据非标准化值打印显著性星在统计上是错误的吗?在观星者中是如何做到这一点的?谢谢!
#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')
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')
此外,一般来说,观星者有时不适用于较长的模型名称,并给出警告Error in if (is.na(s)) { : the condition has length > 1
因此,我建议保持模型名称简短(特别是如果您希望Stargazer显示其中的一些(。