5 votos

¿Por qué utilizar Cholesky triangular superior?

Los paquetes de software parecen preferir trabajar con la parte triangular superior de la factorización de Cholesky, véase por ejemplo cholupdate . ¿Por qué? Parece que es más natural representar una matriz de covarianza por su factorización Cholesky triangular inferior. Por ejemplo, $L z$ donde $L$ es la factorización Cholesky triangular inferior y $z$ es un vector de normales estándar, le dará una muestra de una distribución normal multivariante. ¿Cuáles son los usos de la parte triangular superior?

12voto

Mark L. Stone Puntos 2037

Tradicionalmente, y en la mayor parte del "mundo" (literatura), la convención de que el factor de Cholesky es triangular inferior es la más común, es decir, $LL^T$ .

En MATLAB y Octave, entre otros (chol de R), el factor de Cholesky se define como triangular superior, es decir, $R^TR$ . Esta convención fue heredada por MATLAB de LINPACK, porque MATLAB era originalmente un front-end para LINPACK y EISPACK.

LINPACK eligió la entonces (década de 1970) inusual convención de definir el factor de Cholesky como triangular superior, debido a su coherencia con la descomposición QR, en la que R es triangular superior (véase la nota a pie de página en la p. 28 de http://www.netlib.org/utk/people/JackDongarra/PAPERS/Chapter2-LINPACK.pdf ).

El sucesor de LINPACK, LAPACK, no tiene un valor predeterminado para triangular superior frente a triangular inferior, y hace que el usuario especifique qué convención utilizar.

Cualquiera de las dos formas funciona. Tenga en cuenta que $L^T = R$ . Lo importante es utilizar el factor Cholesky de manera acorde con la convención.

0voto

programings Puntos 111

En realidad, es una cuestión de preferencias. También $U'z$ te dará la misma muestra de una normal multivariante. ¿Por qué? Te lo dejo como ejercicio.

Para mí es más natural la factorización Cholesky superior $A = U'U$ ya que estoy más acostumbrado al algoritmo `jik', que toma el nombre del orden de los índices en los bucles anidados.

Recuerde que la función implementa un algoritmo. Así que, si codificaron el algoritmo Cholesky `jik', primero devolverán el factor superior ya que este algoritmo devuelve eso. Si se pide explícitamente un factor inferior, entonces harán un cálculo extra (transponiendo el factor superior).

Si prefiere el más bajo, ¡adelante!

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