J'essaie d'implémenter un algorithme EM pour le modèle d'analyse factorielle suivant;
où est un vecteur aléatoire à p dimensions, a j est un vecteur à q dimensions de variables latentes et B est une matrice pxq de paramètres.
En raison d'autres hypothèses utilisées pour le modèle, je sais que où D est la matrice de covariance de variance des termes d'erreur e j , D = diag ( σ 2 1 , σ 2 2 , ..., σ 2 p ).
Pour l'algorithme EM au travail, je fais des itérations de dôme impliquant une estimation de et D matrices et pendant ces itérations je calculer l'inverse de B B ' + D à chaque itération en utilisant de nouvelles estimations de B et D . Malheureusement au cours des itérations, B B ′ + D perd son caractère définitif positif (mais cela ne devrait pas parce qu'il s'agit d'une matrice de variance-covariance) et cette situation ruine la convergence de l'algorithme. Mes questions sont:
Cette situation montre-t-elle qu'il y a un problème avec mon algorithme, car la probabilité devrait augmenter à chaque étape de l'EM?
Quels sont les moyens pratiques pour rendre une matrice positive définie?
Edit: Je calcule l'inverse en utilisant un lemme d'inversion de matrice qui déclare que:
où le côté droit n'implique que les inverses des matrices .
la source
Réponses:
OK, puisque vous faites FA, je suppose que est de rang de colonne complet q et q < p . Nous avons besoin de quelques détails supplémentaires. Cela peut être un problème numérique; cela peut également être un problème avec vos données.B q q< p
Comment calculez-vous l'inverse? Avez-vous besoin de l'inverse explicitement ou pouvez-vous ré-exprimer le calcul comme la solution d'un système linéaire? (c.-à-d. pour obtenir résoudre A x = b pour x, qui est généralement plus rapide et plus stable)UNE- 1b A x = b
Qu'arrive-t-il à ? Les estimations sont-elles vraiment petites / 0 / négatives? Dans un certain sens, c'est le lien critique, car B B ' est bien sûr déficient en rang et définit une matrice de covariance singulière avant d'ajouter D , vous ne pouvez donc pas l'inverser. L'ajout de la matrice diagonale positive D le rend techniquement complet, mais B B ′ + D pourrait encore être horriblement mal conditionné si D est petit.ré B B′ ré ré B B′+ D ré
Souvent, l'estimation des variances idiosyncratiques (votre , les éléments diagonaux de D ) est proche de zéro ou même négative; ce sont les cas Heywood. Voir par exemple http://www.technion.ac.il/docs/sas/stat/chap26/sect21.htm (tout texte FA devrait également en discuter, c'est un problème très ancien et bien connu). Cela peut résulter de la spécification incorrecte du modèle, des valeurs aberrantes, de la malchance, des éruptions solaires ... le MLE est particulièrement sujet à ce problème, donc si votre algorithme EM est conçu pour obtenir le MLE.σ2je ré
Si votre algorithme EM approche d'un mode avec de telles estimations, il est possible que perde sa définition positive, je pense. Il existe différentes solutions; Personnellement, je préférerais une approche bayésienne, mais même alors, vous devez être prudent avec vos priors (des priors incorrects ou même des priors appropriés avec trop de masse près de 0 peuvent avoir le même problème pour essentiellement la même raison)B B′+ D
la source