23 votos

Matriz de correlación a partir de la matriz de covarianza

Esto es para un proyecto que he estado tratando de encontrar algo de información para la matriz de covarianza y la matriz de correlación.

Entiendo que para un $n \times n$ matriz $A, AA^T$ me dará la matriz de covarianza.

¿Existe alguna relación entre la matriz de covarianza y la matriz de correlación?

Lo siento, tal vez no fui claro.

Quería utilizar la descomposición de Cholesky para generar variables correlacionadas a partir de variables aleatorias. Sé cómo hacerlo utilizando matlab. Y entiendo cómo funciona para 2 variables. Pero cuando escalo la matriz a $n \times n$ en lugar de $2 \times 2$ No estoy seguro de cómo funcionará.

Agradecería que alguien me diera más pistas sobre las matemáticas.

31voto

Desde el punto de vista del álgebra matricial, la respuesta es bastante sencilla. Supongamos que su matriz de covarianza es $\Sigma$ y que

$$ D =\sqrt{ \text{diag}\left( {\Sigma} \right)} $$

entonces la matriz de correlación viene dada por $$ \varrho = D^{-1}\Sigma D^{-1} $$

Edición: corregido para incluir la raíz cuadrada

9voto

user27973 Puntos 41

Supongamos que tenemos un vector aleatorio $\mathbf{g}$ entonces la matriz de covarianza de $\mathbf{g}$ se define como $$\mathbf{K}=\mathbf{E}\{(\mathbf{g}-\bar{\mathbf{g}})(\mathbf{g}-\bar{\mathbf{g}})^{\dagger}\}$$ donde $\mathbf{E}$ denota expectativa, $\bar{\mathbf{g}}$ denota la media de $\mathbf{g}$ , $\dagger$ significa transposición para vector aleatorio real, y transposición conjugada para vector aleatorio complejo.

La matriz de correlaciones es $$\mathbf{R}=\mathbf{E}\{\mathbf{g}\mathbf{g}^{\dagger}\}$$

Así que tenemos $$\mathbf{K}=\mathbf{R}-\bar{\mathbf{g}}\bar{\mathbf{g}}^{\dagger}$$

Para vectores aleatorios de media cero $\mathbf{K}=\mathbf{R}$ .

EDIT: para otra definición donde la matriz de correlación es la matriz de covarianza normalizada, la relación es $$\mathbf{R}_{ij}=\frac{\mathbf{K}_{ij}}{\sigma_i \sigma_j}$$ donde $\sigma_i, \sigma_j$ son la desviación típica de $\mathbf{g}_i$ y $\mathbf{g}_j$ respectivamente.

3voto

Siguiendo la respuesta de Brian B., supongamos que su matriz de covarianza es Σ y que

D = sqrt(diag(Σ)), un vector de raíces cuadradas de la diagonal de Σ.

entonces la matriz de correlación viene dada por ϱ = D-inverso Σ D-inverso-primo

D, aquí, es un p x 1 vector (de la diagonal de Σ) y su inversa es la inversa elemento a elemento de D -- es decir, vector de {uno sobre elemento} para cada elemento.

2voto

Tracker1 Puntos 279

Matlab dispone de una función cov2corr para extraer la matriz de correlaciones de la matriz de covarianzas. Si ya utilizas Matlab, no necesitas reinventar la rueda. La implementación de la función es similar a la respuesta de chaohuang más arriba (con alguna comprobación de errores).

0voto

zigarrre Puntos 6

Sí, existe una relación de uno a uno entre dos matrices. Por favor, compruébalo:

http://www.riskglossary.com/link/correlation.htm

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