如何在Zelig包的tobit模型稳健标准误回归结果中显示显著性星号?
给Zelig稳健Tobit回归结果添加显著性星号
要实现像AER包tobit命令那样在系数旁显示显著性星号,你可以通过自定义处理系数表或者用stargazer包美化输出两种方式解决,下面是具体步骤:
方法一:手动处理系数表添加星号
运行完你的Zelig模型后,提取系数汇总表,根据p值规则添加星号列:
library(Zelig) # 你的原有代码 dat <- read.csv("http://www.omori.e.u-tokyo.ac.jp/STATA/Sample/select.csv") rb.tobit <- zelig(HOUR~CHILD+AGE+EDU+WAGE+HINC, below=0, above=Inf, model="tobit", data=dat, robust=T) # 提取系数汇总表 coef_summary <- coef(summary(rb.tobit)) # 定义显著性星号生成函数 add_signif_stars <- function(p_values) { sapply(p_values, function(p) { if (p < 0.001) { "***" } else if (p < 0.01) { "**" } else if (p < 0.05) { "*" } else { "" } }) } # 添加星号列到系数表 coef_table_with_stars <- cbind(coef_summary, ` ` = add_signif_stars(coef_summary[, "Pr(>|z|)"])) # 打印带星号的结果 print(coef_table_with_stars, digits = 3)
运行后你会看到系数旁带有对应显著性星号的输出,和AER包的tobit结果风格一致。
方法二:用stargazer包生成带星号的美观表格
stargazer是R中常用的回归结果美化工具,支持自动添加显著性星号,步骤如下:
# 安装并加载包(首次使用需要安装) install.packages("stargazer") library(stargazer) # 你的原有模型 dat <- read.csv("http://www.omori.e.u-tokyo.ac.jp/STATA/Sample/select.csv") rb.tobit <- zelig(HOUR~CHILD+AGE+EDU+WAGE+HINC, below=0, above=Inf, model="tobit", data=dat, robust=T) # 生成带星号的文本表格 stargazer(rb.tobit$result, type = "text", star.cutoffs = c(0.05, 0.01, 0.001), # 星号对应的p值阈值 digits = 3, title = "Robust Tobit Regression Results with Significance Stars")
这个命令会输出格式规整的文本表格,不仅带有显著性星号,还能自动整理模型统计量,非常适合用于报告输出。
说明
Zelig包的默认summary()输出没有内置显著性星号功能,所以需要通过上述两种方式手动补充。两种方法中,stargazer更适合生成用于报告的美观表格,而手动处理则更灵活,方便自定义输出格式。
内容的提问来源于stack exchange,提问作者Yukio Takagi
相关产品推荐
相关产品推荐

