[R]{lavaan} lavaan WARNING: model has NOT converged! という警告の原因と対策

lavaanでモデル フィッティングを実行すると、lavaan WARNING: model has NOT converged!という警告メッセージがでることがある。

これは解が識別できないこと(解の識別不能)を意味する。解が識別不能になるのは、求めようとする母数(自由母数)の数より、使える方程式の数が少ない場合である(2未知数の連立方程式に対して、実質的に方程式が1つしかないと、解が不定になるのと同じこと)。

解が識別不能な場合、求める未知数の数を減らせば方程式は解けるようになる。どうやって求める未知数の数を減らすかというと、一部の母数に固定した数値を与えたり、ある母数とある母数は等しいというような制約(等値制約)を課したりすることによってである。

要するにモデルに何らかの制約の追加が必要となるわけだが、どんな制約を加えてもいいわけではない。分析の目的やデータの性質を損なわないような制約を加える必要がある。

一般的によく用いられる制約には以下のようなものがある。

  • 独立変数である潜在変数の分散を1に固定する(これによりそのスケールを定める)。
  • 従属変数である潜在変数から観測変数へのパス係数の1つを1に固定する。これによりそのスケールを定める。
  • 誤差変数はお互いに独立であるとして、誤差変動間の共変動を0に固定する。
  • 誤差変数からのパス係数を1に固定する。
  • 信頼性係数を既知とする。
  • パス係数が等しい、あるいは誤差変動の分散が等しいなどの既知の知見をもとに制約を課す。

これらの制約の追加で解が定まる場合が多いが、定まらない場合もある。その場合は、パス図自体の修正が必要となる。

コメント