Stata

Stataで知っておくと便利なコマンドを不定期に更新します。

labsumm:記述統計量の変数名にラベルをつけて出力

summarizeだと変数にラベルがつかないので、エクセルなどに貼り付けた後に自分で書かないといけないけど、labsummコマンドだとラベルをつけた状態で出力できる。

ssc install labsumm /*コマンドのインストール*/
lab var female "女性"
lab var income "所得"
labsumm female income

fsum:より一般的な記述統計量を出力するコマンド

labsummよりも新しいコマンドで、通常のsummarizeコマンドをさらに拡張したような使い方ができる。変数にラベルをつけて表示することはもちろん、カテゴリカル変数の内訳を(ダミー変数を作ることなく)算出できたりする。詳しくはhelpファイルを参照のこと。

ssc install fsum /*コマンドのインストール*/

lab var sex "性別"
lab def sexlab 1"男性" 2"女性"
lab val sex sexlab

recode sex (1=0)(2=1), gen(female)
lab var female "女性"

lab var income "所得"

fsum female income, stats(mean sd p50) /*平均、標準偏差、中央値を表示*/
fsum female income, uselabel /*変数名はラベルで表示*/
fsum sex income, catvar(sex) /*カテゴリカル変数について内訳の%を算出*/
fsum female income, format(%9.4f) /*小数点第4位まで出力(デフォルトは第2位)*/

vioplot:ヴァイオリン・プロットを描く

箱ひげ図とヒストグラムの特徴を併せ持つヴァイオリン・プロットをStataでも描くことができる。"VIOPLOT"というコマンドを使用する。

参考)「箱ひげ図とバイオリンプロットの印象の違い」

ssc install vioplot /*コマンドのインストール*/

/***試しに箱ひげ図と見た目を比べてみる***/
use "http://www.stata-press.com/data/r13/auto", clear
graph box mpg, title("Box plot") over(foreign) ylabel(10(10)50) /*こっちが箱ひげ図*/
graph save "box.gph", replace
vioplot mpg, title("Violin plot") over(foreign) ylabel(10(10)50) /*こっちがヴァイオリンプロット*/
graph save "vioplot.gph", replace
graph combine "box.gph" "vioplot.gph", scale(1.5) /*並べてみる*/

実際の見た目はこんな感じ。violin plotのほうがぱっとみた時の情報量が多い。デフォルトだと、カーネル密度のなかに箱ひげ図がはいったかたちになる。

coefplot:回帰係数と信頼区間をプロットする

種々の回帰分析から得られた係数とその信頼区間をプロットするコマンド。以下の通り開発者が詳しく解説してくれているので、ここでは最低限のコマンドだけ載せておく。

参考)Jahn, Ben. 2017. "Plotting regression coefficients and other estimates in Stata." University of Bern Social Sciences Working Paper No.1.

Jahn, Ben. "A new command for plotting regression coefficients and other estimates." 12th German Stata Users Group meeting Hamburg, June 13, 2014.

ssc install coefplot

use "http://www.stata-press.com/data/r13/auto", clear

qui reg mpg rep78 foreign /*回帰分析をしたあとに…*/

coefplot /*切片も含めすべての係数および95%信頼区間をプロット*/
coefplot, keep(rep78 foreign) /*指定した独立変数のみプロット*/
coefplot, scheme(s1mono) keep(rep78 foreign) ciopts(recast(rcap)) vert scale(1.2) ylabel(,grid) ytitle("coef.") /*自分が使うときはこんな感じで設定*/

tabulate, gen():ダミー変数を一度に作成する

tabulateコマンドのオプションに、結果を出力したあとにダミー変数を作ってくれるものがあります。generateやrecodeコマンドを使わずにダミー変数を一度に作成することができます。記述統計量を出すときなどに便利です。

tab educ, gen(educd)
/*
もしeducが1, 2, 3, 4, 5の5値の変数であれば,educd1-educd5という5つの変数が作られる.
小さいカテゴリから順に1, 2,…と自動的に名前が付いていくので,間違えないように注意.
*/
tab educ educd1 /*ちゃんと変数ができたかどうか確認してみる*/

set more off:no more --more--

Stataは縦に長い結果を出力したり、時間のかかる計算をしているときに、途中で

--more--

という表示を出します。これが出ると、何らかのキーを押したりクリックしたりしないと計算が進まなかったり、続く結果が出力されなかったりして面倒です。

そこで、Stataを開いたときに

set more off

というコマンドを走らせると、Stataを閉じるまでは

--more--

が出ないようになります。do fileの一番最初とかに書いておくとよいと思います。

また、

set more off, permanently

というコマンドを走らせるとStataの設定自体が書き換わるので、再度開いたときにもその効果が続きます。