क्यों गलियारा एक मैट्रिक्स लौटाता है?


81

यह मुझे अजीब लगता है कि np.corrcoef एक मैट्रिक्स लौटाता है।

 correlation1 = corrcoef(Strategy1Returns,Strategy2Returns)

[[ 1.         -0.99598935]
 [-0.99598935  1.        ]]

क्या किसी को पता है कि यह मामला क्यों है और क्या शास्त्रीय अर्थ में सिर्फ एक मूल्य वापस करना संभव है?


28
आप सम्मान के रूप में नीचे से सबसे अच्छा जवाब टिक कर सकते हैं?
१५'१५

जवाबों:


157

यह आपको उदाहरण के लिए> 2 डेटा सेट के सहसंबंध गुणांक की गणना करने की अनुमति देता है

>>> from numpy import *
>>> a = array([1,2,3,4,6,7,8,9])
>>> b = array([2,4,6,8,10,12,13,15])
>>> c = array([-1,-2,-2,-3,-4,-6,-7,-8])
>>> corrcoef([a,b,c])
array([[ 1.        ,  0.99535001, -0.9805214 ],
       [ 0.99535001,  1.        , -0.97172394],
       [-0.9805214 , -0.97172394,  1.        ]])

यहां हम एक ही बार में बी, (0.995), ए, सी (-0.981) और बी, सी (-0.972) के सहसंबंध गुणांक प्राप्त कर सकते हैं। दो-डेटा-सेट मामला एन-डेटा-सेट वर्ग का एक विशेष मामला है। और शायद उसी रिटर्न प्रकार को रखना बेहतर है। चूंकि "एक मान" बस के साथ प्राप्त किया जा सकता है

>>> corrcoef(a,b)[1,0]
0.99535001355530017

विशेष मामला बनाने का कोई बड़ा कारण नहीं है।


1
उत्कृष्ट उदाहरण, जो स्पष्ट रूप से CORRCOEF की मूल कार्यक्षमता को दर्शाता है (मूल प्रश्न का उत्तर देने के ऊपर और ऊपर)
Hiro

अगर मैं x और y पास करूं तो क्या फॉर्मूला है?
एवगेनी नाबोकोव

53

corrcoef सामान्यीकृत सहसंयोजक मैट्रिक्स लौटाता है।

सहसंयोजक मैट्रिक्स है

Cov( X, X )    Cov( X, Y )

Cov( Y, X )    Cov( Y, Y )

सामान्यीकृत, इससे मैट्रिक्स निकलेगा:

Corr( X, X )    Corr( X, Y )

Corr( Y, X )    Corr( Y, Y )

correlation1[0, 0 ]आपस में Strategy1Returnsऔर खुद के बीच संबंध है, जो 1. होना चाहिए। आप बस चाहते हैं correlation1[ 0, 1 ]


गलियारे (x, y, rowvar = गलत) के लिए सूत्र क्या है, जहां x और y का आकार (150, 4) है? परिणाम मैट्रिक्स 8x8 (क्यों?) है।
एवगेनी नाबोकोव

1
@EvgeniNabokov एक्स और वाई के लिए परिणाम के रूप में अगर वे (150, 8) आकार में hstacked थे। फिर प्रत्येक संयोजन के लिए 1 गलियारा। फॉर्मूला एक ही है (стандартная)।
शेरदीम

6

सहसंबंध मैट्रिक्स चर के एक मनमाने ढंग से परिमित संख्या के बीच सहसंबंध व्यक्त करने का मानक तरीका है। एन डेटा वैक्टर का सहसंबंध मैट्रिक्स एक सममित एन × एन मैट्रिक्स है जिसमें एकता विकर्ण है। केवल N = 2 के मामले में इस मैट्रिक्स में एक मुक्त पैरामीटर है।


2

आप केवल सहसंबंध गुणांक को वापस करने के लिए निम्न फ़ंक्शन का उपयोग कर सकते हैं:

def pearson_r(x, y):
"""Compute Pearson correlation coefficient between two arrays."""

   # Compute correlation matrix
   corr_mat = np.corrcoef(x, y)

   # Return entry [0,1]
   return corr_mat[0,1]

1

Matplotlib.cbook टुकड़ों का उपयोग करने पर विचार करें

उदाहरण के लिए:

import matplotlib.cbook as cbook
segments = cbook.pieces(np.arange(20), 3)
for s in segments:
     print s

अपडेट की आवश्यकता है क्योंकि पुस्तक को हटा दिया गया है।
वान पीयर

1

फ़ंक्शन सहसंबंध सुन्न काम करता है 2 1D सरणियों के साथ जो आप सहसंबंधी बनाना चाहते हैं और एक सहसंबंध मान लौटाते हैं।

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