將迴歸結果從 STATA 輸出成 word、excel 報表

CW Wayne Yeh
4 min readSep 4, 2021

--

迴歸報表輸出

報表輸出指令

STATA outreg2 指令與輸出結果
Fig 4–2 STATA outreg2 指令與輸出結果

這節會談到如何將迴歸結果輸出成期刊常見的迴歸報表。輸出檔案形式可以是 doc 檔或 xlsx、csv、tex 等。在 STATA 中,outreg2estout是最常用來輸出圖表的兩個套件,前者較為簡單,而後者使用上更具彈性¹。這兩個套件都可以透過 ssc install <pkg_name> 指令安裝。Fig 4-2 展示了 outreg2 的 code 以及輸出結果(excel),以下條列說明:

  • 首先,Fig 4-2 中跑了兩條 regression(有無 team fixed effect i.team),並輸出成 .xls 的形式。
  • outreg2 using <path> 可以在跑完估計指令後將結果輸出於路徑 <path>。基本上 outreg2 可以根據不同的副檔名(doc/xls/tex)輸出成不同形式。
  • Option replace 可以覆寫現有檔案,而預設的 append 則可以接續現有結果。
  • Option keep(<varlist>) 可以選擇要在輸出的表中呈現哪些變數的估計係數。比如說:Fig 4-2 中就排除了 team fixed effect i.team 的係數,以避免表過於冗長。
  • Option cttop() 可以在 column 上方新增文字說明, addtext() 可以在 column 下方新增文字說明(插入名為 Team FE 的 row), addstat() 則可以在 column 下方新增統計量(插入名為 Fstat 的 row),新增的統計量可直接使用自 e()、r()(參考 ereturn listreturn list )。
  • outreg2 還有很多可以調整輸出表的細節,比如說 dec() 可以調整輸出的小數點位數。更多細節可以再自行參考 help file 或網路上的範例。

自動化輸出各種迴歸

輸出迴歸結果指令 — 逐列輸出版本
Fig 4–3 輸出迴歸結果指令 — 逐列輸出版本
輸出迴歸結果指令 — 自動化版本
Fig 4–4 輸出迴歸結果指令 — 自動化版本

輸出表並不困難,麻煩的地方在於要如何輸出上百條迴歸,同時讓 code 保有彈性、易讀且好操作。我們之所以常常要跑上百條迴歸,是因為我們要嘗試各種設定下的估計結果,比如說不同的控制變數(specifications)、不同族群(subsample)、不同 estimator(IV 的 2sls or gmm)、不同 outcome(也許光是同一個 outcome 就有數種定義),將這些設定排列組合起來就會產生大量的迴歸式(see Fig 4–3)。這時一旦有設定要修改或新增的話,往往需要花很多力氣在 do-file 中逐列修改,而且 code 本身也顯得冗長。

一個值得嘗試的作法是把上百條迴歸背後的設定簡化為參數,並利用 local 變數、迴圈等技巧,自動地組合這些設定並輸出估計結果。我在 Fig 4-4 中把眾多設定改成以 local 變數或是迴圈變數表示:

  • 控制變數 covariates:model_1、model_2。
  • sample:all、group1–4。
  • 條件:cond_1、cond_2。

我總共跑了 20 條回歸。一旦我需要修改,僅需要更動 local 變數或迴圈即可,這比起 Fig 4–3 的做法更好維護且容易擴充。另外,我在 do-file 開頭的第一個 outreg2(Initiate 部分)加上了 replace 的 option,用來將現有的檔案覆蓋掉。若只是要在原本的結果之上新增估計結果,只要執行 Main Body 部分即可。

[1]: ssc hot 可以查看熱門套件,而這兩個套件皆名列前茅。

--

--

CW Wayne Yeh

資料分析/閱讀筆記/生活雜感。我是葉政維,台大經研畢,目前是樹鋸分析師🪚,正在職場站穩腳步,也在探索什麼是好的生活。