次の因子分析モデルにEMアルゴリズムを実装しようとしています。
ここで、はp次元のランダムベクトル、は潜在変数のq次元ベクトル、はパラメーターのpxq行列です。a j B
モデルに使用される他の仮定の結果として、私が知っている分散共分散行列誤差項のある、 = DIAG(、、...、)。D E J D σ 2 1 σ 2 2 σ 2 P
EMアルゴリズムが機能するために、および行列の推定を含むドーム反復を行っています。これらの反復中に、および新しい推定を使用して、各反復で逆を計算しています。残念ながら、反復の過程では正定性を失います(ただし、これは分散共分散行列であるため、そうするべきではありません)。この状況は、アルゴリズムの収束を台無しにします。私の質問は:D B B ′ + D B D B B ′ + D
この状況は、EMのすべてのステップで可能性が増加するはずなので、アルゴリズムに問題があることを示していますか?
行列を正定にする実際的な方法は何ですか?
編集:私は次のように述べている行列反転補題を使用して逆を計算しています:
ここで、右側は行列の逆行列のみを含みます。
1
が正の明確さを「失う」方法をよりよく理解するのに役立つかもしれません。これは、または(またはその両方)のいずれかが非正定になることを意味します。これは、がから直接計算される場合は困難であり、が対角に正方形を持つ対角行列として計算される場合はさらに困難です。B B ' D B B ' B D
—
whuber
@whuber通常はFAであるため、は正定ではありません。しかし、(理論的には)は、がすべてゼロより大きいと仮定して、あるはずです。B B ' B B ' + Dは、σ 2 jで
—
JMS
:これは、この質問に関連しているstats.stackexchange.com/questions/6364/...
—
ギリアド
@JMSありがとうございます。私のコメントはまだ適切だと思います:は不明確になる可能性がありますが、それでも負の固有値を持つべきではありません。、の最小値が反転アルゴリズムの数値誤差に相当する場合に問題が発生します。この場合、1つの解決策は、SVDをに適用し、本当に小さい(または負の)固有値をゼロにしてから、を再計算してを追加することです。σ 2 I B B ' B B ' D
—
whuber