Esto no es un error.
Como hemos explorado (mucho) en los comentarios, hay dos cosas que están sucediendo. La primera es que las columnas de a $U$ que están obligados a cumplir la enfermedad vesicular porcina requisitos: cada uno debe tener unidad de longitud y ser ortogonal a todos los demás. Visualización de $U$ como una variable aleatoria creado a partir de una matriz aleatoria $X$ a través de una determinada enfermedad vesicular porcina algoritmo, así podemos señalar que estos $k(k+1)/2$ funcionalmente independiente de las limitaciones de crear estadísticos dependencias entre las columnas de a $U$.
Estas dependencias pueden ser revelada a un mayor o menor grado por el estudio de las correlaciones entre los componentes de $U$, pero un segundo fenómeno que emerge: la enfermedad vesicular porcina solución no es única. Como mínimo, cada columna de $U$ puede ser negado de forma independiente, dando al menos $2^k$ soluciones distintas con $k$ columnas. Correlaciones fuertes (superiores a $1/2$) puede ser inducida por el cambio de los signos de las columnas de forma adecuada. (Una manera de hacer esto es dado en mi primer comentario a la Ameba, la respuesta en este hilo: me fuerza a todos los $u_{ii},i=1,\ldots, k$ a tienen el signo, haciendo que todos ellos negativos o positivos, con igual probabilidad.) Por otro lado, todas las correlaciones que pueden hacerse desaparecer mediante la elección de los signos al azar, de forma independiente, con igualdad de probabilidades. (Doy un ejemplo de abajo, en el apartado "Edición".)
Con cuidado, que en parte puede discernir estos dos fenómenos, cuando la lectura de matrices de diagramas de dispersión de los componentes de $U$. Ciertas características, tales como la aparición de puntos casi uniformemente distribuidos dentro de los bien definidos circular regiones--carece de una falta de independencia. Otros, tales como diagramas de dispersión que muestra clara distinto de cero correlaciones, dependerá, obviamente, de las decisiones tomadas en el algoritmo--pero tales decisiones sólo son posibles debido a la falta de independencia en el primer lugar.
La última prueba de un algoritmo de descomposición como la enfermedad vesicular porcina (o Cholesky, LR, LU, etc.) es que si hace lo que dice. En esta circunstancia es suficiente para comprobar que cuando la enfermedad vesicular porcina devuelve el triple de matrices $(U, D, V)$, $X$ es recuperado, hasta anticipado de punto flotante de error, por el producto $UDV^\prime$; que las columnas de a $U$ e de $V$ son ortonormales; y que $D$ es diagonal, su diagonal elementos son no negativos, y se organizan en orden descendente. He aplicado dichas pruebas a la svd
algoritmo en R
y nunca he encontrado a estar en un error. Aunque eso no es garantía de que es perfectamente correcto, la experiencia, que creo que es compartida por un gran número de personas--sugiere que cualquier error podría requerir algunos de los increíbles tipo de entrada con el fin de ser manifiesto.
Lo que sigue es un análisis más detallado de las cuestiones específicas planteadas en la pregunta.
El uso de R
's svd
procedimiento, se puede comprobar que, como $k$ aumenta, las correlaciones entre los coeficientes de $U$ crecimiento más débil, pero aún son distintos de cero. Si usted simplemente fueron a realizar una mayor simulación, usted podría encontrar que son significativas. (Al $k=3$, 50000 iteraciones deberían ser suficientes.) Contrariamente a la afirmación de la pregunta, las correlaciones no "desaparece en su totalidad."
Segundo, una mejor manera de estudiar este fenómeno es volver a la pregunta básica de la independencia de los coeficientes. Aunque las correlaciones tienden a ser cercano a cero en la mayoría de los casos, la falta de independencia es claramente evidente. Esto se hace más evidente al estudiar la plena multivariante de la distribución de los coeficientes de $U$. La naturaleza de la distribución surge incluso en pequeñas simulaciones en las que el cero correlaciones no pueden (aún) ser detectado. Por ejemplo, examinar un diagrama de dispersión de la matriz de los coeficientes. Para hacer esto posible, me ajustar el tamaño de cada conjunto de datos simulados a $4$ y se mantienen $k=2$, con lo que el dibujo de $1000$ realizaciones de la $4\times 2$ matriz $U$, la creación de una $1000\times 8$ matriz. Aquí está toda su diagrama de dispersión de la matriz, con las variables enumeradas por sus posiciones dentro de $U$:
El escaneo de la primera columna muestra un interesante falta de independencia entre el $u_{11}$ y el otro $u_{ij}$: mira cómo el cuadrante superior del diagrama de dispersión con $u_{21}$ es casi vacía, por ejemplo; o examinar la elíptica inclinación ascendente en la nube que describe la $(u_{11}, u_{22})$ relación y el descendente, en la nube para la $(u_{21}, u_{12})$ par. Una mirada más de cerca revela una clara falta de independencia entre casi todos de estos coeficientes: muy pocos de ellos se ven de forma remota independiente, aunque la mayoría de ellos presentan cerca de cero correlación.
(NB: la Mayoría de la circular nubes son proyecciones de un hypersphere creado por la normalización de la condición obligando a la suma de los cuadrados de todos los componentes de cada columna de la unidad.)
Diagrama de dispersión de las matrices con $k=3$ $k=4$ presentan patrones similares: estos fenómenos no están confinados a $k=2$, ni dependen de ellos el tamaño de cada conjunto de datos simulados: se ponen más difíciles de generar y examinar.
Las explicaciones para estos patrones de ir a el algoritmo utilizado para obtener el $U$ en la descomposición de valor singular, pero sabemos que tales patrones de la no-independencia que debe existir por la propia definición de propiedades de $U$: desde cada una de las sucesivas columna es (geométricamente) ortogonal a la anterior, estos ortogonalidad de las condiciones de imponer las dependencias funcionales entre los coeficientes, que así se traduce estadístico dependencias entre las correspondientes variables aleatorias.
Editar
En respuesta a los comentarios, puede ser la pena destacar en la medida en que estos dependencia de los fenómenos reflejan el algoritmo subyacente (calcular un SVD) y lo mucho que son inherentes a la naturaleza del proceso.
El específico de los patrones de correlaciones entre los coeficientes dependen mucho arbitrarias decisiones tomadas por la enfermedad vesicular porcina algoritmo, debido a que la solución no es única: las columnas de a $U$ siempre de forma independiente, se multiplica por $-1$ o $1$. No hay ninguna manera intrínseca para elegir el signo. Por lo tanto, cuando dos SVD algoritmos hacen diferentes (arbitraria o tal vez incluso al azar) opciones de signo, que pueden dar lugar a diferentes patrones de dispersión de la $(u_{ij}, u_{i^\prime j^\prime})$ valores. Si a usted le gustaría ver esto, reemplace la stat
función en el código siguiente
stat <- function(x) {
i <- sample.int(dim(x)[1]) # Make a random permutation of the rows of x
u <- svd(x[i, ])$u # Perform SVD
as.vector(u[order(i), ]) # Unpermute the rows of u
}
Esta primera aleatoriamente re-ordena las observaciones x
, realiza SVD, entonces se aplica la inversa de pedidos a u
para que coincida con el original de la observación de la secuencia. Debido a que el efecto es formar mezclas de reflejadas y rotadas versiones de la original diagramas de dispersión, diagramas de dispersión en la matriz tendrá un aspecto mucho más uniforme. Todos los de las muestras correlaciones va a ser muy cercano a cero (por construcción: subyacente correlaciones son exactamente cero). Sin embargo, la falta de dependencia todavía será evidente (en la circular uniforme de las formas que aparecen, en particular entre las $u_{i,j}$$u_{i,j^\prime}$).
La falta de datos en algunos cuadrantes de algunos de los originales de diagramas de dispersión (que se muestra en la figura anterior) surge de cómo la R
SVD algoritmo selecciona los signos de las columnas.
No cambia nada acerca de las conclusiones. Porque la segunda columna de $U$ es ortogonal a la primera, (considerado como un multivariante variable aleatoria) es dependiente en la primera (también considerada como un multivariante variable aleatoria). Usted puede tener todos los componentes de una columna en un ser independiente de todos los componentes de los otros; todo lo que puedes hacer es buscar en los datos en formas que ocultan las dependencias--pero la dependencia va a persistir.
Aquí se actualizó R
código para manejar los casos de $k\gt 2$ y dibujar una parte del diagrama de dispersión de la matriz.
k <- 2 # Number of variables
p <- 4 # Number of observations
n <- 1e3 # Number of iterations
stat <- function(x) as.vector(svd(x)$u)
Sigma <- diag(1, k, k); Mu <- rep(0, k)
set.seed(17)
sim <- t(replicate(n, stat(MASS::mvrnorm(p, Mu, Sigma))))
colnames(sim) <- as.vector(outer(1:p, 1:k, function(i,j) paste0(i,",",j)))
pairs(sim[, 1:min(11, p*k)], pch=".")