मुख्य सामग्री पर जाएं

R सह सहसंबंध ट्यूटोरियल

R में सहसंबंध की बुनियादी बातें जानें: सहसंबंध गुणांक, सहसंबंध मैट्रिक्स, सहसंबंध का प्लॉट बनाना आदि।
अपडेट किया गया 25 सित॰ 2026  · 13 मि॰ पढ़ें

AI के साथ खोजें

ChatGPTClaudePerplexity

correlation

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

बिल्कुल सही, आप सहसंबंध और प्रतिगमन जैसे अवधारणाओं पर ध्यान केंद्रित करेंगे! सबसे पहले, आप R में सहसंबंध से परिचित होंगे। फिर, आप देखेंगे कि ggplot2 और GGally जैसे पैकेजों का उपयोग करके R में सहसंबंध मैट्रिक्स कैसे प्लॉट करें। अंत में, आप देखेंगे कि किस प्रकार के सहसंबंध मौजूद होते हैं और वे आपके आगे के विश्लेषण के लिए कैसे मायने रखते हैं।

यदि आप इस विषय में और गहराई तक जाना चाहते हैं, तो DataCamp का Correlation and Regression कोर्स लेने पर विचार करें।

पृष्ठभूमि

आज के ट्यूटोरियल में, आप Kaggle से प्राप्त फिल्मों के डेटा सेट के साथ काम करेंगे ताकि यह जाना जा सके कि चर के बीच संबंधों को बेहतर ढंग से कैसे समझा जा सकता है।

मैंने डेटा को हल्के-फुल्के रूप में संवार दिया है ताकि हमारी विश्लेषणात्मक तुलना एक जैसी इकाइयों पर आधारित हो, जैसे कि मुद्रा एक ही यूनिट में हो। इस चरण के बिना, gross, budget और profit जैसे चरों का हमारा सांख्यिकीय विश्लेषण भ्रामक हो सकता था। आप मूल डेटा सेट तक पहुंच सकते हैं।

डेटा आयात करना

movies डेटा सेट तक पहुंचने और उसका उपयोग करने के लिए, आप read.csv() फ़ंक्शन का उपयोग करके अपने डेटा को एक डेटा फ्रेम में आयात कर सकते हैं और उसे movies जैसे अत्यंत मौलिक नाम वाले वेरिएबल में स्टोर कर सकते हैं!

movies <- read.csv(url("http://s3.amazonaws.com/dcwoods2717/movies.csv"))

शुरू करने के लिए बस इतना ही काफी है!

अपने डेटा का बुनियादी निरीक्षण

डेटा फ्रेम आयात हो जाने के बाद, अपने डेटा का एक प्रारंभिक अंदाज़ा लगाना अच्छा रहता है। सबसे पहले, उस डेटा की संरचना देखें जिसका परीक्षण किया जा रहा है। नीचे आप इस बेहद सरल और उपयोगी फ़ंक्शन str() का उपयोग करने के नतीजे देख सकते हैं:

str(movies)
## 'data.frame':    2961 obs. of  11 variables:
##  $ title              : Factor w/ 2907 levels "10 Cloverfield Lane",..: 1560 2143 34 2687 1405 1896 2633 894 1604 665 ...
##  $ genre              : Factor w/ 17 levels "Action","Adventure",..: 6 12 5 5 5 3 2 8 3 8 ...
##  $ director           : Factor w/ 1366 levels "Aaron Schneider",..: 474 472 781 828 175 1355 1328 1328 968 747 ...
##  $ year               : int  1920 1929 1933 1935 1936 1937 1939 1939 1940 1946 ...
##  $ duration           : int  110 100 89 81 87 83 102 226 88 144 ...
##  $ gross              : int  3000000 2808000 2300000 3000000 163245 184925485 22202612 198655278 84300000 20400000 ...
##  $ budget             : int  100000 379000 439000 609000 1500000 2000000 2800000 3977000 2600000 8000000 ...
##  $ cast_facebook_likes: int  4 109 995 824 352 229 2509 1862 1178 2037 ...
##  $ votes              : int  5 4546 7921 13269 143086 133348 291875 215340 90360 6304 ...
##  $ reviews            : int  2 107 162 164 331 349 746 863 252 119 ...
##  $ rating             : num  4.8 6.3 7.7 7.8 8.6 7.7 8.1 8.2 7.5 6.9 ...

इस विशेष डेटा फ्रेम में, आप कंसोल से देख सकते हैं कि 11 चरों के 2961 प्रेक्षण मौजूद हैं।

एक परिशिष्ट के तौर पर, भले ही हर फिल्म सिर्फ एक घंटे की होती, फिर भी आपको इन्हें सभी देखने के लिए चार महीने से ज्यादा लगातार फिल्में देखनी पड़तीं!

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

एक और बढ़िया फ़ंक्शन जो हमारे डेटा फ्रेम का तेज, उच्च-स्तरीय अवलोकन करने में मदद करता है, वह है summary()। str() चलाने से उत्पन्न आउटपुट के साथ समानताएं और भिन्नताएं नोट करें।

