• Home
  • /
  • Blog
  • /
  • पायथन में बुनियादी सांख्यिकीय अवधारणाएं जो बच्चों को पता होनी चाहिए

पायथन में बुनियादी सांख्यिकीय अवधारणाएं जो बच्चों को पता होनी चाहिए

पायथन में बुनियादी सांख्यिकीय अवधारणाएं

This post is also available in: English (English) العربية (Arabic)

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

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

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

मूल वर्णनात्मक सांख्यिकी शब्दावली

वर्णनात्मक सांख्यिकी डेटा का वर्णन करने और सारांशित करने के बारे में है। यह दो मुख्य दृष्टिकोणों का उपयोग करता है:

  • मात्रात्मक दृष्टिकोण संख्यात्मक रूप से डेटा का वर्णन और सारांशित करता है।
  • दृश्य दृष्टिकोण चार्ट, प्लॉट, हिस्टोग्राम और अन्य ग्राफ़ के साथ डेटा दिखाता है।

सांख्यिकी में चर के प्रकार

आप वर्णनात्मक आँकड़े एक या अनेक डेटासेट या चरों पर लागू कर सकते हैं। इन चरों को इस प्रकार वर्गीकृत किया गया है:

  • यूनीवेरिएट: जब आप किसी एक वैरिएबल का वर्णन और सारांश करते हैं, तो आप यूनीवेरिएट विश्लेषण कर रहे होते हैं। यूनीवेरिएट डेटा का विश्लेषण इस प्रकार विश्लेषण का सबसे सरल रूप है क्योंकि जानकारी केवल एक मात्रा से संबंधित है जो बदलती है। यह कारणों या संबंधों से संबंधित नहीं है और विश्लेषण का मुख्य उद्देश्य डेटा का वर्णन करना और उसके भीतर मौजूद पैटर्न का पता लगाना है। एक अविभाज्य डेटा का उदाहरण किसी व्यक्ति की ऊंचाई हो सकता है। मान लीजिए कि एक कक्षा के सात छात्रों की ऊंचाई दर्ज की गई है। केवल एक चर है जो ऊंचाई है और यह किसी कारण या संबंध से संबंधित नहीं है। इस प्रकार के डेटा में पाए जाने वाले विवरण पैटर्न को केंद्रीय प्रवृत्ति माप (माध्य, माध्य और मोड), डेटा के फैलाव या प्रसार (रेंज, न्यूनतम, अधिकतम, चतुर्थक, विचरण और मानक विचलन) का उपयोग करके निष्कर्ष निकालकर और आवृत्ति वितरण का उपयोग करके बनाया जा सकता है। टेबल, हिस्टोग्राम, पाई चार्ट, बारंबारता बहुभुज और बार चार्ट।

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

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

माप के प्रकार

आँकड़ों में मूल्यांकन किए गए बुनियादी प्रकार के माप निम्नलिखित हैं:

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

जनसंख्या और नमूने

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

जनसंख्या के इस उपसमुच्चय को प्रतिदर्श कहा जाता है। आदर्श रूप से, नमूना को जनसंख्या की आवश्यक सांख्यिकीय विशेषताओं को संतोषजनक डिग्री तक संरक्षित करना चाहिए। इस तरह, आप जनसंख्या के बारे में निष्कर्ष निकालने के लिए नमूने का उपयोग करने में सक्षम होंगे।

आउटलिएर्स

एक आउटलिएर एक डेटा बिंदु है जो नमूना या जनसंख्या से लिए गए अधिकांश डेटा से महत्वपूर्ण रूप से भिन्न होता है। आउटलेर्स के कई संभावित कारण हैं, लेकिन आपको शुरू करने के लिए यहां कुछ हैं:

  • डेटा में प्राकृतिक भिन्नता
  • प्रेक्षित प्रणाली के व्यवहार में परिवर्तन
  • डेटा संग्रह में त्रुटियां

