एक सहसंबंध मैट्रिक्स से कम से कम यादृच्छिक चर का सहसंबद्ध है


10

मेरे पास एक सहसंबंध मैट्रिक्स , जो मैंने Matlab के गलियारे () के माध्यम से पियर्सन के रैखिक सहसंबंध गुणांक का उपयोग करके प्राप्त किया था । आयाम 100x100 का सहसंबंध मैट्रिक्स, यानी मैंने 100 यादृच्छिक चर पर सहसंबंध मैट्रिक्स की गणना की।A

इन 100 रैंडम वेरिएबल्स में, मैं उन 10 रैंडम वैरिएबल्स को ढूंढना चाहता हूं, जिनके सहसंबंध मैट्रिक्स में "थोड़ा सहसंबंध" के रूप में संभव हैं (यह देखते हुए कि एक सहसंबंध मैट्रिक्स बी की तुलना में एक सहसंबंध मैट्रिक्स ए में कितनी मात्रा में "सहसंबंध मैट्रिक्स" है) मापने के लिए। एक सहसंबंध मैट्रिक्स में समग्र सहसंबंध)। मैं केवल जोड़ीदार सहसंबंध के बारे में परवाह करता हूं।

क्या उचित समय में उन 10 यादृच्छिक चर को खोजने के लिए अच्छे तरीके हैं (जैसे मैं (10010) संयोजन) आज़माना नहीं चाहता ? अनुमान एल्गोरिदम ठीक हैं।


1
metrics to measure the overall correlation। आप विशेष रूप से निर्धारक के बारे में सोच रहे हैं?
ttnphns

1
एक बहुत ही समान प्रश्न आंकड़े ।stackexchange.com/q/73125/3277
ttnphns

1
लॉग-निर्धारक एक सबमॉड्यूलर फ़ंक्शन है (पृष्ठ 18 यहां देखें )। यह नहीं बढ़ रहा है, दुर्भाग्य से, जिसका अर्थ है क्लासिक 11/e लालची सन्निकटन परिणाम लागू नहीं होता है, लेकिन यह अभी भी लगता है कि किसी तरह मददगार हो सकता है ....
डगल

1
यदि आप इसके बजाय सहसंबंध के औसत मूल्य का उपयोग करना चाहते हैं, तो यह एक अधिकतम बढ़त वजन की समस्या बन जाती है , जो निश्चित रूप से एनपी-हार्ड है, लेकिन सन्निकटन एल्गोरिदम पर कुछ काम देखा है।
डगल

3
क्लस्टर विश्लेषण के साथ उस सरल विचार के बारे में क्या। टेकदूरी के रूप में (असमानता) और एक चयनित विधि द्वारा क्लस्टरिंग करते हैं (मैं शायद वार्ड या औसत लिंकेज पदानुक्रमित चुनूंगा)। 10 आइटम से मिलकर सबसे तंग क्लस्टर का चयन करें। |r|
ttnphns

जवाबों:


3

आइए हम पूर्ण जोड़ीदार सहसंबंधों के योग को हमारी पसंद का माप मानते हैं। इस प्रकार हम एक वेक्टर विद जो को कम जहां।v{0,1}Nl1(v)=nvQvQij=|Aij|

मान लें कि क्यू भी A के रूप में सकारात्मक है, विवश द्विघात अनुकूलन समस्या को हल करने के लिए समस्या कम हो गई है:

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)

क्या आपके पास किसी भी संयोग से इस लिपि का पायथन संस्करण है?
कासिमिर

2

यह @ ttnphns के पदानुक्रमित क्लस्टरिंग विचार से भी बदतर हो सकता है। लेकिन: मैं सिर्फ एक पेपर में हुआ था जो एक बढ़ते सबमॉडल उद्देश्य फ़ंक्शन के रूप में का उपयोग करता है :logdet(I+A)

वेनिचिनाथन, मारफर्ट, रॉबेलिन, कोसमैन और क्रूस। बड़े पैमाने पर डेटा से मूल्यवान वस्तुओं की खोज । केडीडी 2015 ( दोई , अर्क्सिव )

अगर आपको लगता है कि यह "कम से कम सहसंबद्ध" का एक उचित उपाय है, तो आप अधिकतम सेट के कारक के भीतर प्राप्त कर सकते हैं, जो केवल उस बिंदु को चुनकर जो इसे अधिकतम करता है। यह ब्लॉक 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)

और निश्चित रूप से आपको गणना करनी चाहिए , जहां , का कोलेस्सिक फैक्टराइजेशन और त्रिकोणीय सॉल्वर का उपयोग कर जो । तो यह पूरी प्रक्रिया लेना चाहिए समय लेने के लिए से बाहर , तत्व सहसंबंध मैट्रिक्स संभालने पहले से ही की जाती है ।vT(I+A)1v=L1v2LI+AO(n2)O(k=1nNk2+k3)=O(Nn3)nN