summary(movies)
##                          title            genre    
##  Home                       :   3   Comedy   :848  
##  A Nightmare on Elm Street  :   2   Action   :738  
##  Across the Universe        :   2   Drama    :498  
##  Alice in Wonderland        :   2   Adventure:288  
##  Aloha                      :   2   Crime    :202  
##  Around the World in 80 Days:   2   Biography:135  
##  (Other)                    :2948   (Other)  :252  
##               director         year         duration    
##  Steven Spielberg :  23   Min.   :1920   Min.   : 37.0  
##  Clint Eastwood   :  19   1st Qu.:1999   1st Qu.: 95.0  
##  Martin Scorsese  :  16   Median :2004   Median :106.0  
##  Tim Burton       :  16   Mean   :2003   Mean   :109.6  
##  Spike Lee        :  15   3rd Qu.:2010   3rd Qu.:119.0  
##  Steven Soderbergh:  15   Max.   :2016   Max.   :330.0  
##  (Other)          :2857                                 
##      gross               budget          cast_facebook_likes
##  Min.   :      703   Min.   :      218   Min.   :     0     
##  1st Qu.: 12276810   1st Qu.: 11000000   1st Qu.:  2241     
##  Median : 34703228   Median : 26000000   Median :  4604     
##  Mean   : 58090401   Mean   : 40619384   Mean   : 12394     
##  3rd Qu.: 75590286   3rd Qu.: 55000000   3rd Qu.: 16926     
##  Max.   :760505847   Max.   :300000000   Max.   :656730     
##                                                             
##      votes            reviews           rating     
##  Min.   :      5   Min.   :   2.0   Min.   :1.600  
##  1st Qu.:  19918   1st Qu.: 199.0   1st Qu.:5.800  
##  Median :  55749   Median : 364.0   Median :6.500  
##  Mean   : 109308   Mean   : 503.3   Mean   :6.389  
##  3rd Qu.: 133348   3rd Qu.: 631.0   3rd Qu.:7.100  
##  Max.   :1689764   Max.   :5312.0   Max.   :9.300  
## 

सिर्फ एक कमांड से, आपने R से हमारे डेटा फ्रेम के प्रत्येक चर के लिए कुछ प्रमुख सांख्यिकीय जानकारी प्राप्त कर ली। अब जबकि आपको पता है कि आप किसके साथ काम कर रहे हैं, चलिए थोड़ा और गहराई में जाकर डेटा का अन्वेषण करते हैं!

फ़ीचर इंजीनियरिंग: लाभ की गणना

उपलब्ध चरों की समीक्षा करने पर, लगता है कि कुछ संख्यात्मक चरों में हेर-फेर करके हमारे डेटा फ्रेम के बारे में नए निष्कर्ष निकाले जा सकते हैं।

उदाहरण के लिए, आपके पास gross और budget चर हैं, तो क्यों न थोड़ा सबसेटिंग करके हर फिल्म का लाभ निकाल लिया जाए?

आप सूत्र profit = gross - budget का उपयोग करके लाभ की गणना कर सकते हैं। नीचे दिए गए DataCamp Light खंड में इसे आज़माएँ!

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6Im1vdmllcyA8LSByZWFkLmNzdih1cmwoXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kY3dvb2RzMjcxNy9tb3ZpZXMuY3N2XCIpKSIsInNhbXBsZSI6IiMgRmlsbCBpbiB0aGUgYXBwcm9wcmlhdGUgdmFyaWFibGUgbmFtZXMgdG8gc3Vic2V0IVxucHJvZml0IDwtIG1vdmllcyQuLi4uLiAtIG1vdmllcyQuLi4uLlxuXG4jIENoZWNrIHRoZSByZXN1bHRcbnN1bW1hcnkocHJvZml0KSIsInNvbHV0aW9uIjoiIyBGaWxsIGluIHRoZSBhcHByb3ByaWF0ZSB2YXJpYWJsZSBuYW1lcyB0byBzdWJzZXQhXG5wcm9maXQgPC0gbW92aWVzJGdyb3NzIC0gbW92aWVzJGJ1ZGdldFxuXG4jIENoZWNrIHRoZSByZXN1bHRcbnN1bW1hcnkocHJvZml0KSIsInNjdCI6InRlc3Rfb2JqZWN0KFwicHJvZml0XCIsIHVuZGVmaW5lZF9tc2c9XCJEaWQgeW91IGNvcnJlY3RseSBkZWZpbmUgdGhlIHZhcmlhYmxlIGBwcm9maXRgP1wiLCBpbmNvcnJlY3RfbXNnID0gXCJOb3QgcXVpdGUhXCIpXG50ZXN0X2Vycm9yKClcbnN1Y2Nlc3NfbXNnKFwiRXhjZWxsZW50IVwiKSJ9

कमाल!

आप देख सकते हैं कि हमारे डेटा फ्रेम में काफी कमाने वाली और काफी डुबाने वाली दोनों तरह की फिल्में हैं।

हमारी फिल्मों का profit आगे कुछ दिलचस्प विश्लेषणों में काम आ सकता है, तो आइए profit को हमारे डेटा फ्रेम में एक नए कॉलम के रूप में जोड़ दें।

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6Im1vdmllcyA8LSByZWFkLmNzdihcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2Rjd29vZHMyNzE3L21vdmllcy5jc3ZcIikiLCJzYW1wbGUiOiIjIEFkZCBhIGNvbHVtbiBmb3IgYHByb2ZpdGAgdG8gYG1vdmllc2AgXG5tb3ZpZXMkLi4uLi4gPC0gbW92aWVzJC4uLi4uIC0gbW92aWVzJC4uLi4uIiwic29sdXRpb24iOiIjIEFkZCBhIGNvbHVtbiBmb3IgYHByb2ZpdGAgdG8gYG1vdmllc2Bcbm1vdmllcyRwcm9maXQgPC0gbW92aWVzJGdyb3NzIC0gbW92aWVzJGJ1ZGdldCJ9

सहसंबंध

अब जब profit को हमारे डेटा फ्रेम में एक नए कॉलम के रूप में जोड़ दिया गया है, तो आपके डेटा सेट के चरों के बीच संबंधों पर करीब से नज़र डालने का समय है।

आइए देखें कि प्रत्येक फिल्म की rating के सापेक्ष profit कैसे बदलता है।

इसके लिए, आप R के अंतर्निहित plot और abline फ़ंक्शनों का उपयोग कर सकते हैं, जहाँ plot एक स्कैटर प्लॉट बनाएगा और abline एक प्रतिगमन रेखा या “line of best fit” जोड़ेगा, क्योंकि हमने नीचे दिखाए अनुसार लीनियर मॉडल आर्ग्यूमेंट शामिल किया है।

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6Im1vdmllcyA8LSByZWFkLmNzdih1cmwoXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kY3dvb2RzMjcxNy9tb3ZpZXMuY3N2XCIpKVxubW92aWVzJHByb2ZpdCA8LSBtb3ZpZXMkZ3Jvc3MgLSBtb3ZpZXMkYnVkZ2V0XG5vcHRpb25zKHNjaXBlbiA9IDk5OSkiLCJzYW1wbGUiOiIjIENyZWF0ZSB0aGUgc2NhdHRlciBwbG90IHdpdGggYHJhdGluZ3NgIG9uIHRoZSB4LWF4aXMgYW5kIGBwcm9maXRgIG9uIHRoZSB5LWF4aXNcbnBsb3QobW92aWVzJC4uLi4sIG1vdmllcyQuLi4uKVxuXG4jIEFkZCBhIHJlZ3Jlc3Npb24gbGluZXdpdGggdGhlIGZvcm0gYGFibGluZShsbSh5IH4geCkpYFxuXG5hYmxpbmUobG0obW92aWVzJC4uLi4gfiBtb3ZpZXMkLi4uLikpIiwic29sdXRpb24iOiIjIENyZWF0ZSB0aGUgc2NhdHRlciBwbG90IHdpdGggYHJhdGluZ3NgIG9uIHRoZSB4LWF4aXMgYW5kIGBwcm9maXRgIG9uIHRoZSB5LWF4aXNcbnBsb3QobW92aWVzJHJhdGluZywgbW92aWVzJHByb2ZpdClcblxuIyBBZGQgYSByZWdyZXNzaW9uIGxpbmUgd2l0aCB0aGUgZm9ybSBgYWJsaW5lKGxtKHkgfiB4KSlgIFxuYWJsaW5lKGxtKG1vdmllcyRwcm9maXQgfiBtb3ZpZXMkcmF0aW5nKSkifQ==

क्या आउटपुट लगभग वैसा ही था जैसा आपने सोचा था?

R regression

आम तौर पर, लगता है कि जिन फिल्मों की rating अधिक है, उनका profit भी अधिक होता है। इस कथन को दूसरे तरीके से कहें तो कम से कम हमारे डेटा फ्रेम में rating और profit के बीच एक सकारात्मक सहसंबंध मौजूद है।

यह कहा जाए तो भी, प्लॉट पर एक सरसरी नज़र डालते ही दिखता है कि बहुत-सी उच्च रेटिंग वाली फिल्में भी ब्लॉकबस्टर नहीं थीं, और कई बहुत लाभदायक फिल्में तुलनात्मक रूप से कम रेटिंग पाईं।

Correlation का अर्थ Causation नहीं होता!

सहसंबंध बनाम कारणता को समझने में मदद के लिए एक किस्सा: मैं समुद्र तट पर आइसक्रीम स्टॉल चलाता हूँ। शहर में जेवॉकर्स की औसत संख्या तब बढ़ती है जब मेरी आइसक्रीम की बिक्री बढ़ती है, पर क्या मेरी आइसक्रीम लोगों को ट्रैफिक नियम तोड़ने पर मजबूर कर रही है, या कोई और कारक काम कर रहा है? मेरी आइसक्रीम यकीनन बेहतरीन है, लेकिन बाहर की धूप शायद लोगों की आइसक्रीम चाहत और क्रॉसवॉक पर धूप में खड़े रहने से बचने की आदत दोनों में भूमिका निभाती है। मेरी आइसक्रीम बिक्री और जेवॉकर्स की संख्या के बीच एक संबंध (सहसंबंध) तो है, लेकिन आप इसे निर्णायक रूप से कारणात्मक नहीं कह सकते।

जैसे-जैसे आप इस ट्यूटोरियल में आगे बढ़ें, इस तर्क को ध्यान में रखें!

R में सहसंबंध की गणना

तो movies के चरों के बीच किस प्रकार के संबंध मौजूद हैं, और आप उन्हें मात्रात्मक रूप से कैसे आंक सकते हैं?

पहला तरीका है cor() के साथ सहसंबंध और सहसंबंध मैट्रिक्स बनाना:

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6Im1vdmllcyA8LSByZWFkLmNzdihcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2Rjd29vZHMyNzE3L21vdmllcy5jc3ZcIilcbm1vdmllcyRwcm9maXQgPC0gbW92aWVzJGdyb3NzIC0gbW92aWVzJGJ1ZGdldFxub3B0aW9ucyhzY2lwZW4gPSA5OTkpIiwic2FtcGxlIjoiIyBDb21wdXRlIFBlYXJzb24gY29ycmVsYXRpb25cbmNvcihtb3ZpZXMkcmF0aW5nLCBtb3ZpZXMkcHJvZml0KVxuXG4jIENvcnJlbGF0aW9uIE1hdHJpeFxuY29yKG1vdmllc1ssNDoxMF0pIn0=

ध्यान दें कि आप method भी निर्दिष्ट कर सकते हैं ताकि यह बताया जा सके कि आप कौन-सा सहसंबंध गुणांक निकालना चाहते हैं। सावधान रहें, क्योंकि इन सहसंबंधों के साथ कुछ मान्यताएँ हमेशा जुड़ी होती हैं: Kendall और Spearman विधियाँ केवल क्रमबद्ध इनपुट के लिए ही समझ में आती हैं। इसका मतलब है कि सहसंबंध गुणांक की गणना करने से पहले आपको अपने डेटा को क्रमबद्ध करना होगा।

इसके अलावा, डिफ़ॉल्ट विधि Pearson सहसंबंध मानती है कि आपके चर सामान्य रूप से वितरित हैं, प्रत्येक चर के बीच एक सीधी रेखीय संबंध है, और डेटा प्रतिगमन रेखा के आसपास सामान्य रूप से वितरित है।

यह भी ध्यान दें कि आप rcorr() का उपयोग कर सकते हैं, जो Hmisc पैकेज का हिस्सा है, Pearson और Spearman सहसंबंधों के महत्व स्तरों की गणना करने के लिए।

आप यह भी देखेंगे कि सहसंबंध मैट्रिक्स वास्तव में एक तालिका है जो चरों के समूहों के बीच सहसंबंध गुणांक दिखाती है। यह पहले से ही यह समझने का एक अच्छा तरीका है कि आपके डेटा सेट के चरों के बीच कौन-से संबंध मौजूद हैं, लेकिन अगले खंड में इसे थोड़ा और गहराई से देखते हैं।

दृश्य रूप से सहसंबंध का अन्वेषण: R सहसंबंध मैट्रिक्स

अगले अन्वेषण में, आप अपने movies डेटा फ्रेम में उपलब्ध चरों का उपयोग करके एक सहसंबंध मैट्रिक्स प्लॉट करेंगे। यह साधारण प्लॉट आपको तेजी से दिखा देगा कि किन चरों का अन्य चरों के साथ नकारात्मक, सकारात्मक, कमजोर या मजबूत सहसंबंध है।

इसे करने के लिए, आप GGally नामक एक बढ़िया पैकेज और ggcorr() नामक फ़ंक्शन का उपयोग करेंगे।

इस फ़ंक्शन कॉल का रूप ggcorr(df) होगा, जहाँ df उस डेटा फ्रेम का नाम है जिस पर आप फ़ंक्शन चला रहे हैं। इस फ़ंक्शन का आउटपुट एक त्रिकोणीय, रंग-कोडित मैट्रिक्स होगा जिस पर हमारे चर के नाम लेबल होंगे। प्रत्येक चर का अन्य चरों के सापेक्ष सहसंबंध गुणांक मैट्रिक्स में उसकी स्थिति के अनुसार क्षैतिज और/या लंबवत पढ़कर पाया जा सकता है।

यह सुनने में उलझन भरा लग सकता है, लेकिन व्यवहार में यह बहुत सरल है, तो नीचे दिए गए कोड खंड में इसे आज़माएँ!

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6Im1vdmllcyA8LSByZWFkLmNzdih1cmwoXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS8vZGN3b29kczI3MTcvbW92aWVzLmNzdlwiKSlcbm1vdmllcyRwcm9maXQgPC0gbW92aWVzJGdyb3NzIC0gbW92aWVzJGJ1ZGdldFxubGlicmFyeShcIkdHYWxseVwiKSIsInNhbXBsZSI6IiMgUmVwbGFjZSB0aGUgXCIuLi4uLlwiIHdpdGggdGhlIG5hbWUgb2YgdGhlIGRhdGEgZnJhbWUgXG5nZ2NvcnIoLi4uLi4pIiwic29sdXRpb24iOiIjIFJlcGxhY2UgdGhlIFwiLi4uLi5cIiB3aXRoIHRoZSBuYW1lIG9mIHRoZSBkYXRhIGZyYW1lIFxuZ2djb3JyKG1vdmllcykifQ==

correlation coefficient

तो अभी आपने जो सहसंबंध मैट्रिक्स बनाया है (वैसे शानदार काम!), उसमें आप किसी भी चर जैसे year से संबद्ध पंक्ति या स्तंभ में जा सकते हैं और दूसरे चर के साथ संबद्ध सेल के रंग से उसका सहसंबंध गुणांक देख सकते हैं।

उदाहरण के लिए, year की जाँच में, आप देख सकते हैं कि budget के साथ एक कमजोर, सकारात्मक सहसंबंध है और rating के साथ इसी तरह एक कमजोर, नकारात्मक सहसंबंध है।

सहसंबंध गुणांक हमेशा -1 और 1 के बीच (दोनों सहित) होते हैं। -1 का सहसंबंध गुणांक एक परिपूर्ण, नकारात्मक फिट को इंगित करता है जिसमें x-वैल्यू बढ़ने पर y-वैल्यू उसी दर से घटती हैं। 1 का सहसंबंध गुणांक एक परिपूर्ण, सकारात्मक फिट को इंगित करता है जिसमें y-वैल्यू उसी दर से बढ़ती हैं जिस दर से x-वैल्यू बढ़ती हैं।

अधिकांश मामलों में, जैसे आपके ऊपर दिए year उदाहरण में, सहसंबंध गुणांक -1 और 1 के बीच कहीं होगा।

क्या आपने सहसंबंध मैट्रिक्स में दिखाए गए चरों के बारे में कुछ अजीब सा नोटिस किया?

movies के सभी चर मौजूद नहीं हैं!

ऐसा इसलिए है क्योंकि movies के सभी चर संख्यात्मक नहीं हैं। ggcorr फ़ंक्शन स्वतः ही गैर-संख्यात्मक चरों को अलग रख देता है, जिससे मैट्रिक्स बनाने से पहले ऐसे चरों को “सबसेट करके निकालने” की ज़रूरत उपयोगकर्ता को नहीं पड़ती और समय बचता है।

यदि आप चाहते हैं कि आपका सहसंबंध मैट्रिक्स सचमुच “उभरकर” दिखे (या आप मेरी तरह थोड़ा कलरब्लाइंड हैं), तो कुछ सरल ट्यूनिंग से आप और अधिक दृष्टि-पकड़ने वाले, डेटा-सम्पन्न मैट्रिक्स बना सकते हैं।

अगले कोड खंड में, आपने label आर्ग्यूमेंट शामिल किया है, जिसे TRUE या FALSE पर सेट किया जा सकता है। डिफ़ॉल्ट सेटिंग FALSE है, लेकिन यदि आप label = TRUE जोड़ते हैं, तो प्रत्येक संबंध का सहसंबंध गुणांक उपयुक्त सेल में शामिल हो जाता है। इससे आपको रंग स्केल के आधार पर प्रत्येक गुणांक का मान अनुमान लगाने की ज़रूरत नहीं पड़ती।

label_alpha आर्ग्यूमेंट आपको सहसंबंध गुणांक की ताकत के आधार पर प्रत्येक लेबल की अपारदर्शिता बढ़ाने या घटाने देता है। यह तेज़, दृश्य डेटा विश्लेषण में बहुत उपयोगी है।

मेरी बात पर न जाएँ, खुद आज़माएँ!

अब एक बेहतर सहसंबंध मैट्रिक्स प्लॉट करते हैं:

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6Im1vdmllcyA8LSByZWFkLmNzdih1cmwoXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS8vZGN3b29kczI3MTcvbW92aWVzLmNzdlwiKSlcbm1vdmllcyRwcm9maXQgPC0gbW92aWVzJGdyb3NzIC0gbW92aWVzJGJ1ZGdldFxubGlicmFyeShcIkdHYWxseVwiKSIsInNhbXBsZSI6IiMgRmlsbCBpbiBcIlRSVUVcIiBvciBcIkZBTFNFXCIgdG8gc2VlIGhvdyB0aGUgY29ycmVsYXRpb24gbWF0cml4IGNoYW5nZXNcbmdnY29ycihtb3ZpZXMsIFxuICAgICAgIGxhYmVsID0gLi4uLi4sIFxuICAgICAgIGxhYmVsX2FscGhhID0gLi4uLi4pIiwic29sdXRpb24iOiIjIEZpbGwgaW4gXCJUUlVFXCIgb3IgXCJGQUxTRVwiIHRvIHNlZSBob3cgdGhlIGNvcnJlbGF0aW9uIG1hdHJpeCBjaGFuZ2VzXG5nZ2NvcnIobW92aWVzLCBcbiAgICAgICBsYWJlbCA9IFRSVUUsIFxuICAgICAgIGxhYmVsX2FscGhhID0gVFJVRSkifQ==

correlation coefficient

आगे के प्लॉट्स में, आप देखेंगे कि जब “मजबूत” सहसंबंध वाला प्लॉट बनता है, तो उसकी प्रतिगमन रेखा (x/y) का ढाल 1/1 या -1/1 के अधिक करीब होता है, जबकि “कमजोर” सहसंबंध वाले प्लॉट में प्रतिगमन रेखा का ढाल बहुत कम हो सकता है। 1/1 या -1/1 के करीब ढाल का अर्थ है कि प्लॉट किए गए दोनों चर एक-दूसरे से काफ़ी निकटता से संबंधित हैं।

हमारे movies डेटा फ्रेम के मामले में, ऐसी प्रतिगमन रेखा आपके चरों की प्रकृति के बारे में उपयोगी अंतर्दृष्टि दे सकती है और उनके परस्पर निर्भर होने का संकेत दे सकती है।

उदाहरण के लिए, आपके पिछले rating पर profit के प्लॉट में आपने देखा कि प्रतिगमन रेखा का ढाल मध्यम और सकारात्मक था। अपने सहसंबंध मैट्रिक्स पर एक नज़र डालें, तो आप देखेंगे कि इन दोनों चरों का सहसंबंध गुणांक 0.3 है।

समझ में आता है, है न?

सहसंबंध के प्रकार

अब पिछले खंड में देखे गए विभिन्न प्रकार के सहसंबंधों को दर्शाने वाले अतिरिक्त प्लॉट देखते हैं!

मजबूत सहसंबंध: वोट्स बनाम रिव्यूज़ का प्लॉट

आइए एक मजबूत, सकारात्मक सहसंबंध वाले दो चरों का प्लॉट बनाकर शुरू करें।

हमारे सहसंबंध मैट्रिक्स को देखते हुए, votes बनाम reviews 0.8 के सहसंबंध मान के साथ आपके मानदंडों पर खरा उतरता है। इसका मतलब है कि हमारी रेखा का ढाल अपेक्षाकृत 1/1 के क़रीब होना चाहिए।

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

इस मामले में, आप ggplot2 पैकेज के भीतर के qplot फ़ंक्शन का उपयोग करेंगे, जो geom (ज्योमेट्री) आर्ग्यूमेंट में पास किए गए प्लॉट प्रकार के आधार पर कई तरह के प्लॉट बना सकता है।

नीचे दिए गए कोड खंड में, geom को दो ज्योमेट्री प्रकारों वाले एक वेक्टर पर सेट किया गया है, point और smooth, जहाँ point एक स्कैटरप्लॉट बनाता है और smooth एक ट्रेंडलाइन बनाता है। आप यह भी देखेंगे कि method को lm पर सेट किया गया है, जिसका अर्थ है कि ट्रेंडलाइन वही परिचित, सीधी प्रतिगमन रेखा होगी जो हमने पहले profit बनाम years वाले प्लॉट में बनाई थी।

संक्षेप में, आप सीखने वाले हैं कि धांसू डेटा विज़ुअलाइज़ेशन कितनी आसानी से बनाए जा सकते हैं!

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImxpYnJhcnkoXCJnZ3Bsb3QyXCIpXG5tb3ZpZXMgPC0gcmVhZC5jc3YodXJsKFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vL2Rjd29vZHMyNzE3L21vdmllcy5jc3ZcIikpXG5tb3ZpZXMkcHJvZml0IDwtIG1vdmllcyRncm9zcyAtIG1vdmllcyRidWRnZXRcbm9wdGlvbnMoc2NpcGVuID0gOTk5KSIsInNhbXBsZSI6IiMgUGxvdCB2b3RlcyB2cyByZXZpZXdzXG5xcGxvdChtb3ZpZXMkLi4uLi4sIFxuICAgICAgbW92aWVzJC4uLi4uLCBcbiAgICAgIGRhdGEgPSAuLi4uLiwgXG4gICAgICBnZW9tID0gYyhcInBvaW50XCIsIFwic21vb3RoXCIpLCBcbiAgICAgIG1ldGhvZCA9IFwibG1cIiwgXG4gICAgICBhbHBoYSA9IEkoMSAvIDUpLCBcbiAgICAgIHNlID0gRkFMU0UpIiwic29sdXRpb24iOiIjIFBsb3Qgdm90ZXMgdnMgcmV2aWV3c1xucXBsb3QobW92aWVzJHZvdGVzLCBcbiAgICAgIG1vdmllcyRyZXZpZXdzLCBcbiAgICAgIGRhdGEgPSBtb3ZpZXMsIFxuICAgICAgZ2VvbSA9IGMoXCJwb2ludFwiLCBcInNtb290aFwiKSwgXG4gICAgICBtZXRob2QgPSBcImxtXCIsIFxuICAgICAgYWxwaGEgPSBJKDEgLyA1KSwgXG4gICAgICBzZSA9IEZBTFNFKSJ9

positive R correlation

आपने ऊपर qplot फ़ंक्शन में शामिल alpha आर्ग्यूमेंट को पहचाना होगा। qplot में alpha का उपयोग स्कैटर प्लॉट में बिंदुओं पर अपारदर्शिता का ग्रेडिएंट लागू करता है, ठीक वैसे ही जैसे इसने ggcorr में सहसंबंध गुणांक लेबल की अपारदर्शिता बदली थी।

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

आगे बढ़ें और कोड के साथ छेड़छाड़ करें और देखें यह कैसे काम करता है!

कमजोर सहसंबंध: वर्षों के साथ लाभ का प्लॉट

अब देखते हैं कि “कमजोर”, नकारात्मक सहसंबंध कैसा दिखता है, इसके लिए profit बनाम years का प्लॉट बनाते हैं। इस बार, कोई method निर्दिष्ट नहीं किया गया है, इसलिए हमारी ट्रेंडलाइन डेटा के अनुसार वक्राकार तरीके से बदलेगी (एक fitted curve), जो इस फ़ंक्शन के लिए डिफ़ॉल्ट है। आप नोटिस करेंगे कि ट्रेंडलाइन के कुछ हिस्सों के साथ एक हल्का धूसर क्षेत्र होता है जो ट्रेंडलाइन के confidence interval के अनुसार आकार में बढ़ता या घटता है।

यदि आप confidence interval की अवधारणा से परिचित नहीं हैं, तो चिंता न करें! R आपके लिए काम कर देगा, और इस अभ्यास के बाद अवधारणा बेहतर समझाई जाएगी।

फिलहाल, बस आवश्यक कोड भरें और देखें!

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImxpYnJhcnkoXCJnZ3Bsb3QyXCIpXG5tb3ZpZXMgPC0gcmVhZC5jc3YodXJsKFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vL2Rjd29vZHMyNzE3L21vdmllcy5jc3ZcIikpXG5tb3ZpZXMkcHJvZml0IDwtIG1vdmllcyRncm9zcyAtIG1vdmllcyRidWRnZXRcbm9wdGlvbnMoc2NpcGVuID0gOTk5KSIsInNhbXBsZSI6IiMgUGxvdCBwcm9maXQgb3ZlciB5ZWFyc1xucXBsb3QobW92aWVzJHllYXIsIFxuICAgICAgbW92aWVzJHByb2ZpdCwgXG4gICAgICBkYXRhID0gbW92aWVzLCBcbiAgICAgIGdlb20gPSBjKFwicG9pbnRcIiwgXCJzbW9vdGhcIiksIFxuICAgICAgYWxwaGEgPSBJKDEgLyA1KSkiLCJzb2x1dGlvbiI6IiMgUGxvdCBwcm9maXQgb3ZlciB5ZWFyc1xucXBsb3QobW92aWVzJHllYXIsIFxuICAgICAgbW92aWVzJHByb2ZpdCwgXG4gICAgICBkYXRhID0gbW92aWVzLCBcbiAgICAgIGdlb20gPSBjKFwicG9pbnRcIiwgXCJzbW9vdGhcIiksIFxuICAgICAgYWxwaGEgPSBJKDEgLyA1KSkifQ==

weak correlation

तो अब जबकि आपने confidence interval और smoothing curve को क्रियान्वित होते देखा, आप क्या अवलोकन कर सकते हैं?

  • पहला, आप देखते हैं कि प्लॉट के शुरुआती हिस्से में प्रत्येक year के साथ profit बढ़ता दिख रहा है।
  • दूसरा, आप देखते हैं कि आपकी smoothing curve से लगा हुआ धूसर क्षेत्र शुरू में काफ़ी बड़ा है और डेटा बिंदुओं (या प्रेक्षणों) की संख्या काफ़ी कम है।
  • तीसरा, जैसे-जैसे कर्व अधिक प्रेक्षणों के संकेंद्रण में प्रवेश करता है, धूसर क्षेत्र घटता जाता है और क़रीब-क़रीब कर्व से चिपक जाता है, जो बाद के year में गिरना शुरू कर देता है।

निष्कर्षतः, smoothing curve के साथ confidence interval को प्लॉट करने से हमें अपनी प्रतिगमन रेखा के साथ जुड़ी अनिश्चितता की मात्रा दिखती है। कम प्रेक्षणों के साथ यह अनिश्चितता बढ़ती है और अधिक प्रेक्षणों के साथ घटती है।

यह हमारे चरों के बीच संबंध के पूरे डेटा फ्रेम में बदलने के तरीके को दृष्टिगत करने में बहुत सहायक है और यह भी दिखाता है कि प्रेक्षणों के संकेंद्रण से प्लॉटेड कर्व कैसे बदलता है।

यहाँ सावधानी यह है कि प्लॉट थोड़ा भ्रामक हो सकता है, क्योंकि सिर्फ देखकर यह तय करना कठिन हो सकता है कि आपके चरों का सहसंबंध सकारात्मक है या नकारात्मक।

अब profit बनाम year को उसी तरह प्लॉट करते हैं जैसे आपने votes बनाम reviews प्लॉट किया था: प्रत्येक आर्ग्यूमेंट में “…….” को ऐसे बदलें कि वर्षों को x-अक्ष पर और profit को y-अक्ष पर प्लॉट किया जाए। यह सुनिश्चित करें कि “data” किस डेटा फ्रेम के बराबर है!

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImxpYnJhcnkoXCJnZ3Bsb3QyXCIpXG5tb3ZpZXMgPC0gcmVhZC5jc3YodXJsKFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vL2Rjd29vZHMyNzE3L21vdmllcy5jc3ZcIikpXG5tb3ZpZXMkcHJvZml0IDwtIG1vdmllcyRncm9zcyAtIG1vdmllcyRidWRnZXRcbm9wdGlvbnMoc2NpcGVuID0gOTk5KSIsInNhbXBsZSI6IiMgUGxvdCB0aGUgeWVhcnMgb24gdGhlIHgtYXhpcywgcHJvZml0IG9uIHRoZSB5LWF4aXNcbnFwbG90KG1vdmllcyQuLi4uLiwgXG4gICAgICBtb3ZpZXMkLi4uLi4sIFxuICAgICAgZGF0YSA9IC4uLi4uLCBcbiAgICAgIGdlb20gPSBjKFwicG9pbnRcIiwgXCJzbW9vdGhcIiksIFxuICAgICAgbWV0aG9kID0gXCJsbVwiLCBcbiAgICAgIGFscGhhID0gSSgxIC8gNSksIFxuICAgICAgc2UgPSBGQUxTRSkiLCJzb2x1dGlvbiI6IiMgUGxvdCB0aGUgeWVhcnMgb24gdGhlIHgtYXhpcywgcHJvZml0IG9uIHRoZSB5LWF4aXNcbnFwbG90KG1vdmllcyR5ZWFyLCBcbiAgICAgIG1vdmllcyRwcm9maXQsIFxuICAgICAgZGF0YSA9IG1vdmllcywgXG4gICAgICBnZW9tID0gYyhcInBvaW50XCIsIFwic21vb3RoXCIpLCBcbiAgICAgIG1ldGhvZCA9IFwibG1cIiwgXG4gICAgICBhbHBoYSA9IEkoMSAvIDUpLCBcbiAgICAgIHNlID0gRkFMU0UpIn0=

negative correlation

अपने सहसंबंध मैट्रिक्स पर लौटें, तो आप देखेंगे कि profit और year का सहसंबंध गुणांक -0.1 है, जिसे शायद best fit रेखा वाले प्लॉट में fitted curve वाले प्लॉट की तुलना में अधिक आसानी से दृष्टिगत किया जा सकता है।

सब कुछ जोड़ते हुए

अब GGally में उपलब्ध एक और शक्तिशाली फ़ंक्शन ggpairs पर नज़र डालते हैं। यह फ़ंक्शन बढ़िया है क्योंकि यह उपयोगकर्ताओं को एक ऐसा मैट्रिक्स बनाने देता है जो कई चरों के सहसंबंध गुणांक को एक स्कैटरप्लॉट (confidence interval के साथ best fit रेखा सहित) और एक डेंसिटी प्लॉट के साथ दिखाता है।

सिर्फ इस एक फ़ंक्शन का उपयोग करके, आप इस ट्यूटोरियल में कवर की गई हर चीज़ को सुसंगत और आसानी से समझ आने वाले तरीके से जोड़ सकते हैं।

नीचे दिए गए कोड खंड में, डेटा फ्रेम से अपने तीन पसंदीदा चर चुनें (कोई सबसेटिंग जरूरी नहीं!), उन्हें प्लग करें, और खेलें!

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImxpYnJhcnkoXCJnZ3Bsb3QyXCIpXG5saWJyYXJ5KFwiR0dhbGx5XCIpXG5tb3ZpZXMgPC0gcmVhZC5jc3YodXJsKFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vL2Rjd29vZHMyNzE3L21vdmllcy5jc3ZcIikpXG5tb3ZpZXMkcHJvZml0IDwtIG1vdmllcyRncm9zcyAtIG1vdmllcyRidWRnZXRcbm9wdGlvbnMoc2NpcGVuID0gOTk5KSIsInNhbXBsZSI6IiMgUGx1ZyBpbiB5b3VyIHRocmVlIGZhdm9yaXRlIHZhcmlhYmxlcyBhbmQgdGlua2VyIGF3YXkhXG5nZ3BhaXJzKG1vdmllcywgXG4gICAgICAgIGNvbHVtbnMgPSBjKFwiLi4uLi5cIiwgXCIuLi4uLlwiLCBcIi4uLi4uXCIpLCBcbiAgICAgICAgdXBwZXIgPSBsaXN0KGNvbnRpbnVvdXMgPSB3cmFwKFwiY29yXCIsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IDEwKSksIFxuICAgICAgICBsb3dlciA9IGxpc3QoY29udGludW91cyA9IFwic21vb3RoXCIpKSIsInNvbHV0aW9uIjoiIyBQbHVnIGluIHlvdXIgdGhyZWUgZmF2b3JpdGUgdmFyaWFibGVzIGFuZCB0aW5rZXIgYXdheSFcbmdncGFpcnMobW92aWVzLCBcbiAgICAgICAgY29sdW1ucyA9IGMoXCJjYXN0X2ZhY2Vib29rX2xpa2VzXCIsIFwiYnVkZ2V0XCIsIFwicHJvZml0XCIpLCBcbiAgICAgICAgdXBwZXIgPSBsaXN0KGNvbnRpbnVvdXMgPSB3cmFwKFwiY29yXCIsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IDEwKSksIFxuICAgICAgICBsb3dlciA9IGxpc3QoY29udGludW91cyA9IFwic21vb3RoXCIpKSJ9

correlation R matrix

जैसा कि आपने अनुमान लगाया होगा, ऐसे कई परिदृश्य हैं जहाँ एक प्रकार का प्लॉट आदर्श होता है — कुंजी यह है कि कौन-सी विज़ुअलाइज़ेशन तकनीकें उपलब्ध हैं, उनका उपयोग कैसे करना है, और अंतिम परिणाम का क्या अर्थ है!

आगे की राह

आपने इस ट्यूटोरियल में काफी कुछ कवर किया है, तो अंत तक पहुँचने के लिए बधाई!

आशा है आप इन अवधारणाओं को अपनी विश्लेषणात्मक यात्राओं में इस्तेमाल कर पाएँगे! ये R में डेटा अन्वेषण की सच में बुनियादी बातें हैं और विश्लेषण व मॉडलिंग शुरू करने से पहले अपने डेटा को समझने के लिए आप और भी बहुत कुछ कर सकते हैं। क्यों न अपने प्रयासों को एक पायदान ऊपर ले जाएँ और DataCamp का Exploratory Data Analysis कोर्स शुरू करें?

इसी बीच, यदि आप movies डेटा सेट के साथ जारी नहीं रखना चाहते, तो मैं आपको Kaggle पर जाकर अपने लिए कोई समृद्ध और रोचक डेटा सेट ढूँढने के लिए प्रोत्साहित करता हूँ जिसे आप अन्वेषित कर सकें!

विषय
R