Estoy tratando de implementar un algoritmo EM para el siguiente modelo de análisis factorial;
donde es un vector aleatorio p-dimensional, a j es un vector q-dimensional de variables latentes y B es una matriz de parámetros pxq.
Como resultado de otros supuestos utilizados para el modelo, sé que donde D es la matriz de covarianza de varianza de los términos de error e j , D = diag ( σ 2 1 , σ 2 2 , ..., σ 2 p ).
Para el algoritmo EM para el trabajo, que estoy haciendo iteraciones de cúpula que involucran estimación de y D matrices y durante estas iteraciones Estoy calcular la inversa de B B ' + D en cada iteración utilizando nuevas estimaciones de B y D . Desafortunadamente, durante el curso de las iteraciones, B B ′ + D pierde su definición positiva (pero no debería hacerlo porque es una matriz de varianza-covarianza) y esta situación arruina la convergencia del algoritmo. Mis preguntas son:
¿Esta situación muestra que hay algo mal con mi algoritmo ya que la probabilidad debería aumentar en cada paso de EM?
¿Cuáles son las formas prácticas de hacer una matriz positiva definida?
Editar: estoy calculando el inverso usando un lema de inversión de matriz que establece que:
donde el lado derecho involucra solo las inversas de matrices.