Ich versuche, einen EM-Algorithmus für das folgende Faktoranalysemodell zu implementieren.
wobei ein p-dimensionaler Zufallsvektor ist, a j ein q-dimensionaler Vektor latenter Variablen ist und B eine pxq-Matrix von Parametern ist.
Aufgrund anderer für das Modell verwendeter Annahmen weiß ich, dass wobei D die Varianz-Kovarianzmatrix der Fehlerterme e j , D = diag ( σ 2 1 , σ 2 ist 2 , ..., σ 2 p ).
Für den EM - Algorithmus zu arbeiten, mache ich Kuppel Iterationen die Schätzung von und D Matrizen und während dieser Iterationen mir Berechnung die Inverse von B B ' + D bei jeder Iteration neue Schätzungen der Verwendung von B und D . Leider verliert B B ' + D im Verlauf der Iterationen seine positive Bestimmtheit (dies sollte jedoch nicht der Fall sein, da es sich um eine Varianz-Kovarianz-Matrix handelt), und diese Situation ruiniert die Konvergenz des Algorithmus. Meine Fragen sind:
Zeigt diese Situation, dass mit meinem Algorithmus etwas nicht stimmt, da die Wahrscheinlichkeit mit jedem Schritt der EM zunehmen sollte?
Was sind die praktischen Möglichkeiten, um eine Matrix positiv zu definieren?
Bearbeiten: Ich berechne die Inverse mit einem Matrix-Inversions-Lemma, das besagt:
wobei die rechte Seite nur die Inversen von Matrizen beinhaltet.
quelle
Antworten:
quelle