미리 지정된 희소성 패턴을 사용하여 대칭 양수 한정 행렬 생성


9

상관 행렬을 생성하려고합니다. × 미리 지정된 희소성 구조를 갖는 (대칭 psd) 노드). 그래프에 연결된 노드는 상관 관계가 있습니다ρ(0,1)나머지는 모두 0이고 대각선은 모두 1입니다.

이 행렬을 여러 번 생성하려고 시도했지만 유효한 상관 관계 행렬을 거의 얻지 못했습니다.

상관 행렬 whp를 보장 할 수있는 방법이 있습니까? 긍정적 인 상관 관계 만 가질 수 있으므로ρ(1,1) 등은 옵션이 아닙니다.

어떤 도움이라도 대단히 감사합니다!


R에있는 패키지 매트릭스의 PD 근처의 함수가 도움이 될 수 있습니다.
niandra82

희소성의 척도는 무엇입니까? 데이터가 이진 또는 음이 아닌 연속이어야합니까?
ttnphns

@ niandra82 : nearPD는 행렬의 희소성을 파괴하므로 좋지 않습니다.
블레이드 러너

1
일반적으로이 질문에 설명 된 행렬 분포는 없습니다. 예를 들어3×3 계수가 세 개인 경우 ρ,σ,τ. 만약τ=0ρ>0,σ>0그런 다음 ρ2+σ2<1행렬이 양의 한정된 경우에만 하지만 둘 다 가질 수는 없습니다ρ(0,1)σ(0,1).
whuber

3
그렇다면 상관 관계 행렬을 먼저 생성하지 마십시오. 그런 다음 인덱스 된 요소를 0으로 강제 설정하는 해당 매트릭스에 대한 대칭 인덱스를 만듭니다. 희소성은 인덱스의 크기로 지정되며 r의 샘플과 같은 함수를 통해 랜덤을 통합 할 수 있습니다. 얼마나 많은 오프 대각선 요소를 0으로 강제하더라도, matix는 여전히 pd입니다.
Zachary Blumenfeld

답변:


2

@Rodrigo de Azevedo의 시가는 닫히지 않습니다.

해결책은 반정의 프로그래밍을 사용하여 최대 값을 찾는 것입니다. ρmax, 최소값 (음이 아닌 값), ρmin, 의 ρ규정 된 희소성 패턴을 갖는 상관 행렬이 양의 반정의 (psd)가되도록. 모든 가치ρ 그런 ρmaxρρmax, psd 매트릭스 생성 (리더를위한 운동)

따라서 분포를 선택해야합니다. ρ 값만 취할 수있는 [ρmax,ρmax]또는 수락 / 거부를 ​​사용하고 생성 된 값을 거부해야합니다. ρ psd 행렬을 생성하지 않습니다.

MATLAB에서 YALMIP를 사용하는 4 x 4 행렬의 예

sdpvar rho % declare rho to be a scalar variable
% find maximum value of rho (by minimizing -rho) subject to prescribed matrix being psd.
optimize([1 0 rho 0;0 1 rho 0;rho rho 1 rho;0 0 rho 1] >= 0,-rho) 
% find minimum value of rho subject to prescribed matrix being psd and rho being >= 0.
optimize([[1 0 rho 0;0 1 rho 0;rho rho 1 rho;0 0 rho 1] >= 0,rho >= 0],rho) 

결과 : 최대 rho = 0.57735, 최소 rho = 0. 치수 또는 희소성 패턴에 관계없이, rho가 비 음성이고 규정 된 행렬이 psd 인 rho의 최소값이 0이라는 것은 명백하다. 따라서 음이 아닌 최소값을 찾기 위해 반 정밀도 최적화를 실행할 필요가 없습니다.ρ.


4
이것은 질문에 대한 흥미로운 해석입니다 .0이 아닌 비 대각선 계수가 모두 같다고 가정하므로 (문제를 엄청나게 단순화시킵니다). 그것이 의도 된 해석인지, 또는 0이 아닌 모든 비대 각 계수가 공통 분포로부터 독립적으로 실현 되어야하는지 여부는 명확하지 않습니다 .
whuber

그것이 내가 한 해석입니다. 이제 언급 했으므로 다른 해석이 가능하다는 것을 알 수 있습니다. 적어도 내 해석은 상당히 잘 정의 된 문제를 초래한다는 장점이 있습니다. 상관 행렬의 삼각형 하나의 삼각형이 아닌 0이 아닌 대각선이 아닌 모든 요소가 반드시 음이 아닌 값으로 채워질 수 있도록 ρ의 최대 값을 찾기 위해 연구하지 않은 솔루션을 공식화 할 수 있다고 가정합니다. 그 값으로 채워지고 반드시 완전히 채워진 행렬을 psd로 만들어야합니다.
마크 L. 스톤

0

상관 행렬은 대칭이고 양의 반올림이며 1주요 대각선에 있습니다. 하나를 찾을 수 있습니다×목적 함수가 임의 인 제로 함수 인 다음의 반정의 프로그램 (SDP) 을 해결함으로써 상관 행렬

최소화영형,엑스에 따라엑스11=엑스22==엑스=1엑스영형

희소성 제한 조건과 같은 추가 제한 조건이있는 경우

엑스나는제이=0 모든 (나는,제이)[]×[]

비 음성 제약 엑스영형다음 SDP를 해결합니다.

최소화영형,엑스에 따라엑스11=엑스22==엑스=1엑스나는제이=0 모든 (나는,제이)[]×[]엑스영형엑스영형

×

우리가 갖고 싶어한다고 가정하자 엑스13=0엑스12,엑스230. MATLAB + CVX 스크립트 는 다음과 같습니다 .

cvx_begin sdp

    variable X(3,3) symmetric

    minimize( trace(zeros(3,3)*X) )
    subject to

        % put ones on the main diagonal
        X(1,1)==1
        X(2,2)==1
        X(3,3)==1

        % put a zero in the northeast and southwest corners
        X(1,3)==0

        % impose nonnegativity
        X(1,2)>=0
        X(2,3)>=0

        % impose positive semidefiniteness
        X >= 0

cvx_end

스크립트를 실행하면

Calling sedumi: 8 variables, 6 equality constraints
------------------------------------------------------------
SeDuMi 1.21 by AdvOL, 2005-2008 and Jos F. Sturm, 1998-2003.
Alg = 2: xz-corrector, Adaptive Step-Differentiation, theta = 0.250, beta = 0.500
eqs m = 6, order n = 6, dim = 12, blocks = 2
nnz(A) = 8 + 0, nnz(ADA) = 36, nnz(L) = 21
 it :     b*y       gap    delta  rate   t/tP*  t/tD*   feas cg cg  prec
  0 :            3.00E+000 0.000
  1 : -1.18E-001 6.45E-001 0.000 0.2150 0.9000 0.9000   1.86  1  1  1.2E+000
  2 : -6.89E-004 2.25E-002 0.000 0.0349 0.9900 0.9900   1.52  1  1  3.5E-001
  3 : -6.48E-009 9.72E-007 0.097 0.0000 1.0000 1.0000   1.01  1  1  3.8E-006
  4 : -3.05E-010 2.15E-009 0.000 0.0022 0.9990 0.9990   1.00  1  1  1.5E-007
  5 : -2.93E-016 5.06E-015 0.000 0.0000 1.0000 1.0000   1.00  1  1  3.2E-013

iter seconds digits       c*x               b*y
  5      0.3   5.8  0.0000000000e+000 -2.9302886987e-016
|Ax-b| =  1.7e-015, [Ay-c]_+ =  6.1E-016, |x|= 2.0e+000, |y|= 1.5e-015

Detailed timing (sec)
   Pre          IPM          Post
1.563E-001    2.500E-001    1.094E-001    
Max-norms: ||b||=1, ||c|| = 0,
Cholesky |add|=0, |skip| = 0, ||L.L|| = 1.
------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): +0

CVX가 찾은 솔루션을 보자.

>> X

X =

    1.0000    0.4143         0
    0.4143    1.0000    0.4143
         0    0.4143    1.0000

이 행렬은 반정 수입니까? 긍정적 인 결정?

>> rank(X)

ans =

     3

>> eigs(X)

ans =

    1.5860
    1.0000
    0.4140

예상 한대로 양수입니다. 0이 아닌 (선형) 목적 함수를 선택하여 양의 반정의 상관 행렬을 찾을 수 있습니다.


이 사이트에서 "생성"은 "임의 분포에서 추출"을 의미하는 것으로 이해되므로 코드에서 임의 상관 행렬을 생성하는 방법을 설명하고 어떤 분포를 따르는 지 나타낼 수 있습니까?
whuber

@whuber OP가 불가능을 요구하고 있습니다. 랜덤 상관 행렬을 생성하려면 랜덤 정사각 행렬을 생성하여 위의 반정의 프로그램의 목적 함수에 사용하십시오. 또는 큐브에서 균일 한 임의 변수의 실현을 생성하십시오.
[1,1](2)
그것들을 (상관) 행렬의 비 대각선 항목에 넣습니다. 1는 주 대각선에 있고, 양의 반올림이 아닌 것을 버립니다. 음이 아닌 제약이있는 경우 큐브를 균일하게 샘플링하십시오.
[0,1](2)
Rodrigo de Azevedo

3
@whuber 여기에 3D elliptope가 있습니다 [png]입니다.×상관 행렬. OP가 원하는 것은 elliptope을 음이 아닌 옥탄트와 교차시킨 다음 폼의 평면과 교차시키는 것입니다.엑스나는제이=0. 행렬이0, 그리고 그것은 elliptope 의 내부 에 있어야합니다 . 0이 아닌 목적 함수와 함께 SDP를 사용하여 , elliptope 의 표면 을 샘플링 할 수 있습니다 . elliptope가 볼록한 모양이므로 표면 점의 볼록한 조합은 상관 행렬에도 매핑됩니다.
Rodrigo de Azevedo

1
상황을 설명하는 훌륭한 방법입니다.
whuber

3
상대 볼륨이 축소되는 방식이 정확합니다. 이것이 바로 이것이 어려운 문제인 이유입니다.
whuber
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.