Eu estou tentando gerar uma matriz de correlação (psd simétrico) com uma estrutura de esparsidade pré-especificada (especificada por um gráfico nos nós ). Os nós conectados no gráfico têm correlação , resto todos são 0 e a diagonal é tudo 1.p ρ ∼ U ( 0 , 1 )
Eu tentei gerar essa matriz várias vezes, mas apenas raramente obtive uma matriz de correlação válida.
Existe uma maneira de garantir uma matriz de correlação whp? Note que eu só posso ter correlação positiva, então etc. não é uma opção.
Qualquer ajuda é muito apreciada!
correlation
matrix
sparse
correlation-matrix
Blade Runner
fonte
fonte
Respostas:
Perto, mas nenhum charuto para @Rodrigo de Azevedo.
A solução é usar a programação semidefinida para encontrar o valor máximo, , e o valor mínimo (sujeito a não-negativo), , de modo que a matriz de correlação com o padrão de esparsidade prescrito seja positiva semidefinido (psd). Todos os valores de tais que produzirão matrizes psd (exercício para o leitor)ρmax ρmin ρ ρ ρmax≤ρ≤ρmax
Portanto, você deve escolher uma distribuição de que só pode receber valores em ou deve usar aceitação / rejeição e rejeitar quaisquer valores gerados de que não produzam uma matriz psd.[ ρ m a x , ρ m a x ] ρρ [ρmax,ρmax] ρ
Exemplo para uma matriz 4 por 4 usando YALMIP em MATLAB
Resultados: rho máximo = 0,57735, rho mínimo = 0. É prontamente aparente que zero será o valor mínimo de rho sujeito a rho não ser negativo e a matriz prescrita ser psd, independentemente da dimensão ou padrão de escarsidade. Portanto, não é necessário executar a otimização semidefinida para encontrar o valor mínimo não negativo de .ρ
fonte
Uma matriz de correlação é simétrica, semidefinida positiva e possui na diagonal principal. Pode-se encontrar uma matriz de correlação resolvendo o seguinte programa semidefinido (SDP) em que a função objetivo é arbitrária, por exemplo, a função zero1 n×n
Se houver restrições adicionais, como restrições de esparsidade
e restrições de não negatividade, , em seguida, um resolve o seguinte SDPX≥On
A exemplo3×3
Suponha que queremos ter e . Aqui está um script MATLAB + CVX ,x 12 , x 23 ≥ 0x13=0 x12,x23≥0
Executando o script,
Vamos ver qual solução CVX encontrou,
Essa matriz é positiva semidefinida? Positivo definitivo?
É definitivo positivo, como esperado. Podemos encontrar matrizes de correlação semidefinidas positivas escolhendo uma função objetiva diferente de zero (linear).
fonte