उदाहरण सहित R में पियर्सन और स्पीयरमैन सहसंबंध मैट्रिक्स

⚡ स्मार्ट सारांश

R में पियर्सन और स्पीयरमैन सहसंबंध दो चरों के बीच परस्पर क्रिया की तीव्रता को मापते हैं, एक जोड़ी के लिए cor() फ़ंक्शन का और कई जोड़ियों के लिए सहसंबंध मैट्रिक्स का उपयोग करते हैं। यह विस्तृत विवरण Hmisc के साथ सार्थकता परीक्षण को शामिल करता है और GGally हीट मैप्स के साथ परिणाम को दर्शाता है।

  • 📐 गुणांक सीमा: प्रत्येक सहसंबंध -1 और 1 के बीच होता है, जहाँ 0 का अर्थ है कोई रैखिक संबंध नहीं और दोनों चरम सीमाएँ एक पूर्ण रैखिक संबंध का संकेत देती हैं।
  • 📈 पियर्सन विधि: यह एक पैरामीट्रिक विधि है, जो रैखिक संबंध को मापती है और लगभग सामान्य सतत चर को मानती है।
  • 🔢 स्पीयरमैन विधि: यह गैर-पैरामीट्रिक है, रैंक पर काम करता है, और आउटलायर्स और तिरछे या क्रमसूचक डेटा के प्रति मजबूत है।
  • 🧮 मैट्रिक्स दृश्य: cor(df) प्रत्येक युग्म गुणांक लौटाता है, और as.dist() केवल निचले त्रिभुज को प्रिंट करता है।
  • 🔬 महत्व: एक जोड़ी के लिए cor.test() या p-मानों के पूर्ण मैट्रिक्स के लिए Hmisc से rcorr() का उपयोग करें।
  • 🎨 दृश्यावलोकन: ggcorr() एक हीट मैप बनाता है और ggpairs() वितरण और स्कैटर प्लॉट का एक पूर्ण मैट्रिक्स बनाता है।

आर में सहसंबंध मैट्रिक्स

आर में द्विचर सहसंबंध

द्विचर संबंध R में दो चरों के बीच संबंध -या सहसंबंध- का वर्णन करता है। इस ट्यूटोरियल में, हम सहसंबंध की अवधारणा पर चर्चा करेंगे और दिखाएंगे कि इसका उपयोग R में किसी भी दो चरों के बीच संबंध को मापने के लिए कैसे किया जा सकता है।

आर प्रोग्रामिंग में सहसंबंध

आर प्रोग्रामिंग में दो चरों के बीच सहसंबंध की गणना करने के लिए दो प्राथमिक विधियाँ हैं:

  • Pearson: पैरामीट्रिक सहसंबंध
  • भाला धारण करनेवाला सिपाही: गैर-पैरामीट्रिक सहसंबंध

आर में पियर्सन सहसंबंध मैट्रिक्स

पियर्सन सहसंबंध विधि का उपयोग आमतौर पर दो चरों के बीच संबंध की प्राथमिक जांच के रूप में किया जाता है।

RSI सहसंबंध गुणांकr (जिसे r लिखा जाता है) किसी चीज की ताकत को मापता है। रैखिक दो चर x और y के बीच संबंध। इसकी गणना निम्न प्रकार से की जाती है:

आर में पियर्सन सहसंबंध मैट्रिक्स

साथ में

  • आर में पियर्सन सहसंबंध मैट्रिक्स x का मानक विचलन है
  • आर में पियर्सन सहसंबंध मैट्रिक्स y का मानक विचलन है

सहसंबंध -1 और 1 के बीच होता है।

  • r का मान शून्य के निकट या उसके बराबर होने का अर्थ है कि x और y के बीच बहुत कम या कोई रैखिक संबंध नहीं है।
  • r जितना 1 या -1 के करीब आएगा, रैखिक संबंध उतना ही मजबूत होगा।

नीचे दिए गए t-सांख्यिकी का उपयोग करके आप यह परीक्षण कर सकते हैं कि r शून्य से भिन्न है या नहीं, इसकी तुलना n – 2 डिग्री ऑफ़ फ़्रीडम वाले स्टूडेंट वितरण से करें:

आर में पियर्सन सहसंबंध मैट्रिक्स

आर में स्पीयरमैन रैंक सहसंबंध

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

स्पीयरमैन का रैंक सहसंबंध, जिसे रो (rho) लिखा जाता है, -1 से 1 तक होता है, और दोनों चरम सीमाओं के निकट के मान एक मजबूत मोनोटोनिक संबंध दर्शाते हैं। इसकी गणना इस प्रकार की जाती है:

आर में स्पीयरमैन रैंक सहसंबंध

अंश x और y की रैंकों के बीच सहप्रसरण है, और हर उनके मानक विचलनों का गुणनफल है।

R में, इन दोनों की गणना cor() फ़ंक्शन से की जाती है, जो तीन तर्क लेता है: x, y और method।

cor(x, y, method)

तर्क:

  • x: पहला वेक्टर
  • y: दूसरा वेक्टर
  • तरीका: सहसंबंध की गणना करने के लिए उपयोग किया जाने वाला सूत्र। तीन स्ट्रिंग मान:
    • “पियरसन”
    • “केंडल”
    • “भालाधारी”

यदि वेक्टर में कोई मान गायब है तो एक वैकल्पिक तर्क जोड़ा जा सकता है: use = “complete.obs”

हम BudgetUK डेटासेट का उपयोग करेंगे। यह डेटासेट 1980 और 1982 के बीच ब्रिटिश परिवारों के बजट आवंटन की रिपोर्ट करता है। इसमें दस विशेषताओं के साथ 1519 अवलोकन हैं, जिनमें से कुछ इस प्रकार हैं:

  • wfood: खाना बाँटें, खर्च बाँटें
  • wफ्यूल: ईंधन व्यय साझा करें
  • वक्लॉथ: कपड़ों पर खर्च के लिए बजट हिस्सा
  • वाल्क: शराब पर खर्च साझा करें
  • wट्रांस: परिवहन व्यय साझा करें
  • वोदर: अन्य वस्तुओं पर व्यय का हिस्सा
  • टोटेक्स्प: कुल घरेलू खर्च पाउंड में
  • आय: कुल शुद्ध घरेलू आय
  • उम्र: घर की आयु
  • के बच्चे : बच्चों की संख्या

उदाहरण

library(dplyr)
PATH <- "https://raw.githubusercontent.com/guru99-edu/R-Programming/master/british_household.csv"
data <- read.csv(PATH) %>%
    filter(income < 500) %>%
    mutate(log_income = log(income),
           log_totexp = log(totexp),
           children_fac = factor(children, order = TRUE, labels = c("No", "Yes"))) %>%
    select(-c(X, X.1, children, totexp, income))
glimpse(data)

Code व्याख्या

  • हम सबसे पहले डेटा को आयात करते हैं और dplyr लाइब्रेरी से glimpse() फ़ंक्शन के साथ देखते हैं।
  • तीन परिवारों ने 500 या उससे अधिक की आय बताई है, इसलिए फ़िल्टर (आय < 500) उन्हें हटा देता है और पंक्तियों की संख्या 1,519 से घटकर 1,516 हो जाती है।
  • मौद्रिक चर को लॉग में बदलना एक आम बात है। इससे आउटलायर्स के प्रभाव को कम करने में मदद मिलती है और डेटासेट में विषमता कम होती है।

आउटपुट:

## Observations: 1,516
## Variables: 10
## $ wfood        <dbl> 0.4272, 0.3739, 0.1941, 0.4438, 0.3331, 0.3752, 0...
## $ wfuel        <dbl> 0.1342, 0.1686, 0.4056, 0.1258, 0.0824, 0.0481, 0...
## $ wcloth       <dbl> 0.0000, 0.0091, 0.0012, 0.0539, 0.0399, 0.1170, 0...
## $ walc         <dbl> 0.0106, 0.0825, 0.0513, 0.0397, 0.1571, 0.0210, 0...
## $ wtrans       <dbl> 0.1458, 0.1215, 0.2063, 0.0652, 0.2403, 0.0955, 0...
## $ wother       <dbl> 0.2822, 0.2444, 0.1415, 0.2716, 0.1473, 0.3431, 0...
## $ age          <int> 25, 39, 47, 33, 31, 24, 46, 25, 30, 41, 48, 24, 2...
## $ log_income   <dbl> 4.867534, 5.010635, 5.438079, 4.605170, 4.605170,...
## $ log_totexp   <dbl> 3.912023, 4.499810, 5.192957, 4.382027, 4.499810,...
## $ children_fac <ord> Yes, Yes, Yes, Yes, No, No, No, No, No, No, Yes, ...

हम "पियरसन" और "स्पीयरमैन" विधियों के साथ आय और खाद्य चर के बीच सहसंबंध गुणांक की गणना कर सकते हैं।

cor(data$log_income, data$wfood, method = "pearson")

आउटपुट:

## [1] -0.2466986
cor(data$log_income, data$wfood, method = "spearman")

आउटपुट:

## [1] -0.2501252

इसे चरों के प्रत्येक जोड़े पर लागू करने से पहले, यह तय करना उचित होगा कि एकल गुणांक को कैसे पढ़ा जाना चाहिए।

सहसंबंध गुणांक की व्याख्या कैसे करें

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

r का निरपेक्ष मान रिश्ते की मजबूती
0.00 से 0.19 तक बहुत कमजोर या बिलकुल नहीं
0.20 से 0.39 तक कमज़ोर
0.40 से 0.59 तक मध्यम
0.60 से 0.79 तक बलवान
0.80 से 1.00 तक बहुत ताकतवर

लॉग_इनकम और wfood के बीच पहले गणना किया गया -0.2467 का मान इसलिए एक कमजोर नकारात्मक संबंध दर्शाता है: धनी परिवार अपने बजट का थोड़ा कम हिस्सा भोजन पर खर्च करते हैं।

प्रत्येक गुणांक पर तीन सावधानियां लागू होती हैं।

  • सहसंबंध कार्य-कारण नहीं है. एक मजबूत r यह बताता है कि दोनों चर एक साथ गति करते हैं, न कि यह कि एक चर दूसरे का कारण बनता है। अक्सर एक तीसरा, अमापनीय चर दोनों को प्रभावित करता है।
  • पियर्सन को केवल सीधी रेखाएँ ही दिखाई देती हैं। एक आदर्श U-आकार का संबंध r का मान शून्य के निकट देता है। संख्या पर भरोसा करने से पहले हमेशा डेटा का ग्राफ बनाएं।
  • महत्व से ज्यादा आकार मायने रखता है। 1,516 प्रेक्षणों के साथ, 0.06 का गुणांक सांख्यिकीय रूप से महत्वपूर्ण हो सकता है और फिर भी व्यावहारिक रूप से अर्थहीन हो सकता है।

cor.test() का उपयोग करके सहसंबंध की सार्थकता का परीक्षण कैसे करें

cor() केवल गुणांक लौटाता है और कुछ नहीं। एकल युग्म के लिए, cor.test() एक ही कॉल में p-मान और विश्वास अंतराल जोड़ता है।

cor.test(data$log_income, data$wfood, method = "pearson")

इस लेख के चार भाग पढ़ने योग्य हैं।

  1. टी और डीएफ: परीक्षण सांख्यिकी और उसकी स्वतंत्रता की डिग्री, n – 2.
  2. पी - मूल्य: यदि वास्तविक सहसंबंध शून्य हो तो इतने बड़े गुणांक को देखने की संभावना।
  3. 95 प्रतिशत विश्वास अंतराल: वास्तविक सहसंबंध की संभावित सीमा। यदि इसमें शून्य शामिल नहीं है, तो उस स्तर पर संबंध महत्वपूर्ण है।
  4. नमूना अनुमान: गुणांक स्वयं, जो cor() द्वारा लौटाए गए मान के समान है।

एक ही तर्क को बदलकर वही फ़ंक्शन रैंक-आधारित परीक्षण चलाता है:

# Spearman rank correlation with a p-value
cor.test(data$log_income, data$wfood, method = "spearman")

# One-sided test: is the correlation greater than zero?
cor.test(data$log_income, data$wfood, alternative = "greater")

किस समय किसका उपयोग करना है। किसी एक विशिष्ट जोड़ी की जांच करते समय cor.test() का उपयोग करें, क्योंकि यह वह कॉन्फिडेंस इंटरवल देता है जिसे rcorr() नहीं देता है। जब आपको एक साथ पूरी मैट्रिक्स के लिए p-मानों की आवश्यकता हो, तो ऊपर दिखाए गए Hmisc से rcorr() का उपयोग करें। ध्यान दें कि कई जोड़ियों का परीक्षण करने से गलत-सकारात्मक दर बढ़ जाती है, इसलिए बड़ी मैट्रिक्स से निष्कर्ष निकालने से पहले p.adjust(p_value, method = “BH”) का उपयोग करके p-मानों को समायोजित करें।

आर में सहसंबंध मैट्रिक्स

द्विचर सहसंबंध एक अच्छी शुरुआत है, लेकिन बहुचर दृष्टिकोण व्यापक तस्वीर प्रदान करता है। सहसम्बंध मैट्रिक्स यह एक वर्गाकार तालिका है जिसमें प्रत्येक चर का दूसरे सभी चर के साथ युग्मवार सहसंबंध दर्शाया गया है।

cor() फ़ंक्शन एक सहसंबंध मैट्रिक्स लौटाता है। द्विचर सहसंबंध के साथ एकमात्र अंतर यह है कि हमें यह निर्दिष्ट करने की आवश्यकता नहीं है कि कौन से चर हैं। डिफ़ॉल्ट रूप से, R सभी चरों के बीच सहसंबंध की गणना करता है।

किसी फैक्टर के लिए सहसंबंध की गणना नहीं की जा सकती है, इसलिए cor() फ़ंक्शन में डेटा फ़्रेम पास करने से पहले प्रत्येक श्रेणीबद्ध कॉलम को हटा दें।

सहसंबंध मैट्रिक्स सममित होता है जिसका अर्थ है कि विकर्ण के ऊपर के मान नीचे वाले मान के समान होते हैं। मैट्रिक्स का आधा भाग दिखाना अधिक दृश्यात्मक होता है।

children_fac को बाहर रखा गया है क्योंकि cor() किसी फैक्टर पर काम नहीं कर सकता।

# the last column of data is a factor level. We don't include it in the code
mat_1 <-as.dist(round(cor(data[,1:9]),2))
mat_1

Code व्याख्या

  • कोर(डेटा[, 1:9])नौ संख्यात्मक स्तंभों पर सहसंबंध मैट्रिक्स की गणना करें।
  • राउंड(…, 2)प्रत्येक गुणांक को दो दशमलव स्थानों तक पूर्णांकित करें।
  • as.dist()केवल निचले त्रिभुज को प्रिंट करें, क्योंकि मैट्रिक्स सममित है।

आउटपुट:

##            wfood wfuel wcloth  walc wtrans wother   age log_income
## wfuel       0.11                                                  
## wcloth     -0.33 -0.25                                            
## walc       -0.12 -0.13  -0.09                                     
## wtrans     -0.34 -0.16  -0.19 -0.22                               
## wother     -0.35 -0.14  -0.22 -0.12  -0.29                        
## age         0.02 -0.05   0.04 -0.14   0.03   0.02                 
## log_income -0.25 -0.12   0.10  0.04   0.06   0.13  0.23           
## log_totexp -0.50 -0.36   0.34  0.12   0.15   0.15  0.21       0.49

महत्व स्तर

गुणांक अपने आप में यह नहीं बताता कि संबंध सांख्यिकीय रूप से विश्वसनीय है या नहीं। Hmisc लाइब्रेरी का rcorr() फ़ंक्शन प्रत्येक जोड़ी के लिए p-मान लौटाता है। हम लाइब्रेरी को यहाँ से डाउनलोड कर सकते हैं। कोंडा और कोड को कॉपी करके टर्मिनल में पेस्ट करें:

conda install -c r r-hmisc

rcorr() को एक डेटा फ़्रेम को मैट्रिक्स के रूप में संग्रहीत करने की आवश्यकता होती है। हम p-मान के साथ सहसंबंध मैट्रिक्स की गणना करने से पहले अपने डेटा को मैट्रिक्स में परिवर्तित कर सकते हैं।

library("Hmisc")
data_rcorr <-as.matrix(data[, 1: 9])

mat_2 <-rcorr(data_rcorr)
# mat_2 <-rcorr(as.matrix(data)) returns the same output

सूची ऑब्जेक्ट mat_2 में तीन तत्व शामिल हैं:

  • r: सहसंबंध मैट्रिक्स का आउटपुट
  • n: अवलोकन की संख्या
  • P: पी-मान

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

p_value <-round(mat_2[["P"]], 3)
p_value

Code व्याख्या

  • mat_2[[“पी”]]: p-मान P नामक तत्व में संग्रहीत होते हैं
  • गोल(mat_2[[“P”]], 3): तत्वों को तीन अंकों में गोल करें

आउटपुट:

           wfood wfuel wcloth  walc wtrans wother   age log_income log_totexp
wfood         NA 0.000  0.000 0.000  0.000  0.000 0.365      0.000          0
wfuel      0.000    NA  0.000 0.000  0.000  0.000 0.076      0.000          0
wcloth     0.000 0.000     NA 0.001  0.000  0.000 0.160      0.000          0
walc       0.000 0.000  0.001    NA  0.000  0.000 0.000      0.105          0
wtrans     0.000 0.000  0.000 0.000     NA  0.000 0.259      0.020          0
wother     0.000 0.000  0.000 0.000  0.000     NA 0.355      0.000          0
age        0.365 0.076  0.160 0.000  0.259  0.355    NA      0.000          0
log_income 0.000 0.000  0.000 0.105  0.020  0.000 0.000         NA          0
log_totexp 0.000 0.000  0.000 0.000  0.000  0.000 0.000      0.000         NA

आर में सहसंबंध मैट्रिक्स का दृश्यीकरण

हीट मैप सहसंबंध मैट्रिक्स को पढ़ने का एक और तरीका है। GGally लाइब्रेरी ggplot2 का विस्तार है और इसे conda के बजाय CRAN से स्थापित किया जाता है:

install.packages("GGally")

सहसंबंध मैट्रिक्स का दृश्यीकरण

लाइब्रेरी में सारांश सांख्यिकी दिखाने के लिए विभिन्न फ़ंक्शन शामिल हैं जैसे कि किसी डेटा में सभी चरों का सहसंबंध और वितरण। मैट्रिक्स.

ggcorr() फ़ंक्शन में बहुत सारे तर्क हैं। हम केवल उन्हीं तर्कों का परिचय देंगे जिनका उपयोग हम ट्यूटोरियल में करेंगे:

Ggcorr फ़ंक्शन

ggcorr(df, method = c("pairwise", "pearson"),
  nbreaks = NULL, digits = 2, low = "#3B9AB2",
  mid = "#EEEEEE", high = "#F21A00",
  geom = "tile", label = FALSE,
  label_alpha = FALSE)

तर्क:

  • df: उपयोग किया गया डेटासेट
  • तरीका: सहसंबंध की गणना करने का सूत्र। डिफ़ॉल्ट रूप से, पेयरवाइज और पियर्सन की गणना की जाती है
  • एनब्रेक्स: गुणांकों के रंग के लिए एक श्रेणीबद्ध सीमा लौटाएँ। डिफ़ॉल्ट रूप से, कोई ब्रेक नहीं होता है और रंग ग्रेडिएंट निरंतर होता है
  • अंक: सहसंबंध गुणांक को पूर्णांकित करें। डिफ़ॉल्ट रूप से, 2 पर सेट करें
  • कम: रंग के निचले स्तर को नियंत्रित करें
  • मध्य: रंग के मध्य स्तर को नियंत्रित करें
  • उच्च: रंग के उच्च स्तर को नियंत्रित करें
  • जियोमो: ज्यामितीय तर्क के आकार को नियंत्रित करें। डिफ़ॉल्ट रूप से, “टाइल”
  • लेबल: बूलियन मान। लेबल प्रदर्शित करें या नहीं। डिफ़ॉल्ट रूप से, `FALSE` पर सेट करें

बुनियादी हीट मैप

पैकेज का सबसे बुनियादी प्लॉट हीट मैप है। ग्राफ का लेजेंड -1 से 1 तक का ग्रेडिएंट रंग दिखाता है, जिसमें हॉट कलर मजबूत सकारात्मक सहसंबंध और कोल्ड कलर नकारात्मक सहसंबंध दर्शाता है।

library(GGally)
ggcorr(data)

Code व्याख्या

  • ggcorr(डेटा): केवल एक तर्क की आवश्यकता है, जो डेटा फ़्रेम नाम है। कारक स्तर चर प्लॉट में शामिल नहीं हैं।

आउटपुट:

बेसिक हीट मैप

हीट मैप पर नियंत्रण जोड़ना

हम ग्राफ़ में और अधिक नियंत्रण जोड़ सकते हैं:

ggcorr(data,
    nbreaks = 6,
    low = "steelblue",
    mid = "white",
    high = "darkred",
    geom = "circle")

Code व्याख्या

  • एनब्रेक्स=6: 6 रैंक के साथ किंवदंती को तोड़ें।
  • कम = “स्टीलब्लू”: नकारात्मक सहसंबंध के लिए हल्के रंगों का उपयोग करें
  • मध्य = “सफेद”: मध्य श्रेणी सहसंबंध के लिए सफेद रंग का उपयोग करें
  • उच्च = “गहरा लाल”सकारात्मक सहसंबंध के लिए गहरे रंगों का उपयोग करें
  • geom = “वृत्त”हीट मैप में खिड़कियों के आकार के रूप में वृत्त का उपयोग करें। वृत्त का आकार सहसंबंध के निरपेक्ष मान के समानुपातिक होता है।

आउटपुट:

हीट मैप पर नियंत्रण जोड़ना

हीट मैप में लेबल जोड़ना

GGally हमें विंडोज़ के अंदर एक लेबल जोड़ने की अनुमति देता है:

ggcorr(data,
    nbreaks = 6,
    label = TRUE,
    label_size = 3,
    color = "grey50")

Code व्याख्या

  • लेबल = सत्य: हीट मैप के अंदर सहसंबंध के गुणांकों के मान जोड़ें।
  • रंग = “ग्रे50”: रंग चुनें, यानी ग्रे
  • लेबल_आकार = 3: लेबल का आकार 3 के बराबर सेट करें

आउटपुट:

हीट मैप में लेबल जोड़ना

ggpairs फ़ंक्शन

GGally लाइब्रेरी ggpairs() फ़ंक्शन भी प्रदान करती है, जो प्लॉट का एक मैट्रिक्स लौटाता है। k चयनित चरों के लिए परिणाम ak गुणा k ग्रिड होता है: विकर्ण प्रत्येक चर का वितरण दर्शाता है, जबकि विकर्ण के ऊपर और नीचे के पैनल अलग-अलग गणनाएँ कर सकते हैं। इसका सिंटैक्स इस प्रकार है:

ggpairs(df, columns = 1:ncol(df), title = NULL,
    upper = list(continuous = "cor"),
    lower = list(continuous = "smooth"),
    mapping = NULL)		

तर्क:

  • df: उपयोग किया गया डेटासेट
  • कॉलम: प्लॉट बनाने के लिए कॉलम चुनें
  • शीर्षक: शीर्षक शामिल करें
  • ऊपरी: प्लॉट के विकर्ण के ऊपर स्थित बॉक्स को नियंत्रित करें। लौटाए जाने वाले गणनाओं या ग्राफ़ का प्रकार बताना आवश्यक है। यदि निरंतर = “cor” है, तो हम R से सहसंबंध की गणना करने के लिए कहते हैं। ध्यान दें कि, तर्क एक सूची होना चाहिए। अन्य तर्क भी उपलब्ध हैं; देखें GGally दस्तावेज़ीकरण देखें।
  • कम: विकर्ण के नीचे स्थित बक्सों को नियंत्रित करें।
  • नक्शाping: ग्राफ के सौंदर्य को दर्शाता है। उदाहरण के लिए, हम विभिन्न समूहों के लिए ग्राफ की गणना कर सकते हैं।

समूह के साथ जीजीपेयर के साथ द्विवरीय विश्लेषणping

अगला ग्राफ तीन जानकारी दर्शाता है:

  • लॉग_टोटेक्स्प, लॉग_इनकम, आयु और wtrans चर के बीच सहसंबंध मैट्रिक्स को इस आधार पर समूहीकृत किया गया है कि घर में बच्चा है या नहीं।
  • समूह द्वारा प्रत्येक चर का वितरण प्लॉट करें
  • समूह के अनुसार प्रवृत्ति के साथ स्कैटर प्लॉट प्रदर्शित करें
library(ggplot2)
ggpairs(data, columns = c("log_totexp", "log_income", "age", "wtrans"), title = "Bivariate analysis of revenue expenditure by the British household", upper = list(continuous = wrap("cor",
        size = 3)),
    lower = list(continuous = wrap("smooth",
        alpha = 0.3,
        size = 0.1)),
    mapping = aes(color = children_fac))

Code व्याख्या

  • कॉलम = c(“log_totexp”, “log_income”, “age”, “wtrans”): ग्राफ़ में दिखाने के लिए चर चुनें
  • शीर्षक = “ब्रिटिश परिवार द्वारा राजस्व व्यय का द्विचर विश्लेषण”: शीर्षक जोड़ें
  • ऊपरी = सूची(): ग्राफ के ऊपरी हिस्से को नियंत्रित करें। यानी विकर्ण के ऊपर
  • निरंतर = लपेटें(“कोर”, आकार = 3)): सहसंबंध के गुणांक की गणना करें। हम ग्राफ के सौंदर्य को नियंत्रित करने के लिए wrap() फ़ंक्शन के अंदर तर्क निरंतर लपेटते हैं (यानी आकार = 3) -निचला = सूची(): ग्राफ के निचले हिस्से को नियंत्रित करें। यानी विकर्ण के नीचे।
  • निरंतर = लपेटें ("चिकनी", अल्फा = 0.3, आकार = 0.1): एक रेखीय प्रवृत्ति के साथ एक स्कैटर प्लॉट जोड़ें। हम ग्राफ के सौंदर्य को नियंत्रित करने के लिए wrap() फ़ंक्शन के अंदर तर्क निरंतर लपेटते हैं (यानी आकार = 0.1, अल्फा = 0.3)
  • नक्शाping = एईएस(रंग = बच्चों का चेहरा)प्रत्येक पैनल को children_fac के आधार पर विभाजित करें, जो बिना बच्चों वाले परिवारों के लिए "नहीं" और बच्चों वाले परिवारों के लिए "हाँ" लेबल वाला क्रमबद्ध कारक है।

आउटपुट:

समूह के साथ जीजीपेयर के साथ द्विवरीय विश्लेषणping

आंशिक समूह के साथ जीजीपेयर के साथ द्विवरीय विश्लेषणping

नीचे दिया गया ग्राफ थोड़ा अलग है। हमने मानचित्र की स्थिति बदल दी है।ping ऊपरी तर्क के अंदर।

ggpairs(data, columns = c("log_totexp", "log_income", "age", "wtrans"),
    title = "Bivariate analysis of revenue expenditure by the British household",
    upper = list(continuous = wrap("cor",
            size = 3),
        mapping = aes(color = children_fac)),
    lower = list(
        continuous = wrap("smooth",
            alpha = 0.3,
            size = 0.1))
)

Code व्याख्या

  • पिछले उदाहरण के समान ही कोड, सिवाय इसके कि:
  • नक्शाping = aes(color = children_fac): ऊपरी भाग में सूची को स्थानांतरित करें = list(). हम केवल ग्राफ के ऊपरी भाग में समूह द्वारा स्टैक्ड गणना चाहते हैं।

आउटपुट:

आंशिक समूह के साथ जीजीपेयर के साथ द्विवरीय विश्लेषणping

R में सहसंबंध: मुख्य बिंदु और कार्य संदर्भ

  • द्विचर संबंध, R में दो चरों के बीच संबंध -या सहसंबंध- का वर्णन करता है।
  • दो चरों के बीच सहसंबंध की गणना करने के लिए दो प्राथमिक विधियाँ हैं R Programming: पियर्सन और स्पीयरमैन.
  • पियर्सन सहसंबंध विधि का उपयोग आमतौर पर दो चरों के बीच संबंध की प्राथमिक जांच के रूप में किया जाता है।
  • रैंक सहसंबंध अवलोकनों को रैंक के आधार पर क्रमबद्ध करता है और रैंक के बीच समानता के स्तर की गणना करता है।
  • स्पीयरमैन का रैंक सहसंबंध -1 से 1 तक होता है, और दोनों चरम सीमाओं के निकट के मान एक मजबूत मोनोटोनिक संबंध को दर्शाते हैं।
  • सहसंबंध मैट्रिक्स एक वर्गाकार सारणी है जिसमें प्रत्येक चर के युग्मवार सहसंबंध को दर्शाया जाता है।
  • पी-वैल्यू आपको यह बताता है कि प्रेक्षित सहसंबंध सांख्यिकीय रूप से शून्य से भिन्न है या नहीं।

इस ट्यूटोरियल में उपयोग किए गए सभी सहसंबंध फ़ंक्शन नीचे सूचीबद्ध हैं:

पुस्तकालय उद्देश्य विधि Code
आधार द्विवरीय सहसंबंध Pearson
cor(dfx2, method = "pearson")
आधार द्विवरीय सहसंबंध भाला धारण करनेवाला सिपाही
cor(dfx2, method = "spearman")
आधार बहुभिन्नरूपी सहसंबंध Pearson
cor(df, method = "pearson")
आधार बहुभिन्नरूपी सहसंबंध भाला धारण करनेवाला सिपाही
cor(df, method = "spearman")
ह्मिसक पी मान -
rcorr(as.matrix(data[,1:9]))[["P"]]
गैली गर्मी के नक्शे -
ggcorr(df)
गैली बहुभिन्नरूपी प्लॉट मैट्रिक्स -
ggpairs(df, columns = c("x1", "x2"))

अक्सर पूछे जाने वाले प्रश्न

स्पीयरमैन विधि का प्रयोग तब किया जाता है जब संबंध मोनोटोनिक हो लेकिन रैखिक न हो, जब आउटलायर्स मौजूद हों, या जब कोई चर ऑर्डिनल हो। पियर्सन विधि रैखिकता और लगभग सामान्य सतत डेटा को मानती है।

केंडल टाऊ विधि अंतरों को क्रमबद्ध करने के बजाय संगत और असंगत युग्मों की गणना करती है। यह कई समानताओं वाले छोटे नमूनों पर स्पीयरमैन विधि की तुलना में अधिक मजबूत है, हालांकि बड़े डेटासेट पर गणना करने में धीमी है।

नहीं। सहसंबंध केवल सह-गति को मापता है। एक भ्रमित करने वाला चर दोनों श्रृंखलाओं को प्रभावित कर सकता है, और किसी भी वास्तविक प्रभाव की दिशा केवल गुणांक से स्थापित नहीं की जा सकती है।

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

जी हां। एआई सहायक यह बता सकते हैं कि कौन से जोड़े एक सीमा से अधिक हैं, अनावश्यक फीचर को हटाने का सुझाव दे सकते हैं और हीट मैप के रंगों की व्याख्या कर सकते हैं। कार्रवाई करने से पहले प्रत्येक दावे की पुष्टि अपने cor.test() आउटपुट से करें।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: