Stataでは潜在クラス分析の応答確率の棒グラフが描ける。棒グラフというのは今まで見たことがなかった。不要な気もしないでもないが、説明するときにわかりやすいのかもしれない。
使用するのはmargins
とmarginsplot
である。説明によると条件付き応答確率の関数であるestat lcmean
はmargins
のラッパーらしい。ちなみにestat lcmean
は前のエントリで応答確率を計算するときに使ったコマンドである。
前のエントリで計算はしているが、一応今回も同じ潜在クラス分析のモデルを作っておこう。
. use http://www.stata-press.com/data/r16/gsem_lca1.dta, clear . gsem (accident play insurance stock <- ), logit lclass(C 2)
前回のフィッテング指標の結果2クラスの方が良かったので、今回は2クラスのモデルで計算してある。プロットは下記のように記述する。
. margins, predict(outcome(accident) class(1)) /// predict(outcome(play) class(1)) /// predict(outcome(insurance) class(1)) /// predict(outcome(stock) class(1)) . marginsplot, recast(bar) title("Class 1") xtitle("") /// xlabel(1 "accident" 2 "play" 3 "insurance" 4 "stock", angle(45)) /// ytitle("Predicted mean") ylabel(0(0.1)1) name(class1) . margins, predict(outcome(accident) class(2)) /// predict(outcome(play) class(2)) /// predict(outcome(insurance) class(2)) /// predict(outcome(stock) class(2)) . marginsplot, recast(bar) title("Class 2") xtitle("") /// xlabel(1 "accident" 2 "play" 3 "insurance" 4 "stock", angle(45)) /// ytitle("") ylabel(0(0.1)1) name(class2) .graph combine class1 class2, cols(2)
書いてあることは難しくないが、内容のわりにやたらと長い。
2クラスなのでこの程度だが、4クラスだとこの倍の量になる。とても洗練されているとは言い難い。estat lcmean
がmargins
のラッパーであれば、プロットもオプションとして用意して、margins
から記述しなくてもいいようにできなかったのだろうか。
少し注意が必要そうなのは、ylabelの目盛りを調節だ。この図を出すまでに何回か調節をする必要があった。