如何在R的Stargazer回归表格中添加t值至标准误下方?
解决Stargazer添加t值到回归表格的方法
要在标准误下方的方括号中添加t值,你可以通过手动提取模型的t统计量,再结合Stargazer的参数实现,具体步骤如下:
步骤1:提取回归模型的t值
先从拟合的线性模型中提取t统计量,代码如下:
# 拟合回归模型 school.reg1 <- lm(math~income+students+english, data=CASchools) school.reg2 <- lm(read~income+students+english, data=CASchools) # 从模型结果中提取t值 t1 <- summary(school.reg1)$coefficients[,3] t2 <- summary(school.reg2)$coefficients[,3]
步骤2:修改Stargazer代码实现需求
通过report参数控制显示内容的顺序,同时传入提取好的标准误和t值,让两者依次显示在系数下方:
stargazer(school.reg1, school.reg2, type="latex", covariate.labels = c("Number of Students at School", "Median Income of Parents", "% of Non-Native English Speakers"), dep.var.labels = c("Math", "Reading"), keep.stat=c("n", "adj.rsq"), # 指定显示顺序:系数→标准误→换行显示t值 report = "cs*t", # 传入标准误 se = list(summary(school.reg1)$coefficients[,2], summary(school.reg2)$coefficients[,2]), # 传入提前提取的t值 t = list(t1, t2), add.lines = list(c("AIC", round(AIC(school.reg1),2), round(AIC(school.reg2),2) )) )
补充说明
report="cs*t"表示依次显示系数(Coefficient)、标准误(Std. Error)、t值(t-statistic),*代表换行显示后续统计量- 若需要调整t值的小数位数,可提前对
t1、t2做格式化,例如t1 <- round(summary(school.reg1)$coefficients[,3], 2) - 注意原代码中
covariate.labels的数量和模型自变量数量不匹配(模型仅3个自变量,但标签写了5个),需要对应调整,否则会报错
内容的提问来源于stack exchange,提问作者nerd
相关产品推荐
相关产品推荐

