¿Cómo hacer una matriz positiva definida?

10

Estoy tratando de implementar un algoritmo EM para el siguiente modelo de análisis factorial;

Wj=μ+Baj+ejforj=1,,n

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.WjajB

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 ).WjN(μ,BB+D)DejDσ12σ22σp2

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:BDBB+DBDBB+D

  1. ¿Esta situación muestra que hay algo mal con mi algoritmo ya que la probabilidad debería aumentar en cada paso de EM?

  2. ¿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:

(BB+D)1=D1D1B(Iq+BD1B)1BD1

donde el lado derecho involucra solo las inversas de matrices.q×q

Andy Amos
fuente
1
Podría ayudar a comprender mejor cómo "pierde" su definición positiva. Esto implica que B B ' o D (o ambos) se están convirtiendo en definitivos no positivos. ¡Eso es difícil de hacer cuando B B ' se calcula directamente desde B y aún más difícil cuando D se calcula como una matriz diagonal con cuadrados en su diagonal! BB+DBBDBBBD
whuber
@whuber Normalmente en FA , por lo que B B no es nunca definitivo positivo. Pero (en teoría) B B + D debería ser, suponiendo que las σ 2 j 's sean mayores que cero. q<pBBBB+Dσj2
JMS
Esto está relacionado con esta pregunta: stats.stackexchange.com/questions/6364/…
Gilead
1
@JMS Gracias. Creo que mi comentario sigue siendo pertinente: puede ser indefinido, pero aún así no debe tener ningún valor propio negativo. Sin embargo, surgirán problemas cuando el más pequeño de σ 2 i sea ​​comparable al error numérico en el algoritmo de inversión. Si este es el caso, una solución es aplicar a SVD B B ' y de cero a cabo las muy pequeñas (o negativas) valores propios, a continuación, volver a calcular B B ' y añadir D . BBσi2BBBBD
whuber
1
Tiene que ser elementos pequeños en ; I q + B D - 1 B debería estar bien acondicionado de lo contrario ya que q < pDIq+BD1Bq<p
JMS

Respuestas:

3

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.Bqq<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)A1bAx=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.DBBDDBB+DD

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.σi2D

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

JMS
fuente
Permítanme decir que en la parte principal de los algoritmos, nunca querrán invertir realmente una matriz. Sin embargo, es posible que necesite al final para obtener las estimaciones estándar. Ver esta publicación de blog johndcook.com/blog/2010/01/19/dont-invert-that-matrix
Samsdram
Los valores de la matriz D se hacen cada vez más pequeños a medida que aumenta el número de iteraciones. Tal vez este sea el problema como usted señaló.
Andy Amos
1
@Andy Amos: Apostaría dinero por ello. Como @whuber señala que es casi imposible que tenga valores propios negativos si lo está calculando directamente, y los ceros (por ser deficientes en el rango) deben ser atendidos agregando D desde su diagonal positiva, a menos que algunos de esos Los elementos son realmente pequeños. Intente generar algunos datos de un modelo donde σ 2 i es bastante grande y q B 2 i qσ 2 i . Cuantos más datos, mejor para que las estimaciones sean precisas y estables. Eso al menos le dirá si hay un problema en su implementación. BBDσi2qBiq2σi2
JMS