कैसे बेतरतीब सहसंबंध मैट्रिक्स उत्पन्न करने के लिए जो लगभग सामान्य रूप से दिए गए मानक विचलन के साथ ऑफ-विकर्ण प्रविष्टियों को वितरित करता है?


11

मैं एक यादृच्छिक सहसंबंध मैट्रिक्स उत्पन्न करना चाहूंगा, ताकि इसके ऑफ-विकर्ण तत्वों का वितरण लगभग सामान्य जैसा दिखाई दे । मैं यह कैसे कर सकता हूं?

प्रेरणा यह है। समय श्रृंखला डेटा के एक सेट के लिए , सहसंबंध वितरण अक्सर सामान्य के काफी करीब दिखता है। मैं सामान्य स्थिति का प्रतिनिधित्व करने और जोखिम संख्या की गणना करने के लिए उनका उपयोग करने के लिए कई "सामान्य" सहसंबंध मैट्रीक उत्पन्न करना चाहूंगा।n


मैं एक विधि जानता हूं, लेकिन परिणामी मानक विचलन (ऑफ-विकर्ण तत्वों के वितरण) मेरे उद्देश्य के लिए बहुत छोटा है: एक मैट्रिक्स समान या सामान्य यादृच्छिक पंक्तियों को उत्पन्न करना , पंक्तियों को मानकीकृत करना (मतलब घटाना, उपकरण) मानक विचलन द्वारा विभाजित करें), फिर नमूना सहसंबंध मैट्रिक्स ने सामान्य रूप से ऑफ-विकर्ण प्रविष्टियों को वितरित किया है [ टिप्पणियों के बाद अपडेट करें : मानक विचलन ]।एक्स 1nX~n-1/21n1XXn1/2

क्या कोई बेहतर विधि सुझा सकता है जिसके साथ मैं मानक विचलन को नियंत्रित कर सकता हूं?


1
@ रिचर्ड, आपके प्रश्न के लिए धन्यवाद। दुर्भाग्य से, आपके द्वारा ऊपर वर्णित विधि प्रविष्टियों का उत्पादन नहीं करेगी जो सामान्य रूप से वितरित की जाती हैं। विकर्ण 1 संभावना वाले 1 हैं और ऑफ-विकर्ण और बीच बँधे हुए हैं । अब, rescaled प्रविष्टियाँ asymptotically को लगभग शून्य पर केंद्रित एक सामान्य वितरण में परिवर्तित कर देंगी। क्या आप हमें उस समस्या के बारे में अधिक जानकारी दे सकते हैं जिसे आप वास्तव में हल करना चाहते हैं? और, आप विकर्णों से "सामान्य रूप से वितरित" क्यों चाहते हैं? + 11+1
कार्डिनल

1
@ रिचर्ड, मेरा मतलब है कि मान लें कि और दो स्वतंत्र वैक्टर हैं, जिनमें से प्रत्येक की प्रविष्टियाँ आईआईडी मानक सामान्य हैं। कंप्यूट ; अर्थात्, और बीच का नमूना संबंध । फिर एक मानक सामान्य यादृच्छिक चर के वितरण में परिवर्तित होता है। "Rescaled" से मेरा आशय गुणा से है जो कि एक गैर पतित सीमित वितरण प्राप्त करने के लिए आवश्यक है। वाई = ( Y 1 , वाई 2 , ... , वाई एन ) ρ n = रों एक्स y / ( रों एक्स रों y ) एक्स वाई एन 1 / 2 ρ n n 1 / 2X=(X1,X2,,Xn)Y=(Y1,Y2,,Yn)ρ^n=sxy/(sxsy)XYn1/2ρ^nn1/2
कार्डिनल