descriptive statistics in python

डेटा संग्रह त्रुटियां आउटलेर्स का एक विशेष रूप से प्रमुख कारण हैं। उदाहरण के लिए, माप उपकरणों या प्रक्रियाओं की सीमाओं का मतलब यह हो सकता है कि सही डेटा आसानी से प्राप्य नहीं है। अन्य त्रुटियां गलत गणना, डेटा संदूषण, मानवीय त्रुटि आदि के कारण हो सकती हैं।

पायथन में वर्णनात्मक सांख्यिकी

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

ये सांख्यिकी लाइब्रेरी आपकी मदद करते हैं

  • अपने डेटासेट का वर्णन और सारांश
  • वर्णनात्मक आंकड़ों की गणना
  • डेटासेट की कल्पना

पायथन सांख्यिकी लाइब्रेरीज

आपके साथ काम करने के लिए कई पायथन सांख्यिकी पुस्तकालय उपलब्ध हैं, लेकिन इस लेख में, हम कुछ सबसे लोकप्रिय और व्यापक रूप से उपयोग किए जाने वाले लोगों पर विचार करेंगे:

  • सांख्यिकी: पायथन के आँकड़े वर्णनात्मक आँकड़ों के लिए एक अंतर्निहित लाइब्रेरी है। यदि आपके डेटासेट बहुत बड़े नहीं हैं या आप अन्य पुस्तकालयों को आयात करने पर भरोसा नहीं कर सकते हैं तो आप इसका उपयोग कर सकते हैं। अंतर्निहित पायथन सांख्यिकी लाइब्रेरी में सबसे महत्वपूर्ण सांख्यिकी फंक्शन्स की अपेक्षाकृत कम संख्या है। आधिकारिक दस्तावेज विवरण खोजने के लिए एक मूल्यवान संसाधन है।
  • NumPy संख्यात्मक कंप्यूटिंग के लिए एक तृतीय-पक्ष पुस्तकालय है, जिसे एकल और बहु-आयामी सरणियों के साथ काम करने के लिए अनुकूलित किया गया है। इसका प्राथमिक प्रकार सरणी प्रकार है जिसे ndarray कहा जाता है। इस लाइब्रेरी में सांख्यिकीय विश्लेषण के लिए कई रूटीन हैं। आप यहाँ NumPy के आधिकारिक दस्तावेज़ीकरण पा सकते हैं।
  • SciPy NumPy पर आधारित वैज्ञानिक कंप्यूटिंग के लिए एक थर्ड-पार्टी लाइब्रेरी है। यह सांख्यिकीय विश्लेषण के लिए scipy.stats सहित, NumPy की तुलना में अतिरिक्त कार्यक्षमता प्रदान करता है।
  • Pandas, NumPy पर आधारित संख्यात्मक कंप्यूटिंग के लिए एक थर्ड-पार्टी लाइब्रेरी है। यह series वस्तुओं के साथ लेबल किए गए एक-आयामी (1डी) डेटा और DataFrame ऑब्जेक्ट्स के साथ दो-आयामी (2डी) डेटा को संभालने में उत्कृष्टता प्राप्त करता है।
  • Matplotlib डेटा विज़ुअलाइज़ेशन के लिए एक तृतीय-पक्ष लाइब्रेरी है। यह NumPy, SciPy और Pandas के संयोजन में अच्छी तरह से काम करता है।

पायथन में बुनियादी सांख्यिकीय अवधारणाओं की गणना करना

पायथन में उपर्युक्त पुस्तकालयों का उपयोग करने में पहला कदम इन लाइब्रेरीज को आपकी परियोजना में आयात करना है।

import mathimport statisticsimport numpy as npimport scipy.statsimport pandas as pdimport matplotlib.pyplot as pltplt.style.use(‘ggplot’)

पायथन में डेटा बनाना

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

