Estoy tratando de generar una matriz de correlación (psd simétrica) con una estructura de dispersión preespecificada (especificada por un gráfico en nodos). Los nodos que están conectados en el gráfico tienen correlación , el resto todos son 0 y la diagonal es 1.
He intentado generar esta matriz varias veces, pero solo rara vez obtengo una matriz de correlación válida.
¿Hay alguna manera de asegurar una matriz de correlación whp? Tenga en cuenta que solo puedo tener una correlación positiva, por lo que etc., no es una opción.
¡Cualquier ayuda es muy apreciada!
correlation
matrix
sparse
correlation-matrix
Cazarecompensas
fuente
fuente
Respuestas:
Cerca pero sin cigarros para @Rodrigo de Azevedo.
La solución es utilizar la programación semidefinida para encontrar el valor máximo, , y el valor mínimo (sujeto a no ser negativo), , de modo que la matriz de correlación con el patrón de dispersión prescrito sea positivo semidefinito (psd). Todos los valores de tales que , producirán matrices psd (ejercicio para el lector) ρ m i n ρ ρ ρ m a x ≤ ρ ≤ ρ m a xρmax ρmin ρ ρ ρmax≤ρ≤ρmax
Por lo tanto, debe elegir una distribución de que solo puede tomar valores en , o debe usar la aceptación / rechazo y rechazar cualquier valor generado de que no produzca Una matriz psd.[ ρ m a x , ρ m a x ] ρρ [ρmax,ρmax] ρ
Ejemplo para una matriz de 4 por 4 usando YALMIP bajo MATLAB
Resultados: rho máximo = 0.57735, rho mínimo = 0. Es evidente que cero será el valor mínimo de rho sujeto a que rho no sea negativo y la matriz prescrita sea psd, independientemente de la dimensión o el patrón de dispersión. Por lo tanto, no es necesario ejecutar la optimización semidefinida para encontrar el valor mínimo no negativo de .ρ
fuente
Una matriz de correlación es simétrica, semidefinida positiva y tiene en su diagonal principal. Se puede encontrar una matriz de correlación resolviendo el siguiente programa semidefinido (SDP) donde la función objetivo es arbitraria, digamos, la función ceron × n1 n×n
Si uno tiene restricciones adicionales, como restricciones de dispersión
y restricciones de no negatividad, , luego se resuelve el siguiente SDPX≥On
Un ejemplo de3×3
Supongamos que queremos tener y . Aquí hay un script MATLAB + CVX ,x 12 , x 23 ≥ 0x13=0 x12,x23≥0
Ejecutando el script,
Veamos qué solución encontró CVX,
¿Es esta matriz positiva semidefinida? ¿Positivo definitivo?
Es positivo definitivo, como se esperaba. Podemos encontrar matrices de correlación semidefinidas positivas eligiendo una función objetivo distinta de cero (lineal).
fuente