You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Stata中用estout将多回归结果按行输出至Excel?

Stata回归结果格式调整与目标变量筛选方案

问题背景

需要在循环生成的一系列回归变量中,筛选出对因变量负向影响且BIC准则最小的变量,同时导出系数估计值、p值、BIC、R平方、聚类数量、观测值等结果至Excel或dta文件。当前estout输出结果呈对角线排列,需调整为每行对应一个变量的完整统计结果格式。

原代码

sysuse auto, clear

global min "1800 2000 2500 3000"
global max "3500 4000 4500 5000"

foreach min of global min{
    foreach max of global max{
        gen weight_`min'_`max' = weight>=`min' & weight<=`max'
    }
}

foreach min of global min{
    foreach max of global max{
        reg price weight_`min'_`max', cluster(foreign)
        estimates store weight_`min'_`max'
    }
}

estout weight* using "results_weight.xls",  cells(b(star fmt(%9.3f)) p(par fmt(%9.3f))) starlevels(* 0.1 ** 0.05 *** 0.01) varwidth(18) modelwidth(16) stats(r2 N bic)  keep(weight*) replace

调整输出格式(解决对角线排列问题)

原estout默认将每个回归作为一列、每个变量作为一行,导致仅对角线有值。需调整为每行对应一个变量(回归)、每列对应一项统计指标的格式,推荐使用更简洁的esttab(estout的简化命令)实现:

方案1:导出为Excel格式

esttab weight* using "results_weight.xls", replace ///
    cells(b(star fmt(%9.3f)) p(par fmt(%9.3f))) ///  // 显示带显著性星号的系数、括号包裹的p值
    starlevels(* 0.1 ** 0.05 *** 0.01) ///
    stats(r2 N bic N_clust, fmt(%9.3f %9.0g %9.3f %9.0g) labels(R-squared 观测值 BIC 聚类数量)) ///  // 加入聚类组数统计
    keep(weight*) ///
    modelwidth(0) varwidth(20) ///  // 调整列宽避免变量名截断
    noobs nonote nomtitle ///  // 关闭冗余输出项
    eqlabels(none) collabels(none) ///  // 清除默认标签
    title("Weight区间变量回归结果")

方案2:导出为dta格式(便于后续筛选)

esttab weight* using "results_weight.dta", replace ///
    cells(b p) ///
    stats(r2 N bic N_clust, fmt(%9.3f %9.0g %9.3f %9.0g)) ///
    keep(weight*) ///
    modelwidth(0) varwidth(0) ///
    noobs nonote nomtitle ///
    eqlabels(none) collabels(none) ///
    dta  // 指定导出为dta格式

筛选目标变量

导出dta文件后,可直接在Stata中筛选符合条件的变量:

use "results_weight.dta", clear
rename _model var_name  // 将回归模型名(变量名)列重命名为var_name
rename b coef  // 重命名系数列
rename p p_value  // 重命名p值列

// 筛选负向影响(系数<0)且BIC最小的变量
keep if coef < 0
sort bic
list var_name coef p_value r2 N bic N_clust in 1  // 显示BIC最小的结果

补充说明

  • N_clust为聚类组数,通过e(N_clust)提取,需Stata 13及以上版本支持。
  • 若坚持使用estout,需添加unstack选项并调整布局,但esttab更简洁直观,优先推荐。

内容的提问来源于stack exchange,提问作者ele_al_12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:33:31