1
@ रिचर्ड, "समस्या" का सार यह है कि दो प्रतिबंध (ए) बनाकर कि प्रत्येक पंक्ति के मानदंड 1 और (बी) हैं कि प्रविष्टियां एक यादृच्छिक नमूने से उत्पन्न होती हैं, आप आवश्यक रूप से सहसंबंधों को काफी मजबूर कर रहे हैं छोटा ( के आदेश पर । इसका कारण यह है कि आपके पास पंक्तियों के बीच मनमाने ढंग से बड़े संबंध नहीं हो सकते हैं और फिर भी इतनी स्वतंत्रता के बाद भी प्रत्येक पंक्ति के मानदंड 1 हो सकते हैं।n1/2
कार्डिनल

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

1
ज़रूर, चलो एक साधारण मामला लेते हैं। जेनरेटिंग मैट्रिक्स कॉल करें , जिसे हम सामान्यता के नुकसान के बिना मान लेंगे । अब, i के वैक्टर के रूप में के कॉलम उत्पन्न करें, ताकि प्रत्येक वेक्टर के तत्व मानक सामान्य यादृच्छिक चर हैं जो सहसंबंध साथ समान हैं । अब, आपके द्वारा की गई प्रक्रिया का उपयोग करें। Let के th और th * row * के बीच नमूना सहसंबंध को दर्शाते हैं । फिर फिक्स्ड , ,मीटर × n एक्स ρ ρ मैं जे मैं j एक्स मीटर n n 1 / 2 ( ρ मैं j - ρ ) एन ( 0 , ( 1 - ρ 2 ) 2 )Xm×nXρρ^ijijXmnn1/2(ρ^ijρ)वितरण में एक यादृच्छिक चर में परिवर्तित होता है । N(0,(1ρ2)2)
कार्डिनल

जवाबों:


5

मैंने पहले प्रदान किया है कि अब मेरा मानना ​​है कि एक उप-इष्टतम जवाब है; इसलिए मैंने बेहतर सुझाव के साथ शुरू करने के लिए अपने जवाब को संपादित किया।


बेल विधि का उपयोग करना

इस थ्रेड में: कैसे बेतरतीब ढंग से रैंडम पॉजिटिव-सीमेडिफेरियल मैट्रैक्शन मैट्रिसेस उत्पन्न करें? - मैंने यादृच्छिक सहसंबंध मैट्रिक्स बनाने के दो कुशल एल्गोरिदम के लिए कोड का वर्णन किया और प्रदान किया। दोनों लेवांडोव्स्की, कुरोविक और जो (2009) के एक पेपर से आते हैं ।

कृपया बहुत सारे आंकड़े और मैटलैब कोड के लिए मेरा जवाब देखें । यहां मैं केवल यह कहना चाहूंगा कि बेल विधि आंशिक सहसंबंधों के किसी भी वितरण के साथ यादृच्छिक सहसंबंध मैट्रिक्स उत्पन्न करने की अनुमति देती है (शब्द "आंशिक" शब्द को नोट करें) और बड़े ऑफ-डायगोनल मानों के साथ सहसंबंध मैट्रिक्स उत्पन्न करने के लिए उपयोग किया जा सकता है। यहाँ उस धागे से प्रासंगिक आंकड़ा है:

बेल की विधि

केवल एक चीज जो सबप्लॉट्स के बीच बदलती है, वह एक पैरामीटर है जो नियंत्रित करती है कि आंशिक सहसंबंधों का वितरण लगभग केंद्रित है । जैसा कि ओपी लगभग सामान्य वितरण बंद-विकर्ण के लिए पूछ रहा था, यहाँ ऑफ-विकर्ण तत्वों के हिस्टोग्राम के साथ साजिश है (ऊपर के समान मैट्रिसेस के लिए):±1

ऑफ-विकर्ण तत्व

मुझे लगता है कि यह वितरण यथोचित "सामान्य" है, और कोई यह देख सकता है कि मानक विचलन धीरे-धीरे कैसे बढ़ता है। मुझे यह जोड़ना चाहिए कि एल्गोरिथ्म बहुत तेज है। विवरण के लिए लिंक थ्रेड देखें।


मेरा मूल उत्तर

आपकी पद्धति का एक स्ट्रेट-फ़ॉरवर्ड-मॉडिफिकेशन ट्रिक कर सकता है (यह निर्भर करता है कि आप वितरण को कितना सामान्य चाहते हैं)। यह उत्तर ऊपर @ कार्डिनल की टिप्पणियों से और @ सार्का के मेरे स्वयं के प्रश्न से प्रेरित था कि कैसे कुछ मजबूत सहसंबंधों के साथ एक बड़ी पूर्ण-रैंक यादृच्छिक सहसंबंध मैट्रिक्स उत्पन्न करें?

चाल अपने सहसंबद्ध (सुविधाएँ नहीं, बल्कि नमूने) बनाने के लिए है। यहाँ एक उदाहरण है: मैं यादृच्छिक मैट्रिक्स उत्पन्न के आकार (मानक सामान्य से सभी तत्वों), और फिर से एक यादृच्छिक संख्या जोड़ने प्रत्येक पंक्ति के लिए । के लिए सहसंबंध मैट्रिक्स (सुविधाओं के मानकीकरण के बाद) तत्व लगभग सामान्य रूप से मानक विचलन के साथ वितरित-विकर्ण बंद करना होगा । के लिएएक्स 1000 × 100 [ - एक / 2 , एक / 2 ] एक = 0 , 1 , 2 , 5 एक = 0 एक्सएक्स 1 / XX1000×100[a/2,a/2]a=0,1,2,5a=0XX एक>0एकएक=0,1,2,51/1000a>0, मैं चर (इस बरकरार रखता डाला सहसंबंध) केंद्रित बिना सहसंबंध मैट्रिक्स की गणना, और ऑफ विकर्ण तत्वों के मानक विचलन के साथ हो जाना के रूप में यह आंकड़ा पर दिखाया (पंक्तियों के अनुरूप ):aa=0,1,2,5

यादृच्छिक सहसंबंध matrices

ये सभी मैच निश्चित रूप से सकारात्मक हैं। यहाँ matlab कोड है:

offsets = [0 1 2 5];
n = 1000;
p = 100;

rng(42) %// random seed

figure
for offset = 1:length(offsets)
    X = randn(n,p);
    for i=1:p
        X(:,i) = X(:,i) + (rand-0.5) * offsets(offset);
    end
    C = 1/(n-1)*transpose(X)*X; %// covariance matrix (non-centred!)

    %// convert to correlation
    d = diag(C);
    C = diag(1./sqrt(d))*C*diag(1./sqrt(d));

    %// displaying C
    subplot(length(offsets),3,(offset-1)*3+1)
    imagesc(C, [-1 1])

    %// histogram of the off-diagonal elements
    subplot(length(offsets),3,(offset-1)*3+2)
    offd = C(logical(ones(size(C))-eye(size(C))));
    hist(offd)
    xlim([-1 1])

    %// QQ-plot to check the normality
    subplot(length(offsets),3,(offset-1)*3+3)
    qqplot(offd)

    %// eigenvalues
    eigv = eig(C);
    display([num2str(min(eigv),2) ' ... ' num2str(max(eigv),2)])
end

इस कोड का आउटपुट (न्यूनतम और अधिकतम eigenvalues) है:

0.51 ... 1.7
0.44 ... 8.6
0.32 ... 22
0.1 ... 48

क्या आप भूखंडों के साथ-साथ इस पद्धति का उपयोग करके प्राप्त किए गए सबसे छोटे eigenvalues ​​के मूल्य की साजिश कर सकते हैं?
user603

1
आकृति को बदले बिना, मैं बस यहां लिख सकता हूं कि सबसे छोटे प्रतिजन क्रमशः 0.5, 0.4, 0.3 और 0.1 हैं (मेरे आंकड़े की प्रत्येक पंक्ति के लिए)। सबसे बड़े लोग 1.7 से 48 तक बढ़ते हैं।
अमीबा

लेकिन ये सहसंबंध मैट्रिक्स के एक्सजेनवेल्यूज़ हैं या X'X ?.
user603

C

मुझे नहीं लगता कि यह असंभव है, मैं इसे कोड से नहीं देख सकता था (इस बिंदु पर वर्षों तक
मैटलैब का


1

यदि आप यादृच्छिक सहसंबंध मैट्रिक्स उत्पन्न करने की कोशिश कर रहे हैं, तो Wishart वितरण से नमूने पर विचार करें। यह निम्नलिखित प्रश्न Wishart वितरण के साथ-साथ नमूना लेने की सलाह के बारे में जानकारी प्रदान करता है: कुशलतापूर्वक यादृच्छिक सकारात्मक-अर्ध-सहसंबद्ध मैट्रिसेस कैसे उत्पन्न करें?


लेकिन क्या कोई विसारत वितरण के मापदंडों के साथ परिणामी ऑफ-विकर्ण तत्वों के मानक विचलन को नियंत्रित कर सकता है? यदि हां, तो कैसे?
अमीबा

1

यह बहुत परिष्कृत उत्तर नहीं है, लेकिन मैं मदद नहीं कर सकता, लेकिन लगता है कि यह अभी भी एक अच्छा जवाब है ...

यदि आपकी प्रेरणा यह है कि समय श्रृंखला डेटा द्वारा निर्मित सहसंबंध पैरामीटर सामान्य दिखते हैं, तो क्यों न केवल समय श्रृंखला डेटा का अनुकरण करें, सहसंबंध मापदंडों की गणना करें और उन का उपयोग करें?

ऐसा न करने के लिए आपके पास एक अच्छा कारण हो सकता है, लेकिन यह आपके प्रश्न से मुझे स्पष्ट नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.