6 votos

MCMC: matriz de covarianza no válida debido a un error numérico

Durante el muestreo de Gibbs, necesito muestrear una distribución gaussiana multivariante. Pero rmvnorm devuelven errores a veces porque la matriz de covarianza no es definida y encontré que el determinante de la misma es, digamos, $-10^{-20}$ . Sospecho que esto se debe a los errores numéricos. ¿Qué debo hacer para solucionarlo?

0 votos

¿Por qué la matriz de covarianza no es definida? ¿Cómo se producen los errores? ¿Podría decirnos algo más?

0 votos

@Tim puede ocurrir por ejemplo porque hay algunos términos de la gaussiana con coeficientes despreciables. Podrías reducir la dimensionalidad de la matriz de covarianza para compensar, pero en general eso es mucho más complicado que la solución mucho más simple y efectiva que he detallado en mi respuesta más abajo.

3voto

que que Puntos 1435

Puedes añadir una pequeña épsilon a la diagonal, por ejemplo $1e-8$ o similar, a la matriz de covarianza.

Entonces, digamos que su matriz de covarianza es $\mathbf{\Sigma}$ . Y cuando haces cosas que implican $\text{inv}(\mathbf{\Sigma})$ o similar, no funciona muy bien, porque su $\Sigma$ no es positiva definida. Por lo tanto, puede actualizar su $\mathbf{\Sigma}$ de la siguiente manera:

$$ \mathbf{\Sigma}' = \mathbf{\Sigma} + 10^{-8} \mathbf{I} $$

Ahora su nuevo $\mathbf{\Sigma}'$ es positiva definida, y tus cálculos numéricos funcionarán mucho más fácilmente :-)

He utilizado esta técnica en el pasado, y me funciona muy bien.

1 votos

Esto se marca automáticamente como de baja calidad, probablemente porque es muy corto. Actualmente es más un comentario que una respuesta según nuestros estándares. ¿Puede ampliarlo? También puede convertirlo en un comentario.

0 votos

La respuesta se ha ampliado para explicar cómo se actualiza $\Sigma$ con el 1e-8, y la afirmación de que esto hace que la matriz se convierta en positiva definida.

1 votos

@gung Gracias por tu clara sugerencia para mejorar mi respuesta. Se agradece mucho :-)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X