能否用stargazer将回归统计量拆分为独立列?
如何用stargazer拆分系数、标准误、p值为独立列
可以实现这个需求,以下是两种实用的方法:
方法一:重复传入模型并指定列输出内容
通过多次传入同一个模型,给每一列单独设置要输出的内容(系数、标准误、p值),再自定义列标题:
stargazer(model1, model1, model1, type = "text", column.labels = c("coefficient", "se", "p-value"), report = c("v", "s", "p"), # 三列分别输出系数、标准误、p值 single.row = FALSE, keep.stat = c("n", "ll"), # 保留观测数和对数似然 notes = "*p<0.1; **p<0.05; ***p<0.01")
如果需要让观测数、对数似然跨列显示,就手动用add.lines添加:
stargazer(model1, model1, model1, type = "text", column.labels = c("coefficient", "se", "p-value"), report = c("v", "s", "p"), single.row = FALSE, omit.stat = "all", # 先隐藏默认统计量 add.lines = list( c("Observations", "", "183", ""), c("Log Likelihood", "", "-1,052.273", "") ), notes = "*p<0.1; **p<0.05; ***p<0.01")
方法二:手动构造表格数据(更灵活)
先从模型里提取需要的数值,再直接构造表格传给stargazer:
# 从模型中提取结果 coef_val <- coef(model1)["male"] se_val <- sqrt(diag(vcov(model1)))["male"] p_val <- coef(summary(model1))["male", 4] # 构造表格内容 result_table <- rbind( c(coef_val, se_val, p_val), c("", "", ""), c("", 183, ""), c("", -1052.273, "") ) # 设置行名和列名 rownames(result_table) <- c("male", "", "Observations", "Log Likelihood") colnames(result_table) <- c("coefficient", "se", "p-value") # 输出表格 stargazer(result_table, type = "text", summary = FALSE, notes = "*p<0.1; **p<0.05; ***p<0.01")
两种方法都能生成你想要的、将系数、标准误、p值拆分为独立列的表格。
内容的提问来源于stack exchange,提问作者aerw4
相关产品推荐
相关产品推荐

