將迴歸結果從 STATA 輸出成 word、excel 報表
迴歸報表輸出
報表輸出指令
這節會談到如何將迴歸結果輸出成期刊常見的迴歸報表。輸出檔案形式可以是 doc 檔或 xlsx、csv、tex 等。在 STATA 中,outreg2
、estout
是最常用來輸出圖表的兩個套件,前者較為簡單,而後者使用上更具彈性¹。這兩個套件都可以透過 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 effecti.team
的係數,以避免表過於冗長。 - Option
cttop()
可以在 column 上方新增文字說明,addtext()
可以在 column 下方新增文字說明(插入名為Team FE
的 row),addstat()
則可以在 column 下方新增統計量(插入名為 Fstat 的 row),新增的統計量可直接使用自 e()、r()(參考ereturn list
、return list
)。 - outreg2 還有很多可以調整輸出表的細節,比如說
dec()
可以調整輸出的小數點位數。更多細節可以再自行參考 help file 或網路上的範例。
自動化輸出各種迴歸
輸出表並不困難,麻煩的地方在於要如何輸出上百條迴歸,同時讓 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
可以查看熱門套件,而這兩個套件皆名列前茅。