상관 행렬에서 랜덤 변수의 최소 상관 서브 세트


10

Matlab의 corrcoef () 통해 Pearson의 선형 상관 계수를 사용하여 얻은 상관 행렬 있습니다. 100x100 차원의 상관 행렬, 즉 100 개의 임의 변수에 대한 상관 행렬을 계산했습니다.A

이 100 개의 임의 변수 중에서 상관 관계 행렬에 가능한 한 "상관 관계가 거의없는"10 개의 임의 변수를 찾고 싶습니다 ( 측정 할 메트릭과 관련 하여 상관 관계 매트릭스 A상관 관계 매트릭스 B비해 "상관 관계가 더 많은"정량화 참조). 상관 매트릭스에서의 전체 상관). 나는 페어 와이즈 상관에만 관심이있다.

합리적인 시간에 10 개의 랜덤 변수를 찾는 좋은 방법이 있습니까 (예 : (10010) 조합 을 시도하고 싶지 않습니다 )? 근사 알고리즘은 정상입니다.


1
metrics to measure the overall correlation. 결정기에 대해 특별히 생각하고 있습니까?
ttnphns

1
매우 유사한 질문 stats.stackexchange.com/q/73125/3277 .
ttnphns

1
로그 결정기는 하위 모듈 함수입니다 ( 여기의 18 페이지 참조 ). 불행히도 증가하지는 않습니다. 이는 고전적인 11/e 탐욕스러운 근사 결과가 적용되지 않지만 여전히 도움이 될 것 같은 느낌입니다 ....
Dougal

1
대신 상관의 평균값을 사용하려는 경우 이는 최대 간선 가중치 문제가 되며 이는 물론 NP-hard이지만 근사 알고리즘에 대한 일부 작업을 보았습니다.
Dougal

3
군집 분석을 통한 간단한 아이디어는 어떻습니까? 타고거리 (비 유사성)로 선택하고 선택한 방법으로 클러스터링을 수행합니다 (아마도 Ward 또는 평균 연계 계층을 선택합니다). 10 개의 항목으로 구성된 가장 엄격한 클러스터를 선택하십시오. |r|
ttnphns

답변:


3

선택 쌍으로 절대 쌍별 상관의 합을 고려해 봅시다. 우리는 따라서 벡터 추구 와 있는 최소화 할 수 어디에.v{0,1}Nl1(v)=nvQvQij=|Aij|

Q가 A로 정의 된 양이라고 가정하면 문제가 제한된 2 차 최적화 문제를 해결하는 것으로 줄어 듭니다.

v=min vQv s.t. l1(v)=n, vi{0,1}

이것은 다음과 같은 이완을 제안합니다.

v=min vQv s.t. l1(v)=n, vi[0,1]

상용 솔버를 사용하여 쉽게 해결할 수 있습니다. 그러면 결과는 에서 가장 큰 구성 요소로 제공됩니다 .nv

샘플 MATLAB 코드 :

