Dada una matriz de datos $X$ de digamos 1000000 observaciones $\times$ 100 prestaciones, ¿hay una forma rápida de construir una aproximación tridiagonal $A \approx cov(X)$ ?
Entonces uno podría factorizar $A = L L^T$ , $L$ todos 0 excepto $L_{i\ i-1}$ y $L_{i i}$ , y hacer una descorrelación rápida (blanqueamiento) resolviendo $L x = x_{white}$ . (Con "rápido" me refiero a $O( size\ X )$ .)
(Añadido, intentando aclarar): Estoy buscando un blanqueador rápido y sucio que sea más rápido que el completo $cov(X)$ pero mejor que en diagonal. Digamos que $X$ es $N$ puntos de datos $\times Nf$ características, por ejemplo 1000000 $\times$ 100, con características 0-media.
1) construir $Fullcov = X^T X$ factor Cholesky como $L L^T$ , resolver $L x = x_{white}$ para blanquear nuevos $x$ s. Esto es cuadrático en el número de características.
2) diagonal: $x_{white} = x / \sigma(x)$ ignora por completo las correlaciones cruzadas.
Un podría obtener una matriz tridiagonal a partir de $Fullcov$ simplemente poniendo a cero todas las entradas fuera de la tridiagonal, o no acumulándolas en primer lugar. Y aquí empiezo a hundirme: debe haber una aproximación mejor, ¿tal vez jerárquica, diagonal en bloque → tridiagonal?
(Añadido el 11 de mayo): Permítanme dividir la pregunta en dos:
1) ¿existe una aproximación rápida $cov(X)$ ?
No (whuber), hay que mirar todos ${N \choose 2}$ pares (o tener estructura, o muestra).
2) dado un $cov(X)$ ¿con qué rapidez se puede blanquear nuevo $x$ s ?
Bueno, teniendo en cuenta $cov = L L^T$ , $L$ triangular inferior, una vez, luego resolviendo $L x = x_{white}$ es bastante rápido; scipy.linalg.solve_triangular, por ejemplo, utiliza Lapack.
Estaba buscando un blanqueador aún más rápido, sigo buscando.
0 votos
¿Tienen las columnas un orden natural? ¿O quieres encontrar una aproximación tridiagonal bajo alguna permutación ("óptima") de las columnas? Supongo que cuando dices $A = \mathrm{Cov}(X)$ estás hablando de la estructura de covarianza de las características. ¿Puede confirmarlo?
0 votos
No, no hay ordenación natural, y sí covarianza de las 100 características. Los métodos que suman una matriz de covarianza completa, y luego la aproximan, serían >> O(tamaño X); estoy buscando una aproximación simple y rápida, que necesariamente será tosca.
0 votos
Entonces, quieres una aproximación tridiagonal bajo alguna permutación (a determinar por los datos), ¿no?
0 votos
Añadido, trató de aclarar. Si se pudiera encontrar una buena permutación (satisfactoria) en O(Ncaracterísticas), sí, serviría.
0 votos
Existen aproximaciones cuando las variables tienen una estructura adicional, como cuando forman una serie temporal o realizaciones de un proceso estocástico espacial en varios lugares. Estas aproximaciones se basan en supuestos que nos permiten relacionar la covarianza entre un par de variables con la covarianza entre otros pares de variables, por ejemplo entre pares separados por los mismos retardos. Los cálculos pueden ser $O(Nf \log(Nf)$ en tales casos. En ausencia de tal modelo, no veo cómo se puede evitar el cálculo de todas las covarianzas entre pares.