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