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

如何将Stata ivreg2的Sanderson-Windmeijer检验结果导出到LaTeX并支持扩展?

Stata导出ivreg2的Sanderson-Windmeijer F检验并生成可扩展双面板LaTeX表格

核心需求

你需要从ivreg2的工具变量回归结果中提取Sanderson-Windmeijer工具变量排除性多变量F检验值,生成一个双面板LaTeX表格:

  • 上面板:展示内生变量(educ、hours)、外生变量(exper、expersq)及截距项的回归系数
  • 下面板:展示模型R²和每个内生变量的Sanderson-Windmeijer F检验值
    同时要求支持随时追加新回归列,此前用eststo时找不到F检验值,解决方案如下:

关键说明

ivreg2执行后,Sanderson-Windmeijer F检验值并不在常规的ereturn标量中,而是存储在e(swindmeijer)矩阵里,需要手动提取后与回归结果结合。

完整可扩展代码

* 加载示例数据
use http://fmwww.bc.edu/ec-p/data/wooldridge/mroz.dta, clear

* ----------------------
* 步骤1:存储回归结果与F检验值
* ----------------------
* 回归1:包含expersq的基准模型
ivreg2 lwage exper expersq (educ hours = age kidslt6 kidsge6), first
eststo reg1  // 存储系数结果

* 提取Sanderson-Windmeijer F值和R²,存入当前estimates集合
estadd scalar sw_educ = e(swindmeijer)[1,1]
estadd scalar sw_hours = e(swindmeijer)[2,1]
estadd scalar r2 = e(r2)

* 回归2:不含expersq的扩展模型(示例追加列)
ivreg2 lwage exper (educ hours = age kidslt6 kidsge6), first
eststo reg2  // 存储第二个回归的系数结果

* 重复提取F值和R²
estadd scalar sw_educ = e(swindmeijer)[1,1]
estadd scalar sw_hours = e(swindmeijer)[2,1]
estadd scalar r2 = e(r2)

* ----------------------
* 步骤2:生成双面板LaTeX表格
* ----------------------
esttab reg1 reg2 using "iv_results.tex", ///
    replace ///
    se star(* 0.1 ** 0.05 *** 0.01) ///
    keep(educ hours exper expersq _cons) ///  指定上面板展示的变量
    stats(r2 sw_educ sw_hours, ///  指定下面板展示的统计量
        labels("R²" "Sanderson-Windmeijer F (educ)" "Sanderson-Windmeijer F (hours)") ///
        layout(@ @)) ///  保证统计量与系数列对齐
    prehead("\begin{table}[htbp]" ///
        "\centering" ///
        "\begin{tabular}{lcc}" ///
        "\toprule" ///
        "\multicolumn{3}{c}{IV Regression Results} \\ \midrule" ///
        "\textbf{Panel A: Coefficients} \\ \midrule") ///
    posthead("\\" ///
        "\midrule" ///
        "\textbf{Panel B: Diagnostic Statistics} \\ \midrule") ///
    postfoot("\bottomrule" ///
        "\end{tabular}" ///
        "\caption{IV Regression with Sanderson-Windmeijer F Tests}" ///
        "\label{tab:iv_results}" ///
        "\end{table}") ///
    nomtitles ///
    collabels("Model 1" "Model 2")

代码细节解释

  1. F检验值提取:e(swindmeijer)是行数等于内生变量数的矩阵,第1行对应第一个内生变量(educ)的F值,第2行对应第二个(hours),用estadd scalar将这些值存入当前estimates集合,方便esttab调用。
  2. 可扩展性:新增回归时,只需重复ivreg2 + eststo + estadd的流程,esttab会自动追加列,仅需调整collabels的标签即可适配新列。
  3. 双面板设置:通过prehead和posthead手动划分Panel A(系数)和Panel B(诊断统计量),stats()选项指定下面板展示的内容,确保表格结构清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 19:23:01