पांडा में सहसंबंध गुणांक का p मान कैसे ज्ञात करें


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

यह सहसंबंध गुणांक हमेशा -1 और 1 के बीच मान लेता है जहां:

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

यह निर्धारित करने के लिए कि सहसंबंध गुणांक सांख्यिकीय रूप से महत्वपूर्ण है या नहीं, आप संबंधित टी-स्कोर और पी-वैल्यू की गणना कर सकते हैं।

सहसंबंध गुणांक (आर) के टी-स्कोर की गणना करने का सूत्र है:

टी = आर√ एन-2 / √ 1-आर 2

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

पांडा में पियर्सन सहसंबंध गुणांक के पी-मान की गणना करने के लिए, आप SciPy लाइब्रेरी से पियर्सनआर() फ़ंक्शन का उपयोग कर सकते हैं:

 from scipy. stats import pearsonr

pearsonr(df[' column1 '], df[' column2 '])

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

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

 def r_pvalues(df):
    cols = pd. DataFrame (columns= df.columns )
    p = cols. transpose (). join (cols, how=' outer ')
    for r in df. columns :
        for c in df. columns :
            tmp = df[df[r]. notnull () & df[c]. notnull ()]
            p[r][c] = round(pearsonr(tmp[r], tmp[c])[1], 4)
    return p

निम्नलिखित उदाहरण दिखाते हैं कि निम्नलिखित पांडा डेटाफ़्रेम के साथ व्यवहार में सहसंबंध गुणांक के लिए पी-मानों की गणना कैसे करें:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' x ': [4, 5, 5, 7, 8, 10, 12, 13, 14, 15],
                   ' y ': [10, 12, 14, 18, np.nan, 19, 13, 20, 14, np.nan],
                   ' z ': [20, 24, 24, 23, 19, 15, 18, 14, 10, 12]})

#view DataFrame
print (df)

    X Y Z
0 4 10.0 20
1 5 12.0 24
2 5 14.0 24
3 7 18.0 23
4 8 NaN 19
5 10 19.0 15
6 12 13.0 18
7 13 20.0 14
8 14 14.0 10
9 15 NaN 12

उदाहरण 1: पांडा में दो स्तंभों के बीच सहसंबंध गुणांक के लिए पी मान की गणना करें

निम्नलिखित कोड दिखाता है कि डेटाफ़्रेम के x और y कॉलम के लिए पियर्सन सहसंबंध गुणांक और संबंधित पी-मान की गणना कैसे करें:

 from scipy. stats import pearsonr

#drop all rows with NaN values
df_new = df. dropna ()

#calculation correlation coefficient and p-value between x and y
pearsonr(df_new[' x '], df_new[' y '])

PearsonRResult(statistic=0.4791621985883838, pvalue=0.22961622926360523)

परिणाम से हम देख सकते हैं:

  • पियर्सन सहसंबंध गुणांक 0.4792 है।
  • संगत पी-मान 0.2296 है।

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

हालाँकि, चूँकि सहसंबंध गुणांक का पी-मान 0.05 से कम नहीं है, इसलिए सहसंबंध सांख्यिकीय रूप से महत्वपूर्ण नहीं है।

ध्यान दें कि सहसंबंध गुणांक से पी-मान निकालने के लिए हम निम्नलिखित सिंटैक्स का भी उपयोग कर सकते हैं:

 #extract p-value of correlation coefficient
pearsonr(df_new[' x '], df_new[' y '])[1]

0.22961622926360523

सहसंबंध गुणांक के लिए पी-मान 0.2296 है।

यह पिछले आउटपुट के पी-वैल्यू से मेल खाता है।

उदाहरण 2: पांडा में सभी स्तंभों के बीच सहसंबंध गुणांक के लिए पी मान की गणना करें

निम्नलिखित कोड दिखाता है कि पांडा डेटाफ़्रेम में स्तंभों के प्रत्येक जोड़ीदार संयोजन के लिए पियर्सन सहसंबंध गुणांक और संबंधित पी-मान की गणना कैसे करें:

 #create function to calculate p-values for each pairwise correlation coefficient
def r_pvalues(df):
    cols = pd. DataFrame (columns= df.columns )
    p = cols. transpose (). join (cols, how=' outer ')
    for r in df. columns :
        for c in df. columns :
            tmp = df[df[r]. notnull () & df[c]. notnull ()]
            p[r][c] = round(pearsonr(tmp[r], tmp[c])[1], 4)
    return p

#use custom function to calculate p-values
r_pvalues(df)

             X Y Z
x 0.0 0.2296 0.0005
y 0.2296 0.0 0.4238
z 0.0005 0.4238 0.0

परिणाम से हम देख सकते हैं:

  • x और y के बीच सहसंबंध गुणांक के लिए p-मान 0.2296 है।
  • x और z के बीच सहसंबंध गुणांक के लिए p-मान 0.0005 है।
  • y और z के बीच सहसंबंध गुणांक के लिए p-मान 0.4238 है।

ध्यान दें कि हमने अपने कस्टम फ़ंक्शन में पी-मानों को चार दशमलव स्थानों तक पूर्णांकित किया है।

दशमलव स्थानों की एक अलग संख्या में पूर्णांकित करने के लिए फ़ंक्शन की अंतिम पंक्ति में 4 को एक अलग संख्या से बदलने के लिए स्वतंत्र महसूस करें।

नोट : आप SciPy pearsonr() फ़ंक्शन के लिए संपूर्ण दस्तावेज़ यहां पा सकते हैं।

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

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

पांडा में समूह द्वारा सहसंबंध की गणना कैसे करें
पांडा में स्लाइडिंग सहसंबंध की गणना कैसे करें
पांडा में स्पीयरमैन रैंक सहसंबंध की गणना कैसे करें

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

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