elsur.jpn.org > Mplus ユーザーズ・ガイド 勝手に和訳 >

14.1 モデル推定


モデル推定には,モデルの指定という問題のほかに重要な問題がいくつかある。 本章では以下の一般的考慮事項について述べる。

  1. パラメータのデフォルト指定
  2. パラメータのデフォルト初期値
  3. 混合モデルにおける初期値のユーザ指定
  4. 混合モデルにおける複数の解
  5. 収束の問題
  6. モデルの同定
  7. 数値積分

1. パラメータのデフォルト指定

モデルの指定を単純にするため,デフォルトの設定が用意されている。 ユーザが与えなければならない情報を最小限にとどめるために, パラメータはデフォルトで自由だったり,等値だったり,0に固定されていたりする。 これらのデフォルトは上書きできる。デフォルトの設定は広範囲にわたっているので, 分析結果を検討し, 自分が推定しているモデルが意図しているモデルであることを確かめることが 重要である。

アウトプットには, すべての自由なパラメータについての推定値が含まれている。そのなかには, デフォルトで自由なパラメータもあれば,モデルの指定によって自由にされた パラメータもある。モデル指定で固定されたパラメータも結果と一緒に示されている。デフォルトで固定されているパラメータは結果に含まれない。 なお,OUTPUTコマンドのTECH1オプションで,それぞれのパラメータが 自由だったのか,それとも固定されていたのかを知ることができる。

(以下,パラメータのデフォルト値についての記述が続きます。 Excelファイル にまとめました。)

2.パラメータのデフォルト初期値

あるパラメータがMODELコマンドのなかで言及されており,そのデフォルト値が自由でない場合,その初期値は自由である。ただし,以下の例外がある。

一般的なデフォルト初期値

(Excelファイル にまとめました。)

分析によって決まる初期値については,OUTPUTコマンドのTECH1コマンドで 知ることができる。

成長モデルのデフォルト初期値

MODELコマンドで, | シンボルをつかって成長モデルを指定したとき, 成長因子の平均と分散の初期値は以下のように決定される。

混合モデルのランダム初期値

TYPE=MIXTUREが指定された場合,モデルの全てのパラメータ(分散・共分散を除く)について, まずデフォルト初期値が自動的に生成され,それを用いて 摂動された(perturbed) 初期値セットがランダムにつくられる。

3.混合モデルにおける初期値のユーザ指定

TYPE=MIXTUREでランダム初期値を使わずに初期値を得る方法についての 示唆を述べる。ユーザ指定の初期値を用い,START=0とすれば, 計算時間を短くすることができる。 これは潜在クラスとその指標との間の関係について実質的な知識を持っている場合に 有用な方法である。たとえば,基準となるようなクラスがあり,そこに属する人は 潜在クラス指標で表現されているいかなる行動に対しても関与する確率が非常に低い ということがよくわかっている,というような場合である。 ユーザ指定初期値は,確認的な潜在クラス分析や確認的な成長混合モデリングに おいても用いることができる。

潜在クラス指標

潜在クラスのカテゴリカル指標の閾値の初期値は,ロジット尺度で指定する。 順序指標の場合,各変数の閾値の初期値は低い値から高い値に並んでいなければ ならない。例外は,ある変数の隣接する閾値に等値制約が置かれている 場合で,この場合は等しい初期値を用いる。 クラスによって異なる初期値を用いることを薦める。

以下に示すのは,確率とロジット閾値との対応である。これは初期値の選択に 役立つだろう。ロジット閾値の符号はロジット切片値の符号と逆になることに注意。 ここでいう確率とは,その閾値を越える確率である。閾値が高ければ 確率は低くなる。

非常に低確率  : ロジット閾値 +3
低確率        : ロジット閾値 +1
高確率        : ロジット閾値 -1
非常に高確率  : ロジット閾値 -3

成長混合モデル

多くの分析では,デフォルトの初期値とランダム初期値をつかっていれば 十分である。初期値が必要になった場合は,以下の2つの戦略を薦める。

  1. まず成長モデルを,1クラスモデル,ないし通常の成長モデルとして 推定し,そこで成長ファクタ(切片と傾き)の平均とSDを得る。 それらを用いて初期値を計算する。たとえば,2クラスモデルの 初期値は,平均+SDと平均-SDにすればよい。
  2. 成長ファクタの分散と共分散を0に固定した多クラスモデルを推定する。 そこでえた成長ファクタの平均を初期値にし,今度は 分散と共分散を自由にしたモデルを推定する。

4.混合モデルにおける複数の解

混合モデルでは,しばしば尤度の極大値が複数存在する。 したがって,大域的な最大値を見つけるために 複数の初期値を用いることが重要である。 少なくとも2つの最終解(できればもっとたくさんの最終解)において, 最大対数尤度が一致していないようであれば, 局所解に到達している可能性があるので,きちんと検討しないと 解釈できない。

以下に示すのは,10個の最終解の例である。対数尤度が 同じなので,良い解だとわかる。

Loglikelihood Seed        Initial Stage Starts
-836.899      902278      21
-836.899      366706      29
-836.899      903420      5
-836.899      unperturbed 0
-836.899      27071       15
-836.899      967237      48
-836.899      462953      7
-836.899      749453      33
-836.899      637345      19
-836.899      392418      28

以下の例では,対数尤度が再現されていないので, おそらく局所解だということがわかる。

Loglikelihood Seed         Initial Stage Starts
-835.247      902278       21
-837.132      366706       29
-840.786      903420       5
-840.786      unperturbed  0
-840.786      27071        15
-853.684      967237       48
-867.123      462953       7
-890.442      749453       33
-905.512      637345       19
-956.774      392418       28

対数尤度-840.786が3回再現されているものの, それが最大ではないので,これは局所解である。信頼できる解を得るためには, 最大尤度が再現されなければならない。

いくつかの最終段階の最適化が類似した対数尤度を示しており, それらが最大対数尤度に近い,という場合には, ANALYSISコマンドのOPTSEEDオプションを使い,それらの解について調べなければ ならない。もしパラメータ推定値が解によって異なっていたら, データに対してモデルがうまく定義できていないことがわかる。 その原因として,抽出しているクラス数が多すぎるということが考えられる。 いっぽう,解のあいだでパラメータの値がよく似ていたら, 最大対数尤度を持つ解を選べば良い。

複数解の検討にあたっては, ANALSYSコマンドのSTARTオプションとSTITERATIONSオプションを用い, 検討を次第に完全なものにしていくことを薦める。 次の順番がよいだろう。

  1. まず最初に
    STARTS = 100 10; 
    
    とする。 最初の段階のランダム初期値のセット数をデフォルトの10から100に増やし, 最終段階の最適化の数をデフォルトの2から10に増やしている。 なお,最初の段階の反復数はデフォルトの10のままである。
  2. 次に,
    STARTS = 100 10; 
    STITERATIONS = 20; 
    

    とする。最初の段階の反復数をデフォルトの10から20に増やしている。

  3. 最後に,最初の段階の初期値のランダムセットの数をさらに500に増やすと 良い。反復数は増やしても増やさなくても良い。たとえば,
    STARTS = 500 10; 
    

5.収束の問題

モデルとデータの組み合わせによっては,収束の問題が生じることがある。 この問題が生じたことは,出力のなかのメッセージでわかる。 収束の問題は,モデルのなかの変数が 全然ちがう尺度で測定されていたり,初期値が十分でなかったり, データに対して不適切なモデルを推定していたりすると生じやすい。 さらに,収束の問題が生じやすいモデルというものがある。 たとえば,混合モデル,2レベルモデル,分散の小さなランダム効果を 含んでいるモデルである。

一般的な問題

非収束には2つのタイプがある。

どちらのタイプかを決めるためには 最適化履歴を調べる。最適化履歴は, OUTPUTコマンドのTECH5オプションないし(かつ)TECH8オプションで 得ることができる。

初期値が不十分な正で生じる収束の問題を回避するための 便利な方法は,モデルの各部分を別々に推定し,適切な初期値を 得たうえで,完全なモデルを組み立てることである。

ランダム効果モデルに特有の問題

ランダム効果モデルでは,ランダム効果変数の分散が小さいとき,収束の問題が 生じる。この問題は, ランダム効果変数がMODELコマンドのONオプションやATオプションと|シンボルとで 定義されているモデルや,結果が打ち切り変数・カテゴリカル変数・カウント変数 である成長モデルにおいて生じやすい。収束の問題が生じた場合, エラーメッセージのなかの情報で,どの変数が問題なのかがわかる。 さらに,出力からランダム効果変数の分散の大きさをみることができる。 ランダム効果変数の分散が0に近い場合,

混合モデルに特有な問題

混合モデルでは,収束は対数尤度の導関数だけでなく, 対数尤度の絶対・相対変化とクラス頻度の変化によっても 決定される。対数尤度とクラス頻度の変化についての情報は TECH8で得ることができる。

仮に混合モデルが収束しないとしても,局所解は手に入ってしまう。 したがって,複数の初期値を用い,最良解が得られていることを保障することが 重要である。最良界とは最大の対数尤度を持つ解である。 前述したように,ANALYSISコマンドのSTARTSオプションによって, 複数のランダム初期値セットを自動的に生成し,最良の解を見つけることができる。

6.モデルの同定

プログラムで指定できるすべての解が同定可能な解ではない。 同定不能なモデルとは,すべてのパラメータにおいて意味のある推定値を 持つことができないモデルである。同定不能なモデルでは, フィッシャー情報行列が逆行列を持たないため,標準誤差を 計算できない。

モデルが同定不能である場合, 出力にエラーメッセージが表示される。 多くの場合,エラーメッセージは同定不能の原因となっている パラメータの番号を示してくれる。 その番号が当てはまるパラメータを探すには, OUTPUTコマンドのTECH1オプションを用いる。 モデルを同定するためには,モデルのパラメータに制約を付け加える 必要があることが多い。

混合モデルのモデル同定は複雑な問題である。 理論上は同定可能なモデルであっても,ある種の標本やある種の初期値では, 経験的には非同定になってしまうことがある。 この状況では,初期値を変えるかモデルを変えることを薦める。

すべてのモデルにおいて, モデルの同定は修正指標と導関数によって決定できる。

導関数はOUTPUTコマンドのTECH2オプションで,修正指標はOUTPUTコマンドの MODINDICESオプションで得ることができる。

7.数値積分

潜在変数の事後分布が閉形式でない場合は,最尤推定のために数値積分が 必要になる。

(ここの説明はExcelファイル にまとめました。)

事後分布が閉形式でないとき,潜在変数の密度と, 潜在変数のもとでの結果の条件つき分布との積を積分する必要がある。 数値積分はこの積分を,潜在変数の値を表す積分点(求積ノード)のセットを 通じた重みづけ和によって近似する。

Mplusでは以下の3種類の数値積分法を利用できる。

たいていの場合,この3つの方法がすべて利用できる。媒介変数が 欠損を含んでいる場合は,Monte Carlo法だけが利用できる。

分析によっては,十分な数値的精度を得るために積分点の数を増やす必要がある。 こうした場合は,rectangular法とGauss-Hermite法では次元あたり 20から50,Monte Carlo法では合計1000とすることを薦める。 上記の数よりも多くすることは薦められない。 精度は向上しにくく,計算はより遅くなり,またround offエラーが増えるせいで 数値的な不安定性が生じるからである。

デフォルトでは適応的数値積分が用いられる。適応的数値積分は, 非適応的数値積分よりも優れていると考えられている。 ほとんどの分析では,適応的数値積分であれば次元あたり15の積分点があれば 十分だが,非適応的数値積分では次元あたり30から50の積分点が必要であろう。 しかし,適応的数値積分が数値的不安定性をもたらす分析もある。 たとえば,外れ値を含む分析,潜在変数の分布が非正規である分析, クラスタサイズが小さい分析がこれにあたる。こうした分析では, 非適応的数値積分を用いることを薦める。ANALYSISコマンドの ADAPTIVEオプションで指定できる。

数値積分は計算的に重く,時間が掛かる。なぜなら, 関数の値を計算するときも,導関数の値を計算するときも, 反復ごとに積分を行わなければならないからである。 計算上の負荷は,積分点の数の関数として増え, オブザベーション数の関数として線形に増え, 積分の次元数の関数として指数的に増える。 また,rectangular法とGauss-Hermite法では, 積分の次元の関数として(つまり,数値積分が必要な潜在変数,ランダム傾き, 潜在変数交互作用の数の関数として) 指数的に増える。

以下に示すのは,デフォルトの積分点の数を用いた場合の,積分の次元数と 計算上の負荷の関係である。

1次元      軽い
2次元      中程度
3-4次元    重い
5次元以上  とても重い

積分の次元がいくつかある場合には,Monte Carlo法が有利である。 しかし,Monte Carlo法による結果は,対数尤度の数値的精度が低い。 そのため,尤度の差に基づく尤度比カイ二乗検定をつかってネストされたモデルの 検定を行うと,その結果も不正確になる。

積分の次元がいくつかある場合, 積分点の数をデフォルトの15から10ないし7へと減らすことによって, 計算上の負荷を減らしつつ十分に正確な結果を得ることができる 場合がある。 探索的因子分析では,積分点は次元あたり3程度で十分である。

数値積分の実用的側面

数値積分の使用にあたっては以下の点を薦める。


Last Update: 2010/10/27