इस ट्यूटोरियल में, आप कई डेटा विज़ुअलाइज़ेशन तरीकों और उनके अंतर्निहित सांख्यिकी का अन्वेषण करेंगे। खासकर डेटा फ्रेम में चर के बीच रुझानों और संबंधों की पहचान करने के संदर्भ में।
बिल्कुल सही, आप सहसंबंध और प्रतिगमन जैसे अवधारणाओं पर ध्यान केंद्रित करेंगे! सबसे पहले, आप 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() का उपयोग करने के नतीजे देख सकते हैं:
## 'data.frame':2961 obs.of11variables:
## $ title : Factor w/2907 levels "10 Cloverfield Lane",..:156021433426871405189626338941604665...
## $ genre : Factor w/17 levels "Action","Adventure",..:61255532838...
## $ director : Factor w/1366 levels "Aaron Schneider",..:474472781828175135513281328968747...
## $ year : int 1920192919331935193619371939193919401946...
## $ duration : int 1101008981878310222688144...
## $ gross : int 3000000280800023000003000000163245184925485222026121986552788430000020400000...
## $ budget : int 100000379000439000609000150000020000002800000397700026000008000000...
## $ cast_facebook_likes: int 41099958243522292509186211782037...
## $ votes : int 54546792113269143086133348291875215340903606304...
## $ reviews : int 2107162164331349746863252119...
## $ rating : num 4.86.37.77.88.67.78.18.27.56.9...संचालित द्वारा
इस विशेष डेटा फ्रेम में, आप कंसोल से देख सकते हैं कि 11 चरों के 2961 प्रेक्षण मौजूद हैं।
एक परिशिष्ट के तौर पर, भले ही हर फिल्म सिर्फ एक घंटे की होती, फिर भी आपको इन्हें सभी देखने के लिए चार महीने से ज्यादा लगातार फिल्में देखनी पड़तीं!
कंसोल प्रत्येक चर को नाम से, उसके वर्ग से, और उसके कुछ उदाहरणों के साथ सूचीबद्ध करता है। इससे हमें डेटा फ्रेम में क्या है, इसका अच्छा अंदाज़ा मिल जाता है, जिसकी समझ हमारे विश्लेषणात्मक प्रयासों के लिए अहम है।
एक और बढ़िया फ़ंक्शन जो हमारे डेटा फ्रेम का तेज, उच्च-स्तरीय अवलोकन करने में मदद करता है, वह है summary()। str() चलाने से उत्पन्न आउटपुट के साथ समानताएं और भिन्नताएं नोट करें।
## title genre
## Home :3Comedy:848
## A Nightmare on Elm Street :2Action:738
## Across the Universe :2Drama:498
## Alice inWonderland:2Adventure:288
## Aloha :2Crime:202
## Around the World in80Days:2Biography: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 :16Median:2004Median:106.0
## Tim Burton :16Mean:2003Mean: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 :34703228Median:26000000Median:4604
## Mean :58090401Mean:40619384Mean: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 :55749Median:364.0Median:6.500
## Mean :109308Mean:503.3Mean: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 खंड में इसे आज़माएँ!
# Fill in the appropriate variable names to subset!
profit <- movies$..... - movies$.....
# Check the result
summary(profit)
कमाल!
आप देख सकते हैं कि हमारे डेटा फ्रेम में काफी कमाने वाली और काफी डुबाने वाली दोनों तरह की फिल्में हैं।
हमारी फिल्मों का profit आगे कुछ दिलचस्प विश्लेषणों में काम आ सकता है, तो आइए profit को हमारे डेटा फ्रेम में एक नए कॉलम के रूप में जोड़ दें।
# Add a column for `profit` to `movies`
movies$..... <- movies$..... - movies$.....
सहसंबंध
अब जब profit को हमारे डेटा फ्रेम में एक नए कॉलम के रूप में जोड़ दिया गया है, तो आपके डेटा सेट के चरों के बीच संबंधों पर करीब से नज़र डालने का समय है।
आइए देखें कि प्रत्येक फिल्म की rating के सापेक्ष profit कैसे बदलता है।
इसके लिए, आप R के अंतर्निहित plot और abline फ़ंक्शनों का उपयोग कर सकते हैं, जहाँ plot एक स्कैटर प्लॉट बनाएगा और abline एक प्रतिगमन रेखा या “line of best fit” जोड़ेगा, क्योंकि हमने नीचे दिखाए अनुसार लीनियर मॉडल आर्ग्यूमेंट शामिल किया है।
# Create the scatter plot with `ratings` on the x-axis and `profit` on the y-axis
plot(movies$...., movies$....)
# Add a regression linewith the form `abline(lm(y ~ x))`
abline(lm(movies$.... ~ movies$....))
क्या आउटपुट लगभग वैसा ही था जैसा आपने सोचा था?
आम तौर पर, लगता है कि जिन फिल्मों की rating अधिक है, उनका profit भी अधिक होता है। इस कथन को दूसरे तरीके से कहें तो कम से कम हमारे डेटा फ्रेम में rating और profit के बीच एक सकारात्मक सहसंबंध मौजूद है।
यह कहा जाए तो भी, प्लॉट पर एक सरसरी नज़र डालते ही दिखता है कि बहुत-सी उच्च रेटिंग वाली फिल्में भी ब्लॉकबस्टर नहीं थीं, और कई बहुत लाभदायक फिल्में तुलनात्मक रूप से कम रेटिंग पाईं।
Correlation का अर्थ Causation नहीं होता!
सहसंबंध बनाम कारणता को समझने में मदद के लिए एक किस्सा: मैं समुद्र तट पर आइसक्रीम स्टॉल चलाता हूँ। शहर में जेवॉकर्स की औसत संख्या तब बढ़ती है जब मेरी आइसक्रीम की बिक्री बढ़ती है, पर क्या मेरी आइसक्रीम लोगों को ट्रैफिक नियम तोड़ने पर मजबूर कर रही है, या कोई और कारक काम कर रहा है? मेरी आइसक्रीम यकीनन बेहतरीन है, लेकिन बाहर की धूप शायद लोगों की आइसक्रीम चाहत और क्रॉसवॉक पर धूप में खड़े रहने से बचने की आदत दोनों में भूमिका निभाती है। मेरी आइसक्रीम बिक्री और जेवॉकर्स की संख्या के बीच एक संबंध (सहसंबंध) तो है, लेकिन आप इसे निर्णायक रूप से कारणात्मक नहीं कह सकते।
जैसे-जैसे आप इस ट्यूटोरियल में आगे बढ़ें, इस तर्क को ध्यान में रखें!
R में सहसंबंध की गणना
तो movies के चरों के बीच किस प्रकार के संबंध मौजूद हैं, और आप उन्हें मात्रात्मक रूप से कैसे आंक सकते हैं?
पहला तरीका है cor() के साथ सहसंबंध और सहसंबंध मैट्रिक्स बनाना:
ध्यान दें कि आप method भी निर्दिष्ट कर सकते हैं ताकि यह बताया जा सके कि आप कौन-सा सहसंबंध गुणांक निकालना चाहते हैं। सावधान रहें, क्योंकि इन सहसंबंधों के साथ कुछ मान्यताएँ हमेशा जुड़ी होती हैं: Kendall और Spearman विधियाँ केवल क्रमबद्ध इनपुट के लिए ही समझ में आती हैं। इसका मतलब है कि सहसंबंध गुणांक की गणना करने से पहले आपको अपने डेटा को क्रमबद्ध करना होगा।
इसके अलावा, डिफ़ॉल्ट विधि Pearson सहसंबंध मानती है कि आपके चर सामान्य रूप से वितरित हैं, प्रत्येक चर के बीच एक सीधी रेखीय संबंध है, और डेटा प्रतिगमन रेखा के आसपास सामान्य रूप से वितरित है।
यह भी ध्यान दें कि आप rcorr() का उपयोग कर सकते हैं, जो Hmisc पैकेज का हिस्सा है, Pearson और Spearman सहसंबंधों के महत्व स्तरों की गणना करने के लिए।
आप यह भी देखेंगे कि सहसंबंध मैट्रिक्स वास्तव में एक तालिका है जो चरों के समूहों के बीच सहसंबंध गुणांक दिखाती है। यह पहले से ही यह समझने का एक अच्छा तरीका है कि आपके डेटा सेट के चरों के बीच कौन-से संबंध मौजूद हैं, लेकिन अगले खंड में इसे थोड़ा और गहराई से देखते हैं।
दृश्य रूप से सहसंबंध का अन्वेषण: R सहसंबंध मैट्रिक्स
अगले अन्वेषण में, आप अपने movies डेटा फ्रेम में उपलब्ध चरों का उपयोग करके एक सहसंबंध मैट्रिक्स प्लॉट करेंगे। यह साधारण प्लॉट आपको तेजी से दिखा देगा कि किन चरों का अन्य चरों के साथ नकारात्मक, सकारात्मक, कमजोर या मजबूत सहसंबंध है।
इसे करने के लिए, आप GGally नामक एक बढ़िया पैकेज और ggcorr() नामक फ़ंक्शन का उपयोग करेंगे।
इस फ़ंक्शन कॉल का रूप ggcorr(df) होगा, जहाँ df उस डेटा फ्रेम का नाम है जिस पर आप फ़ंक्शन चला रहे हैं। इस फ़ंक्शन का आउटपुट एक त्रिकोणीय, रंग-कोडित मैट्रिक्स होगा जिस पर हमारे चर के नाम लेबल होंगे। प्रत्येक चर का अन्य चरों के सापेक्ष सहसंबंध गुणांक मैट्रिक्स में उसकी स्थिति के अनुसार क्षैतिज और/या लंबवत पढ़कर पाया जा सकता है।
यह सुनने में उलझन भरा लग सकता है, लेकिन व्यवहार में यह बहुत सरल है, तो नीचे दिए गए कोड खंड में इसे आज़माएँ!
# Replace the "....." with the name of the data frame
ggcorr(.....)
तो अभी आपने जो सहसंबंध मैट्रिक्स बनाया है (वैसे शानदार काम!), उसमें आप किसी भी चर जैसे 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 आर्ग्यूमेंट आपको सहसंबंध गुणांक की ताकत के आधार पर प्रत्येक लेबल की अपारदर्शिता बढ़ाने या घटाने देता है। यह तेज़, दृश्य डेटा विश्लेषण में बहुत उपयोगी है।
मेरी बात पर न जाएँ, खुद आज़माएँ!
अब एक बेहतर सहसंबंध मैट्रिक्स प्लॉट करते हैं:
# Fill in "TRUE" or "FALSE" to see how the correlation matrix changes
ggcorr(movies,
label = .....,
label_alpha = .....)
आगे के प्लॉट्स में, आप देखेंगे कि जब “मजबूत” सहसंबंध वाला प्लॉट बनता है, तो उसकी प्रतिगमन रेखा (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 वाले प्लॉट में बनाई थी।
संक्षेप में, आप सीखने वाले हैं कि धांसू डेटा विज़ुअलाइज़ेशन कितनी आसानी से बनाए जा सकते हैं!
# Plot votes vs reviews
qplot(movies$.....,
movies$.....,
data = .....,
geom = c("point", "smooth"),
method = "lm",
alpha = I(1 / 5),
se = FALSE)
आपने ऊपर qplot फ़ंक्शन में शामिल alpha आर्ग्यूमेंट को पहचाना होगा। qplot में alpha का उपयोग स्कैटर प्लॉट में बिंदुओं पर अपारदर्शिता का ग्रेडिएंट लागू करता है, ठीक वैसे ही जैसे इसने ggcorr में सहसंबंध गुणांक लेबल की अपारदर्शिता बदली थी।
आपके द्वारा उपयोग की गई कॉन्फ़िगरेशन में, किसी बिंदु पर कुल अपारदर्शिता तभी आती है जब उस पर 5 अन्य बिंदु ओवरलैप हों। alpha के हर में दिए गए नंबर को बढ़ाने या घटाने से किसी बिंदु की अपारदर्शिता बदलने के लिए जरूरी ओवरलैपिंग बिंदुओं की संख्या प्रभावित होगी। इस एस्थेटिक का एक कारण यह है कि यह उपयोगकर्ताओं को उनके प्लॉट्स में डेटा बिंदुओं के संकेंद्रणों को जल्दी पहचानने में मदद कर सकता है, जो बदले में सिर्फ एक नज़र में हमारे डेटा पर नई अंतर्दृष्टि ला सकता है।
आगे बढ़ें और कोड के साथ छेड़छाड़ करें और देखें यह कैसे काम करता है!
कमजोर सहसंबंध: वर्षों के साथ लाभ का प्लॉट
अब देखते हैं कि “कमजोर”, नकारात्मक सहसंबंध कैसा दिखता है, इसके लिए profit बनाम years का प्लॉट बनाते हैं। इस बार, कोई method निर्दिष्ट नहीं किया गया है, इसलिए हमारी ट्रेंडलाइन डेटा के अनुसार वक्राकार तरीके से बदलेगी (एक fitted curve), जो इस फ़ंक्शन के लिए डिफ़ॉल्ट है। आप नोटिस करेंगे कि ट्रेंडलाइन के कुछ हिस्सों के साथ एक हल्का धूसर क्षेत्र होता है जो ट्रेंडलाइन के confidence interval के अनुसार आकार में बढ़ता या घटता है।
यदि आप confidence interval की अवधारणा से परिचित नहीं हैं, तो चिंता न करें! R आपके लिए काम कर देगा, और इस अभ्यास के बाद अवधारणा बेहतर समझाई जाएगी।
फिलहाल, बस आवश्यक कोड भरें और देखें!
# Plot profit over years
qplot(movies$year,
movies$profit,
data = movies,
geom = c("point", "smooth"),
alpha = I(1 / 5))
तो अब जबकि आपने confidence interval और smoothing curve को क्रियान्वित होते देखा, आप क्या अवलोकन कर सकते हैं?
पहला, आप देखते हैं कि प्लॉट के शुरुआती हिस्से में प्रत्येक year के साथ profit बढ़ता दिख रहा है।
दूसरा, आप देखते हैं कि आपकी smoothing curve से लगा हुआ धूसर क्षेत्र शुरू में काफ़ी बड़ा है और डेटा बिंदुओं (या प्रेक्षणों) की संख्या काफ़ी कम है।
तीसरा, जैसे-जैसे कर्व अधिक प्रेक्षणों के संकेंद्रण में प्रवेश करता है, धूसर क्षेत्र घटता जाता है और क़रीब-क़रीब कर्व से चिपक जाता है, जो बाद के year में गिरना शुरू कर देता है।
निष्कर्षतः, smoothing curve के साथ confidence interval को प्लॉट करने से हमें अपनी प्रतिगमन रेखा के साथ जुड़ी अनिश्चितता की मात्रा दिखती है। कम प्रेक्षणों के साथ यह अनिश्चितता बढ़ती है और अधिक प्रेक्षणों के साथ घटती है।
यह हमारे चरों के बीच संबंध के पूरे डेटा फ्रेम में बदलने के तरीके को दृष्टिगत करने में बहुत सहायक है और यह भी दिखाता है कि प्रेक्षणों के संकेंद्रण से प्लॉटेड कर्व कैसे बदलता है।
यहाँ सावधानी यह है कि प्लॉट थोड़ा भ्रामक हो सकता है, क्योंकि सिर्फ देखकर यह तय करना कठिन हो सकता है कि आपके चरों का सहसंबंध सकारात्मक है या नकारात्मक।
अब profit बनाम year को उसी तरह प्लॉट करते हैं जैसे आपने votes बनाम reviews प्लॉट किया था: प्रत्येक आर्ग्यूमेंट में “…….” को ऐसे बदलें कि वर्षों को x-अक्ष पर और profit को y-अक्ष पर प्लॉट किया जाए। यह सुनिश्चित करें कि “data” किस डेटा फ्रेम के बराबर है!
# Plot the years on the x-axis, profit on the y-axis
qplot(movies$.....,
movies$.....,
data = .....,
geom = c("point", "smooth"),
method = "lm",
alpha = I(1 / 5),
se = FALSE)
अपने सहसंबंध मैट्रिक्स पर लौटें, तो आप देखेंगे कि profit और year का सहसंबंध गुणांक -0.1 है, जिसे शायद best fit रेखा वाले प्लॉट में fitted curve वाले प्लॉट की तुलना में अधिक आसानी से दृष्टिगत किया जा सकता है।
सब कुछ जोड़ते हुए
अब GGally में उपलब्ध एक और शक्तिशाली फ़ंक्शन ggpairs पर नज़र डालते हैं। यह फ़ंक्शन बढ़िया है क्योंकि यह उपयोगकर्ताओं को एक ऐसा मैट्रिक्स बनाने देता है जो कई चरों के सहसंबंध गुणांक को एक स्कैटरप्लॉट (confidence interval के साथ best fit रेखा सहित) और एक डेंसिटी प्लॉट के साथ दिखाता है।
सिर्फ इस एक फ़ंक्शन का उपयोग करके, आप इस ट्यूटोरियल में कवर की गई हर चीज़ को सुसंगत और आसानी से समझ आने वाले तरीके से जोड़ सकते हैं।
नीचे दिए गए कोड खंड में, डेटा फ्रेम से अपने तीन पसंदीदा चर चुनें (कोई सबसेटिंग जरूरी नहीं!), उन्हें प्लग करें, और खेलें!
# Plug in your three favorite variables and tinker away!
ggpairs(movies,
columns = c(".....", ".....", "....."),
upper = list(continuous = wrap("cor",
size = 10)),
lower = list(continuous = "smooth"))
जैसा कि आपने अनुमान लगाया होगा, ऐसे कई परिदृश्य हैं जहाँ एक प्रकार का प्लॉट आदर्श होता है — कुंजी यह है कि कौन-सी विज़ुअलाइज़ेशन तकनीकें उपलब्ध हैं, उनका उपयोग कैसे करना है, और अंतिम परिणाम का क्या अर्थ है!
आगे की राह
आपने इस ट्यूटोरियल में काफी कुछ कवर किया है, तो अंत तक पहुँचने के लिए बधाई!
आशा है आप इन अवधारणाओं को अपनी विश्लेषणात्मक यात्राओं में इस्तेमाल कर पाएँगे! ये R में डेटा अन्वेषण की सच में बुनियादी बातें हैं और विश्लेषण व मॉडलिंग शुरू करने से पहले अपने डेटा को समझने के लिए आप और भी बहुत कुछ कर सकते हैं। क्यों न अपने प्रयासों को एक पायदान ऊपर ले जाएँ और DataCamp का Exploratory Data Analysis कोर्स शुरू करें?
इसी बीच, यदि आप movies डेटा सेट के साथ जारी नहीं रखना चाहते, तो मैं आपको Kaggle पर जाकर अपने लिए कोई समृद्ध और रोचक डेटा सेट ढूँढने के लिए प्रोत्साहित करता हूँ जिसे आप अन्वेषित कर सकें!
इस ट्यूटोरियल में, आप कई डेटा विज़ुअलाइज़ेशन तरीकों और उनके अंतर्निहित सांख्यिकी का अन्वेषण करेंगे। खासकर डेटा फ्रेम में चर के बीच रुझानों और संबंधों की पहचान करने के संदर्भ में।
बिल्कुल सही, आप सहसंबंध और प्रतिगमन जैसे अवधारणाओं पर ध्यान केंद्रित करेंगे! सबसे पहले, आप R में सहसंबंध से परिचित होंगे। फिर, आप देखेंगे कि
ggplot2औरGGallyजैसे पैकेजों का उपयोग करके R में सहसंबंध मैट्रिक्स कैसे प्लॉट करें। अंत में, आप देखेंगे कि किस प्रकार के सहसंबंध मौजूद होते हैं और वे आपके आगे के विश्लेषण के लिए कैसे मायने रखते हैं।यदि आप इस विषय में और गहराई तक जाना चाहते हैं, तो DataCamp का Correlation and Regression कोर्स लेने पर विचार करें।
पृष्ठभूमि
आज के ट्यूटोरियल में, आप Kaggle से प्राप्त फिल्मों के डेटा सेट के साथ काम करेंगे ताकि यह जाना जा सके कि चर के बीच संबंधों को बेहतर ढंग से कैसे समझा जा सकता है।
मैंने डेटा को हल्के-फुल्के रूप में संवार दिया है ताकि हमारी विश्लेषणात्मक तुलना एक जैसी इकाइयों पर आधारित हो, जैसे कि मुद्रा एक ही यूनिट में हो। इस चरण के बिना,
gross,budgetऔरprofitजैसे चरों का हमारा सांख्यिकीय विश्लेषण भ्रामक हो सकता था। आप मूल डेटा सेट तक पहुंच सकते हैं।डेटा आयात करना
moviesडेटा सेट तक पहुंचने और उसका उपयोग करने के लिए, आपread.csv()फ़ंक्शन का उपयोग करके अपने डेटा को एक डेटा फ्रेम में आयात कर सकते हैं और उसेmoviesजैसे अत्यंत मौलिक नाम वाले वेरिएबल में स्टोर कर सकते हैं!शुरू करने के लिए बस इतना ही काफी है!
अपने डेटा का बुनियादी निरीक्षण
डेटा फ्रेम आयात हो जाने के बाद, अपने डेटा का एक प्रारंभिक अंदाज़ा लगाना अच्छा रहता है। सबसे पहले, उस डेटा की संरचना देखें जिसका परीक्षण किया जा रहा है। नीचे आप इस बेहद सरल और उपयोगी फ़ंक्शन
str()का उपयोग करने के नतीजे देख सकते हैं:इस विशेष डेटा फ्रेम में, आप कंसोल से देख सकते हैं कि 11 चरों के 2961 प्रेक्षण मौजूद हैं।
एक परिशिष्ट के तौर पर, भले ही हर फिल्म सिर्फ एक घंटे की होती, फिर भी आपको इन्हें सभी देखने के लिए चार महीने से ज्यादा लगातार फिल्में देखनी पड़तीं!
कंसोल प्रत्येक चर को नाम से, उसके वर्ग से, और उसके कुछ उदाहरणों के साथ सूचीबद्ध करता है। इससे हमें डेटा फ्रेम में क्या है, इसका अच्छा अंदाज़ा मिल जाता है, जिसकी समझ हमारे विश्लेषणात्मक प्रयासों के लिए अहम है।
एक और बढ़िया फ़ंक्शन जो हमारे डेटा फ्रेम का तेज, उच्च-स्तरीय अवलोकन करने में मदद करता है, वह है
summary()।str()चलाने से उत्पन्न आउटपुट के साथ समानताएं और भिन्नताएं नोट करें।सिर्फ एक कमांड से, आपने R से हमारे डेटा फ्रेम के प्रत्येक चर के लिए कुछ प्रमुख सांख्यिकीय जानकारी प्राप्त कर ली। अब जबकि आपको पता है कि आप किसके साथ काम कर रहे हैं, चलिए थोड़ा और गहराई में जाकर डेटा का अन्वेषण करते हैं!
फ़ीचर इंजीनियरिंग: लाभ की गणना
उपलब्ध चरों की समीक्षा करने पर, लगता है कि कुछ संख्यात्मक चरों में हेर-फेर करके हमारे डेटा फ्रेम के बारे में नए निष्कर्ष निकाले जा सकते हैं।
उदाहरण के लिए, आपके पास
grossऔरbudgetचर हैं, तो क्यों न थोड़ा सबसेटिंग करके हर फिल्म का लाभ निकाल लिया जाए?आप सूत्र
profit = gross - budgetका उपयोग करके लाभ की गणना कर सकते हैं। नीचे दिए गए DataCamp Light खंड में इसे आज़माएँ!कमाल!
आप देख सकते हैं कि हमारे डेटा फ्रेम में काफी कमाने वाली और काफी डुबाने वाली दोनों तरह की फिल्में हैं।
हमारी फिल्मों का
profitआगे कुछ दिलचस्प विश्लेषणों में काम आ सकता है, तो आइएprofitको हमारे डेटा फ्रेम में एक नए कॉलम के रूप में जोड़ दें।सहसंबंध
अब जब
profitको हमारे डेटा फ्रेम में एक नए कॉलम के रूप में जोड़ दिया गया है, तो आपके डेटा सेट के चरों के बीच संबंधों पर करीब से नज़र डालने का समय है।आइए देखें कि प्रत्येक फिल्म की
ratingके सापेक्षprofitकैसे बदलता है।इसके लिए, आप R के अंतर्निहित
plotऔरablineफ़ंक्शनों का उपयोग कर सकते हैं, जहाँplotएक स्कैटर प्लॉट बनाएगा औरablineएक प्रतिगमन रेखा या “line of best fit” जोड़ेगा, क्योंकि हमने नीचे दिखाए अनुसार लीनियर मॉडल आर्ग्यूमेंट शामिल किया है।क्या आउटपुट लगभग वैसा ही था जैसा आपने सोचा था?
आम तौर पर, लगता है कि जिन फिल्मों की
ratingअधिक है, उनकाprofitभी अधिक होता है। इस कथन को दूसरे तरीके से कहें तो कम से कम हमारे डेटा फ्रेम मेंratingऔरprofitके बीच एक सकारात्मक सहसंबंध मौजूद है।यह कहा जाए तो भी, प्लॉट पर एक सरसरी नज़र डालते ही दिखता है कि बहुत-सी उच्च रेटिंग वाली फिल्में भी ब्लॉकबस्टर नहीं थीं, और कई बहुत लाभदायक फिल्में तुलनात्मक रूप से कम रेटिंग पाईं।
Correlation का अर्थ Causation नहीं होता!
सहसंबंध बनाम कारणता को समझने में मदद के लिए एक किस्सा: मैं समुद्र तट पर आइसक्रीम स्टॉल चलाता हूँ। शहर में जेवॉकर्स की औसत संख्या तब बढ़ती है जब मेरी आइसक्रीम की बिक्री बढ़ती है, पर क्या मेरी आइसक्रीम लोगों को ट्रैफिक नियम तोड़ने पर मजबूर कर रही है, या कोई और कारक काम कर रहा है? मेरी आइसक्रीम यकीनन बेहतरीन है, लेकिन बाहर की धूप शायद लोगों की आइसक्रीम चाहत और क्रॉसवॉक पर धूप में खड़े रहने से बचने की आदत दोनों में भूमिका निभाती है। मेरी आइसक्रीम बिक्री और जेवॉकर्स की संख्या के बीच एक संबंध (सहसंबंध) तो है, लेकिन आप इसे निर्णायक रूप से कारणात्मक नहीं कह सकते।
जैसे-जैसे आप इस ट्यूटोरियल में आगे बढ़ें, इस तर्क को ध्यान में रखें!
R में सहसंबंध की गणना
तो
moviesके चरों के बीच किस प्रकार के संबंध मौजूद हैं, और आप उन्हें मात्रात्मक रूप से कैसे आंक सकते हैं?पहला तरीका है
cor()के साथ सहसंबंध और सहसंबंध मैट्रिक्स बनाना:ध्यान दें कि आप method भी निर्दिष्ट कर सकते हैं ताकि यह बताया जा सके कि आप कौन-सा सहसंबंध गुणांक निकालना चाहते हैं। सावधान रहें, क्योंकि इन सहसंबंधों के साथ कुछ मान्यताएँ हमेशा जुड़ी होती हैं: Kendall और Spearman विधियाँ केवल क्रमबद्ध इनपुट के लिए ही समझ में आती हैं। इसका मतलब है कि सहसंबंध गुणांक की गणना करने से पहले आपको अपने डेटा को क्रमबद्ध करना होगा।
इसके अलावा, डिफ़ॉल्ट विधि Pearson सहसंबंध मानती है कि आपके चर सामान्य रूप से वितरित हैं, प्रत्येक चर के बीच एक सीधी रेखीय संबंध है, और डेटा प्रतिगमन रेखा के आसपास सामान्य रूप से वितरित है।
यह भी ध्यान दें कि आप
rcorr()का उपयोग कर सकते हैं, जोHmiscपैकेज का हिस्सा है, Pearson और Spearman सहसंबंधों के महत्व स्तरों की गणना करने के लिए।आप यह भी देखेंगे कि सहसंबंध मैट्रिक्स वास्तव में एक तालिका है जो चरों के समूहों के बीच सहसंबंध गुणांक दिखाती है। यह पहले से ही यह समझने का एक अच्छा तरीका है कि आपके डेटा सेट के चरों के बीच कौन-से संबंध मौजूद हैं, लेकिन अगले खंड में इसे थोड़ा और गहराई से देखते हैं।
दृश्य रूप से सहसंबंध का अन्वेषण: R सहसंबंध मैट्रिक्स
अगले अन्वेषण में, आप अपने
moviesडेटा फ्रेम में उपलब्ध चरों का उपयोग करके एक सहसंबंध मैट्रिक्स प्लॉट करेंगे। यह साधारण प्लॉट आपको तेजी से दिखा देगा कि किन चरों का अन्य चरों के साथ नकारात्मक, सकारात्मक, कमजोर या मजबूत सहसंबंध है।इसे करने के लिए, आप
GGallyनामक एक बढ़िया पैकेज औरggcorr()नामक फ़ंक्शन का उपयोग करेंगे।इस फ़ंक्शन कॉल का रूप
ggcorr(df)होगा, जहाँdfउस डेटा फ्रेम का नाम है जिस पर आप फ़ंक्शन चला रहे हैं। इस फ़ंक्शन का आउटपुट एक त्रिकोणीय, रंग-कोडित मैट्रिक्स होगा जिस पर हमारे चर के नाम लेबल होंगे। प्रत्येक चर का अन्य चरों के सापेक्ष सहसंबंध गुणांक मैट्रिक्स में उसकी स्थिति के अनुसार क्षैतिज और/या लंबवत पढ़कर पाया जा सकता है।यह सुनने में उलझन भरा लग सकता है, लेकिन व्यवहार में यह बहुत सरल है, तो नीचे दिए गए कोड खंड में इसे आज़माएँ!
तो अभी आपने जो सहसंबंध मैट्रिक्स बनाया है (वैसे शानदार काम!), उसमें आप किसी भी चर जैसे
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आर्ग्यूमेंट आपको सहसंबंध गुणांक की ताकत के आधार पर प्रत्येक लेबल की अपारदर्शिता बढ़ाने या घटाने देता है। यह तेज़, दृश्य डेटा विश्लेषण में बहुत उपयोगी है।मेरी बात पर न जाएँ, खुद आज़माएँ!
अब एक बेहतर सहसंबंध मैट्रिक्स प्लॉट करते हैं:
आगे के प्लॉट्स में, आप देखेंगे कि जब “मजबूत” सहसंबंध वाला प्लॉट बनता है, तो उसकी प्रतिगमन रेखा (
x/y) का ढाल 1/1 या -1/1 के अधिक करीब होता है, जबकि “कमजोर” सहसंबंध वाले प्लॉट में प्रतिगमन रेखा का ढाल बहुत कम हो सकता है। 1/1 या -1/1 के करीब ढाल का अर्थ है कि प्लॉट किए गए दोनों चर एक-दूसरे से काफ़ी निकटता से संबंधित हैं।हमारे
moviesडेटा फ्रेम के मामले में, ऐसी प्रतिगमन रेखा आपके चरों की प्रकृति के बारे में उपयोगी अंतर्दृष्टि दे सकती है और उनके परस्पर निर्भर होने का संकेत दे सकती है।उदाहरण के लिए, आपके पिछले
ratingपरprofitके प्लॉट में आपने देखा कि प्रतिगमन रेखा का ढाल मध्यम और सकारात्मक था। अपने सहसंबंध मैट्रिक्स पर एक नज़र डालें, तो आप देखेंगे कि इन दोनों चरों का सहसंबंध गुणांक 0.3 है।समझ में आता है, है न?
सहसंबंध के प्रकार
अब पिछले खंड में देखे गए विभिन्न प्रकार के सहसंबंधों को दर्शाने वाले अतिरिक्त प्लॉट देखते हैं!
मजबूत सहसंबंध: वोट्स बनाम रिव्यूज़ का प्लॉट
आइए एक मजबूत, सकारात्मक सहसंबंध वाले दो चरों का प्लॉट बनाकर शुरू करें।
हमारे सहसंबंध मैट्रिक्स को देखते हुए,
votesबनामreviews0.8 के सहसंबंध मान के साथ आपके मानदंडों पर खरा उतरता है। इसका मतलब है कि हमारी रेखा का ढाल अपेक्षाकृत 1/1 के क़रीब होना चाहिए।आप इस अभ्यास और आगे आने वाले अभ्यासों में
ggplot2पैकेज लागू करेंगे।ggplot2पैकेज एक बहुउपयोगी टूलसेट है जिसका उपयोग आकर्षक डेटा विज़ुअलाइज़ेशन बनाने के लिए किया जा सकता है।इस मामले में, आप
ggplot2पैकेज के भीतर केqplotफ़ंक्शन का उपयोग करेंगे, जोgeom(ज्योमेट्री) आर्ग्यूमेंट में पास किए गए प्लॉट प्रकार के आधार पर कई तरह के प्लॉट बना सकता है।नीचे दिए गए कोड खंड में,
geomको दो ज्योमेट्री प्रकारों वाले एक वेक्टर पर सेट किया गया है,pointऔरsmooth, जहाँpointएक स्कैटरप्लॉट बनाता है औरsmoothएक ट्रेंडलाइन बनाता है। आप यह भी देखेंगे किmethodकोlmपर सेट किया गया है, जिसका अर्थ है कि ट्रेंडलाइन वही परिचित, सीधी प्रतिगमन रेखा होगी जो हमने पहलेprofitबनामyearsवाले प्लॉट में बनाई थी।संक्षेप में, आप सीखने वाले हैं कि धांसू डेटा विज़ुअलाइज़ेशन कितनी आसानी से बनाए जा सकते हैं!
आपने ऊपर
qplotफ़ंक्शन में शामिलalphaआर्ग्यूमेंट को पहचाना होगा।qplotमेंalphaका उपयोग स्कैटर प्लॉट में बिंदुओं पर अपारदर्शिता का ग्रेडिएंट लागू करता है, ठीक वैसे ही जैसे इसनेggcorrमें सहसंबंध गुणांक लेबल की अपारदर्शिता बदली थी।आपके द्वारा उपयोग की गई कॉन्फ़िगरेशन में, किसी बिंदु पर कुल अपारदर्शिता तभी आती है जब उस पर 5 अन्य बिंदु ओवरलैप हों।
alphaके हर में दिए गए नंबर को बढ़ाने या घटाने से किसी बिंदु की अपारदर्शिता बदलने के लिए जरूरी ओवरलैपिंग बिंदुओं की संख्या प्रभावित होगी। इस एस्थेटिक का एक कारण यह है कि यह उपयोगकर्ताओं को उनके प्लॉट्स में डेटा बिंदुओं के संकेंद्रणों को जल्दी पहचानने में मदद कर सकता है, जो बदले में सिर्फ एक नज़र में हमारे डेटा पर नई अंतर्दृष्टि ला सकता है।आगे बढ़ें और कोड के साथ छेड़छाड़ करें और देखें यह कैसे काम करता है!
कमजोर सहसंबंध: वर्षों के साथ लाभ का प्लॉट
अब देखते हैं कि “कमजोर”, नकारात्मक सहसंबंध कैसा दिखता है, इसके लिए
profitबनामyearsका प्लॉट बनाते हैं। इस बार, कोईmethodनिर्दिष्ट नहीं किया गया है, इसलिए हमारी ट्रेंडलाइन डेटा के अनुसार वक्राकार तरीके से बदलेगी (एक fitted curve), जो इस फ़ंक्शन के लिए डिफ़ॉल्ट है। आप नोटिस करेंगे कि ट्रेंडलाइन के कुछ हिस्सों के साथ एक हल्का धूसर क्षेत्र होता है जो ट्रेंडलाइन के confidence interval के अनुसार आकार में बढ़ता या घटता है।यदि आप confidence interval की अवधारणा से परिचित नहीं हैं, तो चिंता न करें! R आपके लिए काम कर देगा, और इस अभ्यास के बाद अवधारणा बेहतर समझाई जाएगी।
फिलहाल, बस आवश्यक कोड भरें और देखें!
तो अब जबकि आपने confidence interval और smoothing curve को क्रियान्वित होते देखा, आप क्या अवलोकन कर सकते हैं?
yearके साथprofitबढ़ता दिख रहा है।yearमें गिरना शुरू कर देता है।निष्कर्षतः, smoothing curve के साथ confidence interval को प्लॉट करने से हमें अपनी प्रतिगमन रेखा के साथ जुड़ी अनिश्चितता की मात्रा दिखती है। कम प्रेक्षणों के साथ यह अनिश्चितता बढ़ती है और अधिक प्रेक्षणों के साथ घटती है।
यह हमारे चरों के बीच संबंध के पूरे डेटा फ्रेम में बदलने के तरीके को दृष्टिगत करने में बहुत सहायक है और यह भी दिखाता है कि प्रेक्षणों के संकेंद्रण से प्लॉटेड कर्व कैसे बदलता है।
यहाँ सावधानी यह है कि प्लॉट थोड़ा भ्रामक हो सकता है, क्योंकि सिर्फ देखकर यह तय करना कठिन हो सकता है कि आपके चरों का सहसंबंध सकारात्मक है या नकारात्मक।
अब
profitबनामyearको उसी तरह प्लॉट करते हैं जैसे आपनेvotesबनामreviewsप्लॉट किया था: प्रत्येक आर्ग्यूमेंट में “…….” को ऐसे बदलें कि वर्षों कोx-अक्ष पर औरprofitको y-अक्ष पर प्लॉट किया जाए। यह सुनिश्चित करें कि “data” किस डेटा फ्रेम के बराबर है!अपने सहसंबंध मैट्रिक्स पर लौटें, तो आप देखेंगे कि
profitऔरyearका सहसंबंध गुणांक -0.1 है, जिसे शायद best fit रेखा वाले प्लॉट में fitted curve वाले प्लॉट की तुलना में अधिक आसानी से दृष्टिगत किया जा सकता है।सब कुछ जोड़ते हुए
अब
GGallyमें उपलब्ध एक और शक्तिशाली फ़ंक्शनggpairsपर नज़र डालते हैं। यह फ़ंक्शन बढ़िया है क्योंकि यह उपयोगकर्ताओं को एक ऐसा मैट्रिक्स बनाने देता है जो कई चरों के सहसंबंध गुणांक को एक स्कैटरप्लॉट (confidence interval के साथ best fit रेखा सहित) और एक डेंसिटी प्लॉट के साथ दिखाता है।सिर्फ इस एक फ़ंक्शन का उपयोग करके, आप इस ट्यूटोरियल में कवर की गई हर चीज़ को सुसंगत और आसानी से समझ आने वाले तरीके से जोड़ सकते हैं।
नीचे दिए गए कोड खंड में, डेटा फ्रेम से अपने तीन पसंदीदा चर चुनें (कोई सबसेटिंग जरूरी नहीं!), उन्हें प्लग करें, और खेलें!
जैसा कि आपने अनुमान लगाया होगा, ऐसे कई परिदृश्य हैं जहाँ एक प्रकार का प्लॉट आदर्श होता है — कुंजी यह है कि कौन-सी विज़ुअलाइज़ेशन तकनीकें उपलब्ध हैं, उनका उपयोग कैसे करना है, और अंतिम परिणाम का क्या अर्थ है!
आगे की राह
आपने इस ट्यूटोरियल में काफी कुछ कवर किया है, तो अंत तक पहुँचने के लिए बधाई!
आशा है आप इन अवधारणाओं को अपनी विश्लेषणात्मक यात्राओं में इस्तेमाल कर पाएँगे! ये R में डेटा अन्वेषण की सच में बुनियादी बातें हैं और विश्लेषण व मॉडलिंग शुरू करने से पहले अपने डेटा को समझने के लिए आप और भी बहुत कुछ कर सकते हैं। क्यों न अपने प्रयासों को एक पायदान ऊपर ले जाएँ और DataCamp का Exploratory Data Analysis कोर्स शुरू करें?
इसी बीच, यदि आप
moviesडेटा सेट के साथ जारी नहीं रखना चाहते, तो मैं आपको Kaggle पर जाकर अपने लिए कोई समृद्ध और रोचक डेटा सेट ढूँढने के लिए प्रोत्साहित करता हूँ जिसे आप अन्वेषित कर सकें!