आइए काम करने के लिए कुछ डेटा बनाएं। आप पायथन सूचियों से शुरू करेंगे जिनमें कुछ मनमाना संख्यात्मक डेटा होता है:

x = [8.0, 1, 2.5, 4, 28.0]x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]

यहां हमने दो डेटा सेट बनाए हैं – एक शुद्ध संख्याओं के साथ और दूसरा NAN (नॉट ए नंबर-ए-वैल्यू) के साथ नहीं। जब वे एक नान में आते हैं, तो पायथन सांख्यिकी दिनचर्या के व्यवहार को समझना महत्वपूर्ण है। डेटा विज्ञान में, लापता मान आम हैं, और आप अक्सर उन्हें NAN से बदल देंगे।

केंद्रीय प्रवृत्ति के माप

केंद्रीय प्रवृत्ति के माप डेटासेट के केंद्रीय या मध्य मान दिखाते हैं। पायथन का उपयोग करके कई प्रकार की केंद्रीय प्रवृत्तियों का मूल्यांकन किया जा सकता है। ये

  • मध्यमान
  • भारित माध्य
  • जियोमेट्रिक माध्य
  • अनुकूल माध्य
  • माध्यिका
  • मोड

माध्य: नमूना माध्य, जिसे नमूना अंकगणितीय माध्य भी कहा जाता है या केवल औसत एक डेटासेट में सभी मदों का अंकगणितीय औसत है। डेटासेट का माध्य गणितीय रूप से ∑xi/ni, के रूप में व्यक्त किया जाता है, जहां i = 1, 2, 3, …, n। आप किसी भी सांख्यिकी लाइब्रेरी को आयात किए बिना sum() और len() का उपयोग करके शुद्ध पायथन के साथ माध्य की गणना कर सकते हैं:

mean_ = sum(x) / len(x)

यद्यपि आप बिल्ट-इन पायथन स्टैटिस्टिक्स फ़ंक्शंस का उपयोग करके कंप्यूटिंग माध्य के एक स्वच्छ और सुरुचिपूर्ण तरीके का उपयोग कर सकते हैं:

mean_ = statistics.mean(x)mean_ = statistics.fmean(x)

statistics.fmean() हमेशा एक फ्लोटिंग-पॉइंट नंबर देता है।

माध्य ज्ञात करने के लिए आप NumPy का भी उपयोग कर सकते हैं

mean_ = np.mean(x)np.nanmean(x_with_nan)

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

यदि डेटासेट के प्रत्येक डेटा बिंदु xi के लिए wi वजन है, जहां i = 1, 2, 3, …, n और n आइटमों की संख्या है। फिर, आप प्रत्येक डेटा बिंदु को संबंधित वजन से गुणा करते हैं, सभी उत्पादों को जोड़ते हैं, और प्राप्त योग को वजन के योग से विभाजित करते हैं: ∑(wixi)/∑wi। आप किसी भी सांख्यिकी लाइब्रेरी को आयात किए बिना sum(), zip(), और len() का उपयोग करके शुद्ध पायथन के साथ माध्य की गणना कर सकते हैं:

x = [8.0, 1, 2.5, 4, 28.0]w = [0.1, 0.2, 0.3, 0.25, 0.15]wmean = sum(w[i] * x[i] for i in range(len(x))) / sum(w)wmean = sum(x_ * w_ for (x_, w_) in zip(x, w)) / sum(w)

हालाँकि, यदि आपके पास बड़े डेटासेट हैं, तो NumPy एक बेहतर समाधान प्रदान कर सकता है। NumPy सरणियों या Pandas series का भारित माध्य प्राप्त करने के लिए आप np.average() का उपयोग कर सकते हैं।

y, z, w = np.array(x), pd.Series(x), np.array(w)wmean = np.average(y, weights=w)wmeanwmean = np.average(z, weights=w)