N=100;
n=10;
% Generate random data
A=rand(N,1000);
C=corrcoef(A');
Q=abs((C+C')/2); % make sure it is symmetric
x = cplexqp(Q,zeros(1,N),[],[], ones(1, N),n, zeros(N,1), ones(N,1));
% If you don't use CPLEX, use matlab's default
% x = quadprog(Q,zeros(1,N),[],[], ones(1, N),n, zeros(N,1), ones(N,1));
assert(abs(sum(x)-n)<1e-10);
% Find the n largest values
I=sort(x); 
v=zeros(size(x)); v(x>I(N-n))=1; 
assert(abs(sum(v)-n)<1e-10);
% Make sure we do better than 10K random trials
for i=1:10000
   vc=zeros(size(x)); vc(randperm(N,n))=1;
   assert(sum(vc)==n, 'Wrong l0 norm');
   assert(vc'*Q*vc>v'*Q*v, 'Improves result');
end
% Show results
J=find(v==1);
fprintf('The optimal solution total off-diagonal correlations are %1.3f\n', v'*Q*v-n);
fprintf('The matrix:\n');
C(J,J)

우연히이 스크립트의 파이썬 버전이 있습니까?
Casimir

2

이것은 @ttnphns의 계층 적 클러스터링 아이디어보다 나쁠 수 있습니다. 그러나 방금 증가하는 하위 모듈 목적 함수로 를 사용 하는 논문 에서 방금 발생했습니다 .logdet(I+A)

Vanchinathan, Marfurt, Robelin, Kossman 및 Krause. 대규모 데이터에서 귀중품 검색하기 . KDD 2015. ( doi , arXiv )

그것이 "최소 상관 관계"의 합리적인 척도라고 생각한다면, 그것을 최대화하는 지점을 단순히 반복적으로 선택함으로써 최적 세트의 요소 내에서 얻을 수 있습니다 . 이것은 블록 LU 분해로 효율적으로 수행 할 수 있습니다 . 여기서 는 이미 행렬에있는 항목과의 상관 관계의 벡터입니다.11/ev

det[I+AvvT2]=det([I0vT(I+A)11][I+A002vT(I+A)1v][I(I+A)1v01])=det[I0vT(I+A)11]det[I+A002vT(I+A)1v]det[I(I+A)1v01]=(2vT(I+A)1v)det(I+A)

그리고 물론 . 여기서 은 의 Cholesky 인수 분해이고 삼각 솔버를 사용합니다. 이것은 입니다. 따라서이 전체 프로세스는 상관 행렬이 이미 계산되었다고 가정 할 때 시간 이 요소에서 을 선택해야합니다. .vT(I+A)1v=L1v2LI+AO(n2)O(k=1nNk2+k3)=O(Nn3)nN


종이와의 연결이 끊어진 것 같습니다. 인용이 편리합니까?
Sycorax는 Reinstate Monica

@Sycorax Wayback Machine 에서 사용할 수 있지만 웹에서 현재 사본을 찾을 수 없습니다. 워크숍 논문이 컨퍼런스 논문으로 바뀌어 답변에 추가하는 것처럼 보입니다 .
Dougal

1

"한 쌍의 상관 관계에만 관심 이 있습니다 "라는 의미를 완전히 이해 하지는 못하지만 다음은 도움이 될만한 내용입니다. 상관 상관 행렬의 반전을 사용하십시오. 용어 같다 , 은 IS , X 행렬에서 내장 어디에 번째 열과 행이 제거되었다.Aii1det(A0i)/det(A)A0i(n1)(n1)Ai

따라서 에서 최소 대각 계수의 인덱스를 얻으면 나머지 점과 어떤 점이 가장 낮은 상관 관계가 있는지 알 수 있습니다.A1

실제로 수행하려는 작업에 따라 반전의 대각선에서 가장 낮은 10 개의 값을 가져 오거나 첫 번째 값을 얻은 다음 점이 삭제 된 상태에서 반전을 계산하는 등의 작업을 수행 할 수 있습니다.

이것이 당신이 필요로하지 않는 경우,이 트릭이 여전히 도움이 될 것 같지만 어떻게 해야할지 모르겠습니다.


0

쌍별 상관 관계가 가장 낮은 개 항목 중 찾기 : 이라고하는 상관 관계가 두 계열 간 관계의 을 설명 하므로 대상 개 항목 의 상관 관계 제곱의 합을 최소화하는 것이 더 좋습니다 . 여기 내 간단한 해결책이 있습니다.kn0.60.36k

상관 행렬을 제곱 상관 행렬로 다시 작성하십시오 . 각 열의 제곱을 합산하십시오. 가장 큰 합계로 열과 해당 행을 제거하십시오. 이제 행렬이 생겼습니다. 행렬 이 될 때까지 반복하십시오 . 와 가장 작은 합계로 열과 해당 행을 유지할 수도 있습니다 . 방법을 비교해 보면, 과 의 행렬에서 가까운 합계를 가진 두 항목 만 다르게 유지되고 제거된다는 것을 알았 습니다.n×n(n1)×(n1)k×kkn=43k=20


2
이것은 효과가있을 수 있지만, 임시 소리처럼 들리며 (욕심 많은 알고리즘처럼 읽음) 작동해야한다는 수학적인 이유를 제시하지 않았습니다. 그것이 효과가있을 것이라는 확신이 있거나 그것이 최상의 솔루션에 얼마나 근접 할 수 있는지에 대한 한계가 있습니까?
whuber

I 사용 Gurobi의 분기와 결합 해결 에 피사체 상관 행렬에 대한 와 . 최종 목표 값은 8.13입니다. 비교를 위해이 탐욕스러운 방법은 42.87을 달성하는 반면 무작위 선택은 62.07의 목표 값을 예상했습니다. 그렇게 크지는 않지만 쓸모없는 것도 아닙니다. 그리고이 방법은 간단하고 속도가 빠릅니다! x=argminx{0,1}n(xTC x)i=1nxi=k418×418k=20
Casimir

구로 비와이 탐욕스러운 방법 으로 항목 을 1로 설정 한 것 사이에는 양의 상관 관계가 있었습니다. x
Casimir
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.