asdoc:Stata 結果輸出又一利器!
文章目錄
攥寫論文過程中,將統計和迴歸結果以及其他變數輸出到 word 是重要一步,如何才能既美觀又不耗費大量腦細胞改改改、調調調呢?
summarize
、correlate
、tabstat
、cross-tabs
、regressions
、t-tests
等等等等,這些命令的結果怎麼輸出?想想都覺得頭大。
每次想把幾個迴歸結果顯示在一張表上,都要每做一次迴歸就儲存一次,最後集合起來輸出。對於表頭相同,資料結構相同的資料,怎樣才能既省地方又美觀的把它們放在一張表上,也經常讓人抓狂。
好在, Stata 中一條新發布的命令 asdoc
asdoc
就能輕輕鬆鬆輸出結果。
本文將重點介紹 asdoc
命令關於描述性統計輸出、迴歸結果輸出、表頭相同資料結構相同的資料輸出的功能,篇幅有限,所以挑最經常用到的功能進行介紹,asdoc
詳情請見help asdoc
。
接下來,就讓我們一起來見證 asdoc
的神奇功能吧。
首先,老規矩,在 stata 中敲入如下程式碼安裝 asdoc
:
. ssc install asdoc, replace
1、輸出描述性統計結果
Example 1:基本用法
以 Stata 系統自帶的資料為例,直觀說明 asdoc
. sysuse auto, clear
. asdoc sum
描述性統計輸出結果如下:
相關說明如下:
asdoc sum
與asdoc sum, append
效果相同,新輸出的描述性統計結果連帶之前的命令執行結果,一起輸出到word文件裡。asdoc sum, replace
表示只輸出最新執行的描述性統計結果。asdoc sum price mpg rep78
表示對 price mpg rep78 這些變數進行描述性統計asdoc sum price mpg rep78,save(summary.doc) title(###)
表示對 price mgp rep78 進行描述性統計,表名顯示為 ###,word 文件儲存為summary.doc
,效果如下:
Example 2:設定輸出格式
我們也可以輸出更多的統計量,同時對輸出格式進行美化設定:
. asdoc sum, stat(N mean sd tstat p1 p99) fs(7) dec(2)
具體釋義如下:
stat(# # #)
表示需要輸出的描述性統計變數,具體而言,stat(N mean sd tstat p1 p99)
表示輸出的統計變數為樣本數、算術平均數、標準差、t 值、1% 分位數、99% 分位數,fs(#)
為 Font size 的縮寫,表示字號大小為#
英鎊,dec(#)
為 Decimal points 的縮寫,表示輸出結果保留到小數點後 # 位
輸出效果如下:
Example 3:分組統計量
如下兩條命令都可以實現將國外樣本與國內樣本分開進行描述性統計:
. asdoc sum, stat(N mean sd tstat p1 p99) by(foreign)
*-或
. bysort foreign: asdoc sum, stat(N mean sd tstat p1 p99)
具體釋義如下:
by(varname)
表示按照 varname 分類進行描述性統計,- 如果想增加文字描述可以使用
text
選項, 例如如下命令就可以在表格下方顯示文字,括號內的文字可以自行替換:
. asdoc, text(A car is a wheeled motor vehicle used for transportation) append fs(10)
輸出效果為:
2、迴歸結果輸出
接下來,我們介紹 asdoc
大大解放生產力的兩大利器:nest append
和 rowappend
選項。
基本用法
將幾個迴歸結果輸出到一張表上是我們在寫論文時經常遇到的操作,來看看 asdoc
是如何實現的:先執行第一個迴歸,後面加 nest
表示這將會是一張集合輸出的表,程式碼及輸出結果如下:
. sysuse auto, clear
. asdoc reg price mpg rep78, nest replace
輸出效果為:
接下來,我們再執行第二個迴歸,程式碼及輸出結果如下:
. asdoc reg price mpg rep78 headroom, nest append
執行第三個迴歸:
. asdoc reg price mpg rep78 headroom weight, nest append
結果如下:
簡言之,需要在一張表上顯示多個迴歸結果就依次進行 nest append
。
橫向放置的迴歸表格
以上介紹的是對於被解釋變數相同的迴歸的輸出方式,對於被解釋變數不同,解釋變數相同的多個迴歸結果的共同輸出問題,我們使用 asdoc
中的 wide 選項,仍然以 Stata 系統自帶的資料為例,輸入如下命令:
. asdoc reg price mpg rep78, replace wide
輸出結果為:
想把被解釋變數為 trunk 的迴歸結果追加於上表,輸入如下命令:
. asdoc reg trunk mpg rep78, wide
輸出結果為:
加入被解釋變數為 weight
的迴歸結果,輸出效果為:
有如下幾個問題需要說明:
- 在每一條迴歸命令後加
t(below)
表示在係數的下方顯示對應的 t 值, t(side)
表示在旁邊顯示t值。
使用如下兩條命令重現輸出上述三個模型的估計結果:
. asdoc reg price mpg rep78, wide replace t(below) // below
. asdoc reg price mpg rep78, wide replace t(side) // beside
效果為:
如果想顯示標準差而不是t值,就把t(below)
和t(side)
替換成se(below)
與se(side)
。
3、表頭相同,資料結構相同的資料輸出
t-tests 結果是表頭相同,資料結構相同的典型代表,t-tests 針對每一個變數都需要執行一次,但每個變數的 t-tests 結果資料結構相同,此時就可以用 rowappend
使它們顯示在一張表上。輸入如下程式碼時,只顯示 rep78 的 t-tests 結果。
. sysuse auto, clear
. asdoc ttest rep78==0, replace title(T-test results : mean==0)
接著依次輸入:
. asdoc ttest price==0, rowappend
. asdoc ttest mpg==0, rowappend
. asdoc ttest turn==0, rowappend
. asdoc ttest weight==0, rowappend
. asdoc ttest length==0, rowappend
每輸入一條命令,表格都會自動增加一行來顯示新增加變數的t-tests
結果,最終結果如下:
4、多維列表輸出
強大的 asdoc
也可以實現列表統計功能,不加規定預設輸出的統計量為頻數,可以通過 contents()
設定想要輸出的統計量名稱。title(###)
對錶格名稱進行設定。輸出一維列表的命令如下:
. sysuse auto, clear
. asdoc table rep78, title(###) c(n mpg mean mpg sd mpg median mpg) replace
表名為 ###,一維列表如下:
- 二維列表在
asdoc table
後加表示分類依據的兩個變數 - 三維列表在
asdoc table
後面加表示分類依據的三個變數 - 四維列表在
asdoc table
後加表示分類依據的三個變數後,需以逗號隔開,再加by()
,()
裡的變量表示第四個分類依據。
試過之後發現,多維列表用 asdoc
輸出會出現單詞被隔開顯示成兩列的問題,不知道是我 bug 了還是命令本身就 bug 了,如果你試過之後也發現,顯示結果有問題,列表顯示暫時還是用傳統的 table
命令吧,Stata連享會 2018 年 4 月 8 號的推文有關於 table
命令的詳細用法,請戳 [Stata:今天你 “table” 了嗎?-簡書]
歡迎提出批評意見,共同探討,共同學習!
本期 Stata 課堂到此結束,觀眾朋友們,下期再會!
asdoc 相關連結
- asdoc 專案主頁
- asdoc 的一些主要用法及注意事項
- asdoc: An easy way of creating publication quality tables from Stata commands
關於我們
- 【Stata 連享會(公眾號:StataChina)】由中山大學連玉君老師團隊創辦,旨在定期與大家分享 Stata 應用的各種經驗和技巧。
- 公眾號推文同步釋出於 CSDN-Stata連享會 、簡書-Stata連享會 和 知乎-連玉君Stata專欄。可以在上述網站中搜索關鍵詞
Stata
或Stata連享會
後關注我們。 - 點選推文底部【閱讀原文】可以檢視推文中的連結並下載相關資料。
- Stata連享會 精彩推文1 || 精彩推文2
聯絡我們
- 歡迎賜稿: 歡迎將您的文章或筆記投稿至
Stata連享會(公眾號: StataChina)
,我們會保留您的署名;錄用稿件達五篇
以上,即可免費獲得 Stata 現場培訓 (初級或高階選其一) 資格。 - 意見和資料: 歡迎您的寶貴意見,您也可以來信索取推文中提及的程式和資料。
- 招募英才: 歡迎加入我們的團隊,一起學習 Stata。合作編輯或撰寫稿件五篇以上,即可免費獲得 Stata 現場培訓 (初級或高階選其一) 資格。
- 聯絡郵件: [email protected]
往期精彩推文
- Stata連享會推文列表1
- Stata連享會推文列表2
- Stata連享會 精彩推文1 || 精彩推文2