ऐसा लग रहा है कि पेपर का लिंक मृत है। क्या आपके पास एक प्रशस्ति पत्र है?
साइकोरैक्स का कहना है कि

@ साइकोरेक्स यह वेकबैक मशीन पर उपलब्ध है , लेकिन मुझे वेब पर करंट कॉपी नहीं मिली। ऐसा लगता है कि कार्यशाला कागज़ को एक सम्मेलन पत्र में बदल दिया गया था , जिसे मैं उत्तर में जोड़ रहा हूं।
डगल

1

मुझे पूरी तरह से समझ में नहीं आ रहा है कि आप "मैं केवल जोड़ीदार सहसंबंध के बारे में परवाह करता हूं" से क्या मतलब है , लेकिन यहां कुछ ऐसा है जो मदद कर सकता है: अपने सहसंबंध मैट्रिक्स के इनवर्टर का उपयोग करें। अवधि के बराबर है , जहां है एक्स से बनाया गया मैट्रिक्स जहां -th कॉलम और लाइन को हटा दिया गया है।Aii1det(A0i)/det(A)A0i(n1)(n1)Ai

में न्यूनतम विकर्ण गुणांक का सूचकांक प्राप्त करना इस प्रकार आपको बताता है कि सेट के शेष भाग में सबसे कम सहसंबंध किस बिंदु पर है।A1

आप वास्तव में क्या करना चाहते हैं इसके आधार पर, आप या तो 10 सबसे कम मूल्यों को उल्टे के विकर्ण पर ले सकते हैं, या पहले एक को प्राप्त कर सकते हैं, फिर हटाए गए बिंदु के साथ इनवर्ट की गणना कर सकते हैं, और इसी तरह।

यदि यह वह नहीं है जिसकी आपको आवश्यकता है, तो मुझे लगता है कि यह ट्रिक अभी भी मददगार हो सकती है, लेकिन मुझे यकीन नहीं है कि हालांकि, कैसे।


0

कम से कम जोड़ीदार सहसंबंध के साथ वस्तुओं का खोजें : चूंकि का सहसंबंध दो श्रृंखलाओं के बीच संबंध के को बताता है , इसलिए यह आपके लक्ष्य आइटम के लिए सहसंबंधों के वर्गों के योग को कम करने के लिए अधिक समझ में आता है । यहाँ मेरा सरल उपाय है।kn0.60.36k

सहसंबंधों के एक मैट्रिक्स के सहसंबंधों के अपने मैट्रिक्स को फिर से लिखें। प्रत्येक स्तंभ के वर्गों को योग करें। स्तंभ और इसी पंक्ति को सबसे बड़ी राशि से हटा दें। अब आपके पास एक matrix मैट्रिक्स है। तब तक दोहराएं जब तक आपके पास मैट्रिक्स न हो। आप, साथ ही साथ कॉलम और इसी पंक्तियों रख सकता है छोटी से छोटी रकम। विधियों की तुलना करते हुए, मैंने और साथ एक मैट्रिक्स में पाया कि करीबी रकम वाले केवल दो आइटम अलग-अलग रखे गए और समाप्त हो गए।n×n(n1)×(n1)k×kkn=43k=20


2
यह काम कर सकता है, लेकिन यह तदर्थ लगता है (यह एक लालची एल्गोरिथ्म की तरह पढ़ता है) और आपने कोई गणितीय कारण नहीं दिया है जो सुझाव देता है कि आपको काम करना चाहिए। क्या आपके पास कोई आश्वासन है कि यह काम करेगा, या किसी भी सीमा पर यह सबसे अच्छा समाधान कैसे मिलेगा?
whuber

मैंने Gurobi की शाखा का उपयोग किया और को हल करने के लिए बाध्य किया अधीन सहसंबंध मैट्रिक्स और लिए अनुकूलता के लिए । मुझे 8.13 का अंतिम उद्देश्य मूल्य मिला। तुलना के लिए, इस लालची विधि ने 42.87 हासिल किए जबकि यादृच्छिक चयन में 62.07 का अपेक्षित उद्देश्य मूल्य था। इतना महान नहीं है, लेकिन यह भी बेकार नहीं है। और यह विधि सुनिश्चित है कि इसके लिए सरलता और गति है! x=argminx{0,1}n(xTC x)i=1nxi=k418×418k=20
कासिमिर

वहाँ भी सकारात्मक सहसंबंध था, जिसके बीच Gurobi और एक लालची विधि द्वारा की प्रविष्टियाँ निर्धारित की गई थीं। x
कासिमिर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.