एक अन्य उपाय तत्व-वार उत्पाद w * y का उपयोग np.sum() या .sum() के साथ करना है:

(w * y).sum() / w.sum()

हार्मोनिक माध्य: हार्मोनिक माध्य डेटासेट में सभी मदों के व्युत्क्रमों के माध्य का व्युत्क्रम है: n/∑(1/xi), जहां i = 1, 2, 3, …, n और n मदों की संख्या डेटासेट में।

hmean = len(x) / sum(1 / item for item in x)

आप इस माप की गणना आँकड़ों के साथ भी कर सकते हैं। statistics.harmonic_mean():

hmean = statistics.harmonic_mean(x)

ज्यामितीय माध्य: ज्यामितीय माध्य एक डेटासेट में सभी n तत्वों के गुणनफल का n-वाँ मूल है: n√ℾxi, जहाँ i = 1, 2, 3,…, n।

आप नीचे दिए गए अनुसार शुद्ध पायथन में ज्यामितीय माध्य को लागू कर सकते हैं:

gmean = 1for item in x:gmean *= itemgmean **= 1 / len(x)

ज्यामितीय माध्य ज्ञात करने का सबसे अच्छा तरीका है फंक्शन statistics.geometric_mean() का उपयोग करना, जो सभी मानों को फ्लोटिंग-पॉइंट नंबरों में परिवर्तित करता है और उनका ज्यामितीय माध्य लौटाता है:

gmean = statistics.geometric_mean(x)

आप scipy.stats.gmean() के साथ ज्यामितीय माध्य भी प्राप्त कर सकते हैं:

scipy.stats.gmean(y)

माध्यिका: नमूना माध्यिका एक क्रमबद्ध डेटासेट का सबसे मध्य तत्व है (या तो आरोही या अवरोही क्रम में)। यदि डेटासेट के तत्वों n की संख्या विषम है, तो माध्य मध्य स्थिति पर मान है: 0.5(n + 1)। यदि n सम है, तो माध्यिका मध्य में दो मानों का अंकगणितीय माध्य है, अर्थात् 0.5n और 0.5n + 1 की स्थिति में आइटम

आप शुद्ध पायथन (बिना किसी सांख्यिकी लाइब्रेरी का उपयोग किए) का उपयोग करके माध्यिका पा सकते हैं।

n = len(x)if n % 2: median_ = sorted(x)[round(0.5*(n-1))]else: x_ord, index = sorted(x), round(0.5 * n) median_ = 0.5 * (x_ord[index-1] + x_ord[index])

आप statistics.median() के साथ माध्यिका प्राप्त कर सकते हैं:

median_ = statistics.median(x)

आप माध्यिका को np.median() से भी प्राप्त कर सकते हैं:

median_ = np.median(y)

Pandas Series की वस्तुओं में .median() विधि होती है जो डिफ़ॉल्ट रूप से nan मानों की उपेक्षा करती है:

x.median()

मोड: सैंपल मोड डेटासेट में सबसे अधिक बार होने वाला मान है। यदि ऐसा एक भी मान नहीं है, तो समुच्चय बहु-नोडल है क्योंकि इसमें अनेक मोडल मान हैं।

मोड का मूल्यांकन शुद्ध पायथन का उपयोग करके किया जा सकता है जैसा कि नीचे दिखाया गया है:

u = [2, 3, 2, 8, 12]mode_ = max((u.count(item), item) for item in set(u))[1]

आप statistics.mode() और statistics.multimode() के साथ मोड प्राप्त कर सकते हैं:

mode_ = statistics.mode(u)mode_ = statistics.multimode(u)

आप scipy.stats.mode() के साथ भी नोड प्राप्त कर सकते हैं:

u = np.array(u)mode_ = scipy.stats.mode(u)

Pandas Series की वस्तुओं में .mode() विधि होती है जो बहुविध मूल्यों को अच्छी तरह से संभालती है और डिफ़ॉल्ट रूप से नैन मूल्यों की उपेक्षा करती है:

u = pd.Series(u)u.mode()

परिवर्तनशीलता के माप

डेटा का वर्णन करने के लिए केंद्रीय प्रवृत्ति के उपाय पर्याप्त नहीं हैं। आपको परिवर्तनशीलता के उपायों की भी आवश्यकता होगी जो डेटा बिंदुओं के प्रसार को निर्धारित करते हैं। परिवर्तनशीलता के आमतौर पर इस्तेमाल किए जाने वाले माप हैं:

  • वरियन्स
  • स्टैण्डर्ड डेविएशन
  • स्केवनेस
  • प्रतिशतक
  • रेंज

वरियन्स: सैंपल वरियन्स डेटा के प्रसार की मात्रा निर्धारित करता है। यह संख्यात्मक रूप से दिखाता है कि डेटा बिंदु माध्य से कितनी दूर हैं। आप गणितीय रूप से n तत्वों के साथ डेटासेट के नमूना विचरण को s2 = ∑(xi – mean(x))2/(n – 1) के रूप में व्यक्त कर सकते हैं, जहां i = 1, 2, 3, …, n और माध्य (x) नमूना माध्य है।

जैसा कि नीचे दिखाया गया है, आप नमूना विचरण को खोजने के लिए शुद्ध पायथन का उपयोग कर सकते हैं:

n = len(x)mean_ = sum(x) / nvar_ = sum((item – mean_)**2 for item in x) / (n – 1)

हालाँकि, विचरण खोजने का छोटा और अधिक सुरुचिपूर्ण तरीका सांख्यिकी लाइब्रेरी का उपयोग कर रहा है:

var_ = statistics.variance(x)

आप NumPy के साथ सैंपल वरियन्स की गणना भी कर सकते हैं। इस मामले में आप फ़ंक्शन np.var() या संबंधित विधि .var() का उपयोग करते हैं:

var_ = np.var(y, ddof=1)

पैरामीटर ddof = 1 निर्दिष्ट करना बहुत महत्वपूर्ण है। इस तरह आप delta degrees of freedom को 1 पर सेट करते हैं। pd.Series ऑब्जेक्ट्स में .var() विधि होती है जो डिफ़ॉल्ट रूप से nan मानों को छोड़ देती है:

Var_ = z.var(ddof=1)

Standard Deviation: नमूना मानक विचलन डेटा प्रसार का एक और उपाय है। यह नमूना विचरण से जुड़ा है, जैसे मानक विचलन, s, नमूना विचरण का धनात्मक वर्गमूल है। स्टैण्डर्ड डेविएशन अक्सर विचरण की तुलना में अधिक सुविधाजनक होता है क्योंकि इसमें डेटा बिंदुओं के समान इकाई होती है।

एक बार जब आप वरियन्स प्राप्त कर लेते हैं, तो आप शुद्ध पायथन के साथ स्टैण्डर्ड डेविएशन की गणना कर सकते हैं:

std_ = var_ ** 0.5

आप statistics.stdev() का भी उपयोग कर सकते हैं:

std_ = statistics.stdev(x)

आप लगभग उसी तरह NumPy के साथ स्टैण्डर्ड डेविएशन प्राप्त कर सकते हैं। आप स्टैण्डर्ड डेविएशन की गणना के लिए फ़ंक्शन std() और संबंधित विधि .std() का उपयोग कर सकते हैं।

np.std(y, ddof=1)

pd.Series ऑब्जेक्ट्स में .std() विधि भी होती है जो डिफ़ॉल्ट रूप से nan को छोड़ देती है:

z.std(ddof=1)

स्केवनेस्स: सैंपल स्केवनेस्स डेटा नमूने की विषमता को मापता है। स्केवनेस्स की कई गणितीय परिभाषाएँ हैं। n तत्वों के साथ डेटासेट की विषमता की गणना करने के लिए एक सामान्य अभिव्यक्ति है (n2 / ((n – 1)(n – 2)))(∑(xi – माध्य (x))3 / (ns3))।

स्केवनेस्स मान -1 और 1 (दोनों शामिल) के बीच है। नकारात्मक स्केवनेस्स मान इंगित करता है कि बाईं ओर एक प्रमुख पूंछ है और सकारात्मक स्केवनेस्स मान दाईं ओर एक लंबी पूंछ के अनुरूप है। विषमता के मामले में 0 है, डेटासेट सममित है।

descriptive statistics in python

एक बार जब आप अपने डेटासेट n के आकार की गणना कर लेते हैं, तो नमूना माध्य माध्य_ और मानक विचलन std_, आप शुद्ध पायथन के साथ नमूना तिरछापन प्राप्त कर सकते हैं:

x = [8.0, 1, 2.5, 4, 28.0]n = len(x)mean_ = sum(x) / nvar_ = sum((item – mean_)**2 for item in x) / (n – 1)std_ = var_ ** 0.5skew_ = (sum((item – mean_)**3 for item in x)* n / ((n – 1) * (n – 2) * std_**3))

आप scipy.stats.skew() के साथ सैंपल स्केवनेस्स की गणना भी कर सकते हैं:

y = np.array(x)scipy.stats.skew(y, bias=False)

Pandas Series की वस्तुओं में .skew() विधि होती है जो एक डेटासेट की विषमता भी लौटाती है:

z = pd.Series(x)z.skew()

पर्सेंटाइल और क्वार्टाइल: सैंपल पी पर्सेंटाइल डेटासेट में ऐसा तत्व है कि डेटासेट में तत्वों का p% उस मान से कम या उसके बराबर है। साथ ही, (100 – p)% तत्व उस मान से अधिक या उसके बराबर हैं। यदि डेटासेट में ऐसे दो तत्व हैं, तो सैंपल p पर्सेंटाइल उनका अंकगणितीय माध्य है।

descriptive statistics in python

प्रतिशतक के समान, चतुर्थक नामक एक और अवधारणा है। प्रत्येक डेटा सेट में तीन चतुर्थक होते हैं, जो संपूर्ण डेटासेट को चार क्षेत्रों में विभाजित करते हैं।

  • पहला चतुर्थक नमूना 25 वाँ प्रतिशतक है। यह बाकी डेटासेट से लगभग 25% छोटी वस्तुओं को विभाजित करता है।
  • दूसरा चतुर्थक नमूना 50 वाँ प्रतिशतक या माध्यिका है। लगभग 25% आइटम पहले और दूसरे चतुर्थक के बीच और अन्य 25% दूसरे और तीसरे चतुर्थक के बीच होते हैं। यह पूरे डाटासेट को दो बराबर हिस्सों में बांटता है।
  • तीसरा चतुर्थक नमूना 75 वाँ प्रतिशतक है। यह बाकी डेटासेट से लगभग 25% सबसे बड़ी वस्तुओं को विभाजित करता है।

प्रत्येक भाग में लगभग समान संख्या में आइटम होते हैं। यदि आप अपने डेटा को कई अंतरालों में विभाजित करना चाहते हैं, तो आप statistics.quantiles() का उपयोग कर सकते हैं।

x = [-5.0, -1.1, 0.1, 2.0, 8.0, 12.8, 21.0, 25.8, 41.0]statistics.quantiles(x, n=2)statistics.quantiles(x, n=4, method=’inclusive’)

आउटपुट

[8 .0]

[0.1, 8.0, 21.0]

इस उदाहरण में, 8.0 x की माध्यिका है, जबकि 0.1 और 21.0 नमूना क्रमशः 25वां और 75वां प्रतिशतक है। पैरामीटर n परिणामी समान-संभाव्यता प्रतिशतक की संख्या को परिभाषित करता है, और विधि निर्धारित करती है कि उनकी गणना कैसे की जाए। आप अपने डेटासेट में किसी भी सैंपल पर्सेंटाइल को निर्धारित करने के लिए np.percentile() का भी उपयोग कर सकते हैं। उदाहरण के लिए, आप इस तरह से 5वां और 95वां पर्सेंटाइल पा सकते हैं:

y = np.array(x)p.percentile(y, 5)p.percentile(y, 95)

NumPy आपको quantile() और nanquantile() में बहुत समान कार्यक्षमता प्रदान करता है। यदि आप उनका उपयोग करते हैं, तो आपको पर्सेंटाइल के बजाय मात्रात्मक मानों को 0 और 1 के बीच की संख्या के रूप में प्रदान करना होगा:

np.quantile(y, 0.05)np.quantile(y, 0.95)

pd.Series ऑब्जेक्ट्स में मेथड .quantile() होता है:

z = pd.Series(y)z.quantile(0.05)z.quantile(0.95)

रेंज: डेटा की सीमा डेटासेट में अधिकतम और न्यूनतम तत्व के बीच का अंतर है। आप इसे फ़ंक्शन np.ptp() के साथ प्राप्त कर सकते हैं:

np.ptp(y)

वर्णनात्मक सांख्यिकी का सारांश: SciPy और Pandas एकल फ़ंक्शन या विधि कॉल के साथ वर्णनात्मक आँकड़े शीघ्रता से प्राप्त करने के लिए उपयोगी रूटीन प्रदान करते हैं। आप इस तरह scipy.stats.describe() का उपयोग कर सकते हैं:

result = scipy.stats.describe(y, ddof=1, bias=False)

आउटपुट:

DescribeResult(nobs=9, minmax=(-5.0, 41.0), mean=11.622222222222222, variance=228.75194444444446, skewness=0.9249043136685094, kurtosis=0.14770623629658886)Pandas के समान, यदि बेहतर नहीं है, तो कार्यक्षमता है। Series वस्तुओं में विधि है। .describe():

result = z.describe()

आउटपुट:

count 9.000000

mean 11.622222

std 15.124548

min -5.000000

25% 0.100000

50% 8.000000

75% 21.000000

max 41.000000

dtype: float64

डेटा के जोड़े के बीच सहसंबंध के उपाय

आपको अक्सर डेटासेट में दो चर के संगत तत्वों के बीच संबंध की जांच करनी होगी। उदाहरण के लिए, दो चर हैं, x, और y, तत्वों की समान संख्या के साथ, n। मान लें कि x से x, y से y1, y से x2, से y2 तक, और इसी तरह आगे भी चलता रहता है। तब आप कह सकते हैं कि संगत तत्वों के n जोड़े हैं: (x1, y1), (x2, y2), इत्यादि।

डेटा के जोड़े के बीच सहसंबंध का माप निम्न प्रकार का हो सकता है:

  • सकारात्मक सहसंबंध तब होता है जब y का मान बढ़ता है यदि x के संगत मान में वृद्धि होती है और इसके विपरीत।
  • सकारात्मक सहसंबंध तब होता है जब y का मान घटता है यदि x के संगत मान में वृद्धि होती है और इसके विपरीत।
  • शून्य सहसंबंध मौजूद है यदि ऐसा कोई स्पष्ट संबंध नहीं है।

descriptive statistics in python

डेटासेट के बीच सहसंबंध को मापने वाले दो आँकड़े सहप्रसरण और सहसंबंध गुणांक हैं।

सहप्रसरण: नमूना सहप्रसरण एक माप है जो चरों की एक जोड़ी के बीच संबंध की ताकत और दिशा को मापता है:

  • यदि सहसंबंध सकारात्मक है, तो सहप्रसरण भी सकारात्मक है। एक मजबूत संबंध सहप्रसरण के उच्च मूल्य से मेल खाता है।
  • यदि सहसंबंध ऋणात्मक है, तो सहप्रसरण ऋणात्मक भी है। एक मजबूत संबंध सहप्रसरण के निम्न (या उच्च निरपेक्ष) मान से मेल खाता है।
  • यदि सहसंबंध कमजोर है, तो सहप्रसरण शून्य के करीब है।

उदाहरण के लिए, 0.5 और 1 के बीच एक सहप्रसरण मान एक मजबूत सकारात्मक संबंध दर्शाता है, -0.5 और -1 के बीच का मान एक मजबूत नकारात्मक संबंध दर्शाता है। इसी तरह, 0 और 0.5 के बीच एक सहप्रसरण मान एक कमजोर सकारात्मक संबंध दर्शाता है, 0 और -0.5 के बीच कोई भी मान एक कमजोर नकारात्मक संबंध दर्शाता है।

चर x और y के सहप्रसरण को गणितीय रूप से sxy = ∑ (xi – mean(x)) (yi – mean(y))/(n – 1) के रूप में परिभाषित किया गया है, जहां i = 1, 2, 3, …, n माध्य (x) x का प्रतिदर्श माध्य है और माध्य (y) y का प्रतिदर्श माध्य है।

इस प्रकार आप शुद्ध पायथन में सहप्रसरण की गणना कर सकते हैं:

n = len(x)mean_x, mean_y = sum(x) / n, sum(y) / ncov_xy = (sum((x[k] – mean_x) * (y[k] – mean_y) for k in range(n))/(n – 1))

NumPy में फ़ंक्शन cov() है जो कॉन्वर्सिस मैट्रिक्स लौटाता है:

cov_matrix = np.cov(x_, y_)

आप np.conv() के साथ शुद्ध पायथन के समान सहप्रसरण का मान प्राप्त कर सकते हैं। Pandas की Series में .conv() विधि है जिसका उपयोग आप सहप्रसरण की गणना के लिए कर सकते हैं:

cov_xy = x__.cov(y__)

सहसंबंध गुणांक: सहसंबंध गुणांक, या पियर्सन उत्पाद-क्षण सहसंबंध गुणांक, प्रतीक r द्वारा दर्शाया गया है। गुणांक डेटा के बीच सहसंबंध का एक और उपाय है। सहसंबंध गुणांक के संबंध में निम्नलिखित महत्वपूर्ण बिंदुओं को ध्यान में रखा जाना चाहिए:

  • मान r > 0 सकारात्मक सहसंबंध दर्शाता है।
  • मान r <0 नकारात्मक सहसंबंध को इंगित करता है।
  • मान r = 1 r का अधिकतम संभव मान है। यह चर के बीच एक पूर्ण सकारात्मक रैखिक संबंध से मेल खाता है।
  • मान r = -1, r का न्यूनतम संभव मान है। यह चर के बीच एक पूर्ण नकारात्मक रैखिक संबंध से मेल खाता है।
  • मान r = 0, या जब r शून्य के आसपास होता है, इसका अर्थ है कि चरों के बीच संबंध कमजोर है।

सहसंबंध गुणांक के लिए गणितीय सूत्र r = sxy /(sxsy) है, जहां sx और sy क्रमशः x और y के मानक विचलन हैं और sxy x और y के बीच सहप्रसरण है।

var_x = sum((item – mean_x)**2 for item in x) / (n – 1)var_y = sum((item – mean_y)**2 for item in y) / (n – 1)std_x, std_y = var_x ** 0.5, var_y ** 0.5r = cov_xy / (std_x * std_y)

scipy.stats में नियमित pearsonr() है जो सहसंबंध गुणांक और p-value की गणना करता है:

r, p = scipy.stats.pearsonr(x_, y_)

pearsonr() दो संख्याओं के साथ एक टपल लौटाता है। पहला वाला r है और दूसरा p-मान है।

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>