10 votos

Levantando una de varianza-covarianza de la matriz a una negativa de la mitad de la potencia

Quiero aplicar la siguiente fórmula donde: $C$ es de varianza-covarianza de la matriz de variables x, yy z:

$$C = \begin{bmatrix}cov(x,x)&cov(x,y)&cov(x,z)\\cov(y,x)&cov(y,y)&cov(y,z)\\cov(z,x)&cov(z,y)&cov(z,z)\end{bmatrix}$$

$$S = (C)^{-1/2}$$

Entiendo la diagonal y operaciones inversas, pero estoy clara en el sentido de plantear una varianza de la matriz de covarianza de un negativo de la mitad de la potencia. Por lo tanto, mis preguntas

  1. ¿Qué significa para elevar una matriz de covarianza de un negativo de la mitad de la potencia?
  2. ¿Qué ideas generales de álgebra lineal hace esto suponga?
  3. Es allí cualquier agradable fórmula para elevar una matriz de covarianza de un negativo de la mitad de la potencia?

9voto

usεr11852 Puntos 5514

Lo que la operación $C^{-\frac{1}{2}}$ se refiere a que es la descorrelación de los subyacentes de la muestra de componentes no correlacionados; $C^{-\frac{1}{2}}$ es utilizado como el blanqueamiento de la matriz. Esto es natural de la operación cuando se busca analizar cada columna/fuente de los datos originales de la matriz de $A$ (teniendo una matriz de covarianza $C$), a través de una correlación de la matriz $Z$. La forma más común de la aplicación de tales blanqueamiento es a través de la descomposición de Cholesky (donde utilizamos $C = LL^T$, ver este hilo para ver un ejemplo con la "coloración" un ejemplo) pero aquí se utiliza un poco menos infrecuente de Mahalanobis blanqueamiento (donde utilizamos $C= C^{0.5} C^{0.5}$). Toda la operación en R iría un poco como esto:

set.seed(323)
N <- 10000;
p <- 3;
# Define the real C
( C <- base::matrix( data =c(4,2,1,2,3,2,1,2,3), ncol = 3, byrow= TRUE) ) 
# Generate the uncorrelated data (ground truth)
Z <- base::matrix( ncol = 3, rnorm(N*p) ) 
# Estimate the colouring matrix C^0.5
CSqrt <- expm::sqrtm(C)
# "Colour" the data / usually we use Cholesky (LL^T) but using C^0.5 valid too
A <- t( CSqrt %*% t(Z) ) 
# Get the sample estimated C 
( CEst <- round( digits = 2, cov( A )) )
# Estimate the whitening matrix C^-0.5
CEstInv <-  expm::sqrtm(solve(CEst))
# Whiten the data
ZEst <-  t(CEstInv %*% t(A) )
# Check that indeed we have whitened the data 
( round( digits = 1, cov(cbind(ZEst, Z) ) ) )

Tan sucintamente responder a la pregunta planteada:

  1. Esto significa que podemos decorrelate la muestra $A$ que está asociado con la matriz de covarianza $C$, de tal manera que podemos obtener los componentes no correlacionados. Esto es comúnmente conocido como blanqueamiento.
  2. El general de Álgebra Lineal idea de lo que supone es que un (covarianza) de la matriz puede ser utilizado como una proyección del operador (para generar una correlación de la muestra por la "coloración"), pero también lo hace a la inversa (para decorrelate/"blanquear" una muestra).
  3. Sí, la forma más fácil de criar a un válido matriz de covarianza a cualquiera de los poderes (la raíz cuadrada negativa es simplemente un caso especial) mediante el eigen-descomposición de la misma; $C = V \Lambda V^T$, $V$ ser un ortonormales de la matriz de la celebración de los vectores propios de a $C$ $\Lambda$ ser una matriz diagonal la celebración de los autovalores. Entonces podemos fácilmente cambiar la matriz diagonal $\Lambda$ como deseemos y obtener el resultado relevante.

Un pequeño fragmento de código mostrando el punto 3.

# Get the eigendecomposition of the covariance matrix
myEigDec <- eigen(cov(A))
# Use the eigendecomposition to get the inverse square root
myEigDec$vectors %*% diag( 1/ sqrt( myEigDec$values) ) %*% t(myEigDec$vectors)
# Use the eigendecomposition to get the "negative half power" (same as above)
myEigDec$vectors %*% diag( ( myEigDec$values)^(-0.5) ) %*% t(myEigDec$vectors)
# And to confirm by the R library expm
solve(expm::sqrtm(cov(A)))

6voto

Dave Puntos 3005

¿Qué significa para elevar una matriz de covarianza de un negativo de la mitad de la potencia?

Generalmente esta notación se utiliza cuando una matriz es elevado a un número entero negativo de alimentación. En este caso, la notación es un shortform para tomar una inversa y elevar a una potencia. I. e. $A^{-2} = (A^2)^{-1} = (A^{-1})^2$. Ver a esta pregunta.

Esto puede ser extendido para fracciones de poderes. La primera pregunta es: ¿Qué $A^{1/2}$ significa? Bueno, si $B$ es la raíz cuadrada de una matriz de $A$, lo que significa que $BB = A$.

Esta pregunta demuestra que la raíz cuadrada de la matriz inversa es igual a la inversa de la raíz cuadrada, por lo que tiene sentido definir $A^{-1/2} = (A^{1/2})^{-1} = (A^{-1})^{1/2}$.

¿Qué ideas generales de álgebra lineal hace esto suponga?

Si una matriz es positiva semi-definitivo, tiene una raíz cuadrada (y un único positivo semi-definida de la raíz cuadrada). Afortunadamente para sus fines, cualquier válido matriz de covarianza es positiva semi-definida.

Es allí cualquier agradable fórmula para elevar una matriz de covarianza de un negativo de la mitad de la potencia?

Utilizando la definición, se debe combinar métodos para encontrar la recíproca y la búsqueda de la matriz de raíces cuadradas. (I. e. encontrar la inversa, a continuación, encontrar la raíz cuadrada.) Estos problemas son bien conocidos y que no debería tener problemas para encontrar algoritmos.

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