More Related Content
Similar to Mplusの使い方 中級編 (20)
More from Hiroshi Shimizu (19)
Mplusの使い方 中級編
- 2. 中級編のメニュー
• Mplusを使う上で知っとくといい知識
– 推定方法の違い、標準誤差の推定、欠損値推定
• 高度なモデルの制約
– MODEL Constraint:の利用
• 多母集団同時分析
– 複数のグループを同じモデルで比較
• カテゴリカル・非正規データの分析
– 2値データ、順序データ、様々な分布データ
• 便利なコマンドやオプションの利用
– 新しい変数の作成、データ入力フォーマットの選択など
- 4. 推定法について
• 我々がよく使う推定法
– 最小二乗法(Un-weighted Least Square Method)
• 分散分析、回帰分析などはすべてこの方法
• 構造方程式モデルの推定法
– 最尤法(Maximum Likelihood Method)
• 手元のデータが最も得られやすいようなモデルを推定
• ESTIMATOR = ML;あるいはMLR;
– 重みつき最小二乗法(Weighted Least Square Method)
• 誤差を推定精度で重みづける最小二乗法
• ESTIMATOR = WLS; あるいはWLSMV;
– MCMCによるベイズ推定法
• ベイズの定理に基づいた、モンテカルロ法を使った推定法
• ESTIMATOR = BAYES;
- 5. 標準誤差の推定法
• 普通の推定方法
– MLやWLS
– モデルの仮定に基づいて標準誤差を推定
• 多変量正規性の仮定
• ロバスト標準誤差の推定
– MLRやWLSMV
– データの分布に合わせて標準誤差を補正
• 多少多変量正規性から逸脱しても、妥当な結果
– 推定値そのものは同じ
• Mplusのデフォルトはこちらを使う。オススメはこちら。
– ただ、ロバスト標準誤差の推定では、χ2乗検定がやや複雑にな
る。そのため、今回はMLやWLSで書いている。
- 6. 欠損値の推定法
• 従来の方法
– リストワイズ削除による分析
• 分散分析や回帰分析、因子分析はすべてこれを使う
• 推定結果は多くの場合、バイアスを受ける
• 構造方程式モデルの欠損値推定
– 完全情報最尤法(Full information ML)
• 特に指定はいらない。基本はこれを使ってくれる。
• サブジェクト全体を消すのではなく、欠損していない部分を
すべて活用して推定
• 欠損値のパターンに基づいてサブグループを作る
• サブグループを多母集団分析でモデルを推定
– 実際はEMアルゴリズムで推定する
- 7. 欠損値推定における注意点
• 完全情報最尤法の適用範囲
– 分散を推定している変数のみに適用
• 内生変数はすべて分散が推定される
• 外生変数は共分散を指定するか、分散を推定するように指
定する必要がある
– 分散が推定されている変数すべてが欠損の場合は、
その欠損は推定できない
• あらかじめ欠損値を補完する方法も有効
– DATA IMPUTATIONコマンドを使う
• 欠損値推定はしないよりも、したほうがいい!
- 9. 高度なモデルの制約
• パラメータ名を付けることで、より詳細な制約
が可能になる。
– 例:talk と perのパスの合計が1になるようにする
• ※違うパラメータは、違う行に書く(セミコロンは最後)
MODEL:
idt on talk(p1)
per(p2);
Model constraint:
p1 = 1-p2;
- 10. 新しいパラメータを作成する
• NEWオプションを使う
– 既存のパラメーターから、新しいパラメータを作る
– 例:媒介分析の間接効果をパラメータとして作成
MODEL:
idt on talk(p1)
con(p2);
talk on con(p3);
Model constraint:
NEW(indirect);
indirect = p1 * p3;
- 13. 二つ以上のグループを比較する
• 実験条件と統制条件でモデルが違うかも。
– とはいえ、別々に分析するのは効率が悪い
• サンプルサイズが半分になる
• パスの比較を直接的にできない
• 多母集団分析の利点
– 二つのグループでモデルが等しいかどうかを検討
• 情報量基準で等値モデルと非等値モデルを比較
• 同じであることが提案されたら、倹約的なモデルを提出できる
– 部分的なパスの違いを検討
• 一つのパスだけ異なっている、という仮定もOK
• 全部が違うわけではないので、サンプルサイズを有効利用で
きる
- 14. 多母集団パス解析
• Sample1のデータを使う
– 2つの条件(con = 0, con = 1)でパスモデルが等しいかどう
かをチェック
VARIABLE:
NAMES = ID idt talk per skill con;
USEVARIABLES = idt talk per;
MISSING = .;
GROUPING = con(0 = control 1 = experiment);
– Conが0のとき、1のときに名前を付ける(必須)。
- 15. 非等値モデルのコード
VARIABLE:
NAMES = ID idt talk per skill con;
USEVARIABLES = idt talk per;
MISSING = .;
GROUPING = con(0 = control 1 = experiment);
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = ML;
MODEL:
idt on talk per;
OUTPUT:
SAMPSTAT STDYX MODINDICES(ALL);
- 16. パス等値モデルのコード
VARIABLE:
NAMES = ID idt talk per skill con;
USEVARIABLES = idt talk per;
MISSING = .;
GROUPING = con(0 = control 1 = experiment);
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = ML;
MODEL:
idt on talk per(p1-p2);
OUTPUT:
SAMPSTAT STDYX MODINDICES(ALL);
- 17. モデルの比較 1
• 尤度比検定による比較
– 尤度比検定:χ2乗検定を用いて、等値モデルが非等
値モデルより有意に適合してないなら、非等値モデ
ルを採択する
• ネストされたモデルのみ比較可能
– 非等値モデル χ2(0) = 0
– 等値モデル χ2(2) = 2.518
– 尤度比 = χ2model2 – χ2model1 = 2.518 n.s.
• 「等値モデルが適合していない」は採択されない
- 20. 誤差分散も等値モデルのコード
VARIABLE:
NAMES = ID idt talk per skill con;
USEVARIABLES = idt talk per;
MISSING = .;
GROUPING = con(0 = control 1 = experiment);
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = ML;
MODEL:
idt on talk per(p1-p2);
idt(var1);
OUTPUT:
SAMPSTAT STDYX MODINDICES(ALL);
- 23. 多母集団因子分析
• Sample2のデータを使う。
– 男性と女性で因子構造が異なるかを検討
• 因子構造の等質性の段階
– 配置不変:測定される項目と因子数が等しい
• モデル図が同じ
– 測定不変:因子負荷量が等しい
• 配置不変+因子負荷量を等値
– 弱因子不変:因子の分散と共分散が等しい
• 測定不変+因子の分散・共分散を等値
– 強因子不変:測定項目の誤差分散も等しい
• 弱因子不変+測定誤差分散を等値
• 強因子不変で初めて、標準化係数がすべて等しくなる
- 24. 多母集団因子分析
• Mplusによる多母集団因子分析
– 因子負荷量はデフォルトで等値になる
• 測定不変を仮定している
• 異なるモデルを想定する場合は、グループごとに指定
する
– 基本的な設定は、パス解析と同じ
• ただ因子分析のほうが検討するポイントが多い
– 平均構造をオフにすると推定が簡単になる
• ANALYSISコマンドにMODEL = NOMEANSTRUCTURE;
- 25. 配置不変のコード
MODEL:
F1 by v1-v3*;
F2 by v4-v6*;
F1-F2@1;
[F1-F2@0];
MODEL female:
F1 by v1-v3*;
F2 by v4-v6*;
F1-F2; [F1-F2];
- 28. 強因子不変のコード
MODEL:
F1 by v1-v3*;
F2 by v4-v6*;
F1-F2@1;
[F1-F2@0];
F1 with F2(cov1);
v1-v6(err1-err6);
MODEL female:
[F1-F2];
- 29. 因子構造の比較
• 配置不変
– BIC=2632
• 測定不変
– BIC=2606
• 弱因子不変
– BIC=2600
• 強因子不変
– BIC=2574
→強因子配置不変が有力候補
- 31. これまではAmosでもできる
• ここからが、Mplusの真骨頂
– 変数の尺度や分布に様々な仮定を当てはめられる
• 尺度の水準
– 連続尺度・・・今までのモデル
– 順序尺度・・・順序性があるカテゴリカルデータ
– 名義尺度・・・順序性がないカテゴリカルデータ
• 目的変数の分布(後述)
– 正規分布・・・今までのモデル
– ポワソン分布・・・イベント生起度数の分布
– 打ち切りデータ・・・測定がある段階までしかされてない
- 32. 多変量正規性の仮定と心理尺度
• 一般に、構造方程式モデルは最尤法を使う
– よって、多変量正規性の仮定が必要
– しかし、心理尺度の多くは正規分布にならない
• 臨床尺度は、「極端な人」を識別することを目的とする
• 回答の負担を減らすため、2~4件法もよく使われる
• 天井・床効果もよく起こる
• 連続・正規性から、順序・非正規性へ
– 無理に連続・正規性にこだわる必要はない
• 道具はそろっているし、その使い方も簡単
• 使うことで慣れていき、報告が増え、当たり前になる
- 33. 順序回帰分析
• sample1のデータを使う。
– idtが1項目の尺度で測定されている
• 連続変量とは言い難い。
• 順序カテゴリカルの指定
– VARIABLES:コマンドにCATEGORICALオプション
CATEGORICAL = idt;
• ※順序、名義尺度は値がすべて整数である必要
– ANALYSIS:コマンドで推定法を選択
• WLS:重みつき最小二乗法・・・順序プロビット回帰分析
• ML:最尤法・・・順序ロジスティック回帰分析
- 34. 以下のコードを書く(ロジスティック回帰)
VARIABLE:
NAMES = ID idt talk per skill con;
USEVARIABLES = idt talk per;
MISSING = .;
CATEGORICAL = idt;
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = ML;
MODEL:
idt on talk per;
- 37. ロジスティック回帰の解釈
• 得られる係数は回帰分析とだいぶ違う
– それは、背後にロジット分布を仮定しているから
– 得られる係数はロジット得点
• 解釈はオッズ比のほうがわかりやすい
– 1が基準 → オッズ比が1なら回帰係数=0
– オッズ比の解釈
• 説明変数が1点上がると、一つ上の段階に回答する確率が
何倍増えるか
• オッズ比=1.8・・・説明変数が1点増えると、目的変数が一つ
上の段階を選択する確率が1.8倍多くなる
• オッズ比=0.7・・・一つ上の選択率が0.7倍 = 一つ下の選択
率が1.43倍多い
- 38. ロジスティック回帰の解釈
• あるいは標準化係数を見るという手もある
– 順序尺度の場合は、背後に潜在変数を仮定し、その分
散を使って標準化係数を計算できる
– 得られる係数の解釈は、説明変数が1SD増加した時、
順序尺度の背後に仮定される潜在変数が1SD増加す
る、という感じ
• 基本的には、重回帰分析の標準化係数と同じ解釈でよい
• よくわからなかったら、プロビット回帰を使う
– プロビット回帰分析は標準正規分布を仮定するので、
回帰係数を標準得点として解釈できる
• 結果(説明率)は、ロジスティック回帰分析とほぼ変わらない
- 39. 以下のコードを書く(プロビット回帰)
VARIABLE:
NAMES = ID idt talk per skill con;
USEVARIABLES = idt talk per;
MISSING = .;
CATEGORICAL = idt;
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = WLS;
MODEL:
idt on talk per;
- 41. 順序因子分析
• sample2のデータを使う
– 5件法で測定された尺度で因子分析
• 基本的には5件であれば連続変量とみなしても構わないが、
正規性が満たされない場合は順序尺度としてみなすのも一
つの方法
• 指定方法は同じ
CATEGORICAL = v1-v6;
– 因子分析ではWLS(あるいはWLSMV)がオススメ
• 項目数と水準数が多い場合は、MLではメモリが足りなくな
る場合もある
• また、順序のMLは適合度指標が限定される
- 42. 以下のコードを書く
VARIABLE:
NAMES = ID v1-v6 sex;
USEVARIABLES = v1-v6;
MISSING = .;
CATEGORICAL = v1-v6;
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = WLS;
MODEL:
F1 by v1-v3*;
F2 by v4-v6*;
F1-F2@1;
[F1-F2@0];
- 44. 名義回帰分析
• sample2を使う。
– 順序性がない回帰分析
– 男性と女性(順序性はない)
• sexを名義尺度として分析
• ただし、2値の場合は順序も名義も結果は同じ
• 名義カテゴリカルの指定
– VARIABLES:コマンドにNOMINALオプション
NOMINAL = sex;
– 名義回帰は、ML(あるいはMLR)でしか推定できない
- 45. 以下のコードを書く
VARIABLE:
NAMES = ID v1-v6 sex;
USEVARIABLES = v1-v3 sex;
MISSING = .;
CATEGORICAL = v1-v3;
NOMINAL = sex;
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = ML;
MODEL:
F1 by v1-v3*;
F1@1;
[F1@0];
sex on F1;
- 47. 打ち切りデータの分析
• 測定があるレベルで止まってしまうデータ
– 東大生のセンター試験の得点
• 多くの人が100点近くを取ってしまう
• 本来は学力には差があるが、測定道具の限界であるレベ
ル以上が識別できないような場合
– 心理尺度の天井効果
• これもある意味、打ち切りデータ
– このようなデータを、打ち切られなかった場合にどの
ような得点になるかを推定して分析をする
- 50. 次にidtを無理やり天井効果に
VARIABLE:
NAMES = ID idt talk per skill con;
USEVARIABLES = idt talk per;
MISSING = .;
DEFINE:
if(idt==5) then idt = 4;
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = ML;
MODEL:
idt on talk per;
- 52. 最後に打ち切りデータとして分析
VARIABLE:
NAMES = ID idt talk per skill con;
USEVARIABLES = idt talk per;
MISSING = .;
CENSORED = idt(a);
DEFINE:
if(idt==5) then idt = 4;
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = ML;
MODEL:
idt on talk per;
- 54. カウントデータの分析
• カウントデータ
– 一定時間内の特定のイベントの生起度数
• ポワソン分布に従うことが知られている
– あるいは負の二項分布
• Mplusでのカウントデータの分析
– USEVARIABLESコマンドに
COUNT = idt(p);
– と書く。(p)はポワソン分布のこと
– 負の二項分布は(nb)と書く。
- 57. DEFINEコマンドの利用 P574
• 新しい変数を作成
– 読み込んだ変数を利用して、新しい変数を作る
– 数値変換
• 線形・非線形変換、合成を行う
– 条件式を利用した変数の作成
• IF文を使って、条件に当てはまる場合の得点を与える
– 関数を利用した変数の作成
• Mplusに入っている関数を使って変数を合成・変換
- 58. 数値変換
• 既存の変数で新しい変数を作る
– X1 = v1 + v2;
– X2 = v1 * v2 + v3 / v4 ;
– X3 = LOG(v1);
• 自然対数。常用対数はLOG10()
– X4 = ABS(v2);
• 絶対値
– X5 = SQRT(v3);
• 平方根
- 59. 条件式を使う変換
• IF文を使う
– IF( v1 == 1 AND v2 == 1) THEN group = 1;
– IF( v1 == 2 OR v2 == 1 ) THEN group = 2;
• groupは新しく作った変数名
• “==“は等値を意味しており、”=“は代入を意味している
– 混同しないように注意!
– IF( v1 == 4) THEN group = _MISSING;
• 欠損値に指定
- 60. Mplusの関数を使う
• MEAN:平均値を算出する
– F1 = MEAN(v1-v3);
• SUM:合計値を算出する
– F2 = SUM(v4-v6);
• CUT:カテゴリに分割する
– CUT v1-v3(3);
• V1-v3を、3以下を0、3より大を1にコードする
– CUT v1 v3 v6( 2 4);
• v1とv3とv6を、2以下を0、2より大4以下を1、4より大を2に
コードする
- 61. DO文を使うと便利
• 複数の変数を一度に作成
x1 = SQRT(v1);
x2 = SQRT(v2);
X3 = SQRT(v3);
x4 = SQRT(v4);
x5 = SQRT(v5);
– こんなのも、下の1行で書ける
DO(1, 5) x# = SQRT(v#);
- 63. DEFINE機能の便利な使い方
• いろんな従属変数で分析したい場合
– USEVARIABLESとMODELの両方を変更しないといけない。
– 次のように書いてみる
• Xの変数を変えるだけで、モデルを変更することなくいろんなモデルを試せる
VARIABLE:
NAMES = ID v1-v6;
USEVARIABLES =v2-v5 x;
MISSING = .;
DEFINE:
x = v1;
MODEL:
x on v2-v5;
- 66. 要約データでの入力
• 要約データを用意する
– sample3.datを利用する
– 平均値が入っているので、MEANSも書く
– 人数も別で指定する。NOBSERVATIONS=人数。
DATA:
FILE IS “sample3.dat";
TYPE = MEANS FULLCOV;
NOBSERVATIONS = 200;
- 69. 項目反応理論
• Mplusでも項目反応理論が可能
– 他のソフトウェアと一致させるためには要工夫
• 1因子モデル
• 各項目をCATEGORICALで指定
• 推定法はML(あるいはMLR)で指定
• 因子の分散を1、平均を0に固定
• 推定値を1.702で割る
– PLOTコマンドで、情報量関数や項目特性を出力
• TYPE = PLOT3;
- 70. 以下のコードを書く
VARIABLE:
NAMES = ID v1-v6 sex;
USEVARIABLES = v1-v6;
MISSING = .;
CATEGORICAL = v1-v6;
ANALYSIS:
ESTIMATOR = ML;
MODEL:
F1 by v1-v6*(p1-p6);
F1@1; [F1@0];
MODEL Constraint:
NEW(a1-a6);
DO(1,6)p# = 1.702*a#;
PLOT:
TYPE = PLOT3;
- 74. 多母集団の項目反応理論
• 性別で項目反応理論の推定が等しいか検討
– MLによるカテゴリカル分析は多母集団同時分析では
実行できない
• よって、WLSによる推定を使う
– 閾値母数の指定方法
[v1$1-v1$3];
[v2$1-v2$4];
[v3$1-v3$4];
[v4$1-v4$4];
[v5$1-v5$4];
[v6$1-v6$4];
- 75. 識別力は等値で閾値が異なるモデル
VARIABLE: MODEL female:
NAMES = ID v1-v6 sex; F1 by v1-v6*(p1-p6);
USEVARIABLES = v1-v6; F1@1;
MISSING = .; [F1@0];
CATEGORICAL = v1-v6; [v1$1-v1$3];
GROUPING = sex(1 = male 2 =
female); [v2$1-v2$4];
[v3$1-v3$4];
ANALYSIS: [v4$1-v4$4];
TYPE = GENERAL; [v5$1-v5$4];
ESTIMATOR = WLS; [v6$1-v6$4];
MODEL: PLOT:
F1 by v1-v6*(p1-p6); TYPE = PLOT3;
F1@1;
[F1@0];
- 77. 識別力も閾値も異なるモデル
VARIABLE: %c#2%
NAMES = ID v1-v6 sex; F1 by v1-v6*(q1-q6);
USEVARIABLES = v1-v6; F1@1;
MISSING = .; [F1@0];
CATEGORICAL = v1-v6; [v1$1-v1$3];
CLASS = c(2); [v2$1-v2$4];
KNOWNCLASS = c(sex = 1 sex = 2); [v3$1-v3$4];
[v4$1-v4$4];
ANALYSIS: [v5$1-v5$4];
TYPE = MIXTURE; [v6$1-v6$4];
ESTIMATOR = ML;
ALGORITHM=INTEGRATION; MODEL Constraint:
NEW(a1-a6 b1-b6);
MODEL: DO(1,6)p# = 1.702*a#;
%OVERALL% DO(1,6)q# = 1.702*b#;
F1 by v1-v6*(p1-p6);
F1@1; PLOT:
[F1@0]; TYPE = PLOT3;