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 .