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.
fuente
Respuestas:
OK, ya que estás haciendo FA, supongo que es de rango de columna completo q y q < p . Sin embargo, necesitamos algunos detalles más. Esto puede ser un problema numérico; También puede ser un problema con sus datos.B q q<p
¿Cómo estás calculando el inverso? ¿Necesita el inverso explícitamente o puede volver a expresar el cálculo como la solución a un sistema lineal? (es decir, para obtener resuelva A x = b para x, que generalmente es más rápido y más estable)A−1b Ax=b
¿Qué le está pasando a ? ¿Son las estimaciones realmente pequeñas / 0 / negativas? En cierto sentido, es el enlace crítico, porque B B ' es, por supuesto, deficiente en el rango y define una matriz de covarianza singular antes de agregar D , por lo que no puede invertirla. Agregar la matriz diagonal positiva D técnicamente lo hace rango completo, pero B B ′ + D aún podría estar terriblemente mal condicionado si D es pequeño.D BB′ D D BB′+D D
A menudo, la estimación de las varianzas idiosincrásicas (su , los elementos diagonales de D ) es cercana a cero o incluso negativa; Estos se llaman casos Heywood. Ver, por ejemplo, http://www.technion.ac.il/docs/sas/stat/chap26/sect21.htm (cualquier texto de FA también debe analizar esto, es un problema muy antiguo y bien conocido). Esto puede ser el resultado de una especificación errónea del modelo, valores atípicos, mala suerte, erupciones solares ... el MLE es particularmente propenso a este problema, por lo que si su algoritmo EM está diseñado para que el MLE tenga cuidado.σ2i D
Si su algoritmo EM se acerca a un modo con tales estimaciones, es posible que pierda su definición positiva, creo. Hay varias soluciones; Personalmente, preferiría un enfoque bayesiano, pero incluso entonces debe tener cuidado con sus antecedentes (los antecedentes impropios o incluso los anteriores apropiados con demasiada masa cerca de 0 pueden tener el mismo problema básicamente por la misma razón)BB′+D
fuente