पायथन में सहसंबंध की गणना कैसे करें


दो चरों के बीच संबंध को मापने का एक तरीका पियर्सन सहसंबंध गुणांक का उपयोग करना है, जो दो चरों के बीच रैखिक संबंध का एक माप है यह हमेशा -1 और 1 के बीच मान लेता है जहां:

  • -1 दो चरों के बीच पूर्णतः नकारात्मक रैखिक सहसंबंध दर्शाता है
  • 0 दो चरों के बीच कोई रैखिक सहसंबंध नहीं दर्शाता है
  • 1 दो चरों के बीच पूर्णतः सकारात्मक रैखिक सहसंबंध दर्शाता है

सहसंबंध गुणांक शून्य से जितना अधिक होगा, दोनों चरों के बीच संबंध उतना ही मजबूत होगा।

यह ट्यूटोरियल बताता है कि पायथन में वेरिएबल्स के बीच सहसंबंध की गणना कैसे करें।

पायथन में सहसंबंध की गणना कैसे करें

पायथन में दो वेरिएबल्स के बीच सहसंबंध की गणना करने के लिए, हम Numpy corrcoef() फ़ंक्शन का उपयोग कर सकते हैं।

 import numpy as np

np.random.seed(100)

#create array of 50 random integers between 0 and 10
var1 = np.random.randint(0, 10, 50)

#create a positively correlated array with some random noise
var2 = var1 + np.random.normal(0, 10, 50)

#calculate the correlation between the two arrays
np.corrcoef(var1, var2)

[[ 1. 0.335]
[ 0.335 1. ]]

यह देखा जा सकता है कि इन दोनों चरों के बीच सहसंबंध गुणांक 0.335 है, जो एक सकारात्मक सहसंबंध है।

डिफ़ॉल्ट रूप से, यह फ़ंक्शन सहसंबंध गुणांक का एक मैट्रिक्स उत्पन्न करता है। यदि हम केवल दो चरों के बीच सहसंबंध गुणांक लौटाना चाहते हैं, तो हम निम्नलिखित वाक्यविन्यास का उपयोग कर सकते हैं:

 np.corrcoef(var1, var2)[0,1]

0.335

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

 from scipy.stats.stats import pearsonr

pearsonr(var1, var2)

(0.335, 0.017398)

सहसंबंध गुणांक 0.335 है और दो-पूंछ वाला पी-मान 0.017 है। चूँकि यह पी-मान 0.05 से कम है, हम यह निष्कर्ष निकालेंगे कि दोनों चरों के बीच सांख्यिकीय रूप से महत्वपूर्ण सहसंबंध है।

यदि आप पांडा डेटाफ़्रेम में एकाधिक चर के बीच सहसंबंध की गणना करना चाहते हैं, तो आप बस .corr() फ़ंक्शन का उपयोग कर सकते हैं।

 import pandas as pd

data = pd.DataFrame(np.random.randint(0, 10, size=(5, 3)), columns=['A', 'B', 'C'])
data

  ABC
0 8 0 9
1 4 0 7
2 9 6 8
3 1 8 1
4 8 0 8

#calculate correlation coefficients for all pairwise combinations
data.corr()

          ABC
A 1.000000 -0.775567 -0.493769
B -0.775567 1.000000 0.000000
C -0.493769 0.000000 1.000000

और यदि आप डेटाफ़्रेम में केवल दो विशिष्ट चरों के बीच सहसंबंध की गणना करना चाहते हैं, तो आप चर निर्दिष्ट कर सकते हैं:

 data['A'].corr(data['B'])

-0.775567

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि पायथन में अन्य सामान्य कार्य कैसे करें:

पायथन में सहसंबंध मैट्रिक्स कैसे बनाएं
पायथन में स्पीयरमैन रैंक सहसंबंध की गणना कैसे करें
पायथन में ऑटोसहसंबंध की गणना कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *