Stata

リストワイズのようなもの

foreach x in XXX {

drop if `x' ==.

}

[BASIC]

set cformat %5.3f

Macの場合, fn + 上 or 下 で過去のコマンド

Stata 14で文字化けの場合

clear

unicode encoding set "Shift-JIS"

unicode translate "DATANAME.dta"

変数名に「.」(ピリオド)がある場合、stataでのunicode translateがうまく行かず、

st_vlload(): 3300 argument out of range

といったエラーがでるので、事前に「.」を「_」に変換したほうがよい。

メモリの設定

set memory 500m

set maxvar 6000

カレントディレクトリの変更

cd /Users/ShoFujihara/folder

データの読み込み

use name.dta, clear

データの保存

save name.dta, replace

結果をとぎらせることなく表示

set more off, permanently

STATAで変数の内容をみる

codebook var

tabulate var, miss

変数の並べ替え

order var1 var2 var3

変数の並べ替え(多い場合はこちらが便利) a はafter,bはbefore

order var1, b(var2)

order var1, a(var2)

STATAからLEMに流す

keep if var1 ~=. & var2 ~=.

keep var1 var2

outfile using D:\LEM\file.dat, nolabel replace

データの合併

use /Users/ShoFujihara/Data/base.dta, clear

append using /Users/ShoFujihara/Data/add1.dta

append using /Users/ShoFujihara/Data/add2.dta

append using /Users/ShoFujihara/Data/add3.dta

save append using /Users/ShoFujihara/Data/merge.dta, replace

ある変数ごとの記述統計を算出

tabstat heduy, by(byear1) statistics(n mean sd) f(%9.3f)

値と値ラベルを同時に出力する

numlabel, add

回帰分析の出力をテキストで保存

outreg using "result.txt", replace

パーセンタイル(5分位)

xtile newvar = var, n(5)

パーセンタイル(100分位)

xtile newvar = var, n(100)

StataからMplus用のデータを作成

stata2mplus egrd jgrd egrdm jgrdm httl hjpn hmat hsci hsoc heng using FILENAME, missing(999)

計算

dis 2*3

SPSSからSTATAへの保存.

どうも「~」がはいっていると保存がうまくいかないので,変数ビューで置換で「~」を「-」に変更して保存.

Variables については「Shift」や「Ctrl」で複数選択可能.

文字列を数値に変換

encode country, gen(countryn)

欠損値の要約

misstable summarize vars

リストワイズ

foreach var in var1 var2 var3 {

drop if `var'==.

}

[CROSS TABULATION]

クロス表は以下のプログラム。missで欠損値を含めたクロスも作れるのが便利.

tabulate var1 var2

tabulate var1 var2, miss

tabulate var1 var2, all

としてやればいろいろな統計量が出力される.

ただし,調整残差は出力されないので

findit tab_chi

でパッケージを探して,インストールし

tabchi var1 var2,a

としてやる必要がある.

ダミー変数を作成する場合次のコマンドが便利.

tabulate var, generate(var)

[REGRESSION TABLE]

eststo clear

qui eststo:

qui eststo:

qui eststo:

esttab, label b(3) nodepvar nonumber nogaps nolabel wide not stats(N N_g r2_p) starlevels(+ 0.10 * 0.05 ** 0.01) mtitle(Model1 Model2 Model3)

[LONG DATA]

マルチレベルモデルを用いたときの記述統計

xtsum

xttab

[GRAPH]

棒グラフを作成する(割合)

graph bar (mean) edu1 edu2 edu3, by(sex)

ここでedu1 edu2 edu3は学歴のダミー変数.

graph bar (mean) edud1 edud2 edud3, over(coh8)

by だと分割,overだと1枚に.

例えば男女ごとにコーホート別の出身階級と教育達成の関連をみた図を出力する.

graph hbar (mean) edu3c1 edu3c2 edu3c3 if coh4 > 1 , over(egpfi7) by(women coh4) stack percent ///

legend(cols(3) label(1 "Junior high") label(2 "High school") label(3 "Post-secondary")) scheme(s2mono)

[SEM]

sem (L-> x1 x2 x3),stand method(mlmv)

estat gof,stats(all)

estat ic

estat summarize

estat mindices

estat eqgof

alpha x1-x3, item