المفاهيم الإحصائية الأساسية في بايثون التي يجب أن يعرفها الأطفال

This post is also available in: English (الإنجليزية)

أثناء العمل مع مشاريع التعلم الآلي ، يتجاهل الكثير منا عمومًا أهم جزأين – الرياضيات والبيانات. هذان النوعان مهمان للغاية لأن نتائج نموذج ML تعتمد كليًا على البيانات المقدمة من قبلنا.

في إحدى مقالاتنا ، ناقشنا كيفية إنشاء بيانات CSV واستخدامها في مشاريع ML الخاصة بنا. ولكن قبل القيام بذلك ، من المهم فهم البيانات. يأتي فهم البيانات بطريقتين – الإحصاء والتصور.

نظرًا لاستخدام Python على نطاق واسع في تطوير مشاريع ML ، فسننظر في الإحصاء الوصفي في Python.

مصطلحات الإحصاء الوصفي الأساسية

الإحصاء الوصفي يدور حول وصف البيانات وتلخيصها. يستخدم طريقتين رئيسيتين:

  • يصف النهج الكمي البيانات ويلخصها عدديًا.
  • يوضح النهج المرئي البيانات مع المخططات والرسوم البيانية والرسوم البيانية والرسوم البيانية الأخرى.

أنواع المتغيرات في الإحصاء

يمكنك تطبيق الإحصائيات الوصفية على مجموعة بيانات أو متغيرات واحدة أو أكثر. يتم تصنيف هذه المتغيرات على أنها

  • متغير وحيد: عندما تصف متغيرًا واحدًا وتلخصه ، فأنت تقوم بإجراء تحليل أحادي المتغير. وبالتالي فإن تحليل البيانات أحادية المتغير هو أبسط شكل من أشكال التحليل لأن المعلومات تتعامل مع كمية واحدة فقط تتغير. لا يتعامل مع الأسباب أو العلاقات والغرض الرئيسي من التحليل هو وصف البيانات والعثور على الأنماط الموجودة داخلها. يمكن أن يكون مثال البيانات أحادية المتغير ارتفاع الشخص. افترض أنه تم تسجيل ارتفاعات سبعة طلاب في الفصل. هناك متغير واحد فقط وهو الارتفاع ولا يتعامل مع أي سبب أو علاقة. يمكن إجراء أنماط الوصف الموجودة في هذا النوع من البيانات من خلال استخلاص النتائج باستخدام مقاييس الميل المركزي (المتوسط ​​والوسيط والوضع) ، وتشتت البيانات أو انتشارها (النطاق ، الحد الأدنى ، الحد الأقصى ، الرباعيات ، التباين والانحراف المعياري) واستخدام توزيع التردد الجداول والمدرجات التكرارية والمخططات الدائرية ومضلعات التردد والمخططات الشريطية.

  • متغير ثنائي: عندما تبحث عن علاقات إحصائية بين زوج من المتغيرات ، فأنت تقوم بتحليل ثنائي المتغير. يتعامل تحليل هذا النوع من البيانات مع الأسباب والعلاقات ويتم التحليل لمعرفة العلاقة بين متغيرين. يمكن أن تكون البيانات ثنائية المتغير مثالاً على درجة الحرارة ومبيعات الآيس كريم في فصل الصيف. وبالتالي ، فإن تحليل البيانات ثنائي المتغير يتضمن مقارنات وعلاقات وأسباب وتفسيرات. غالبًا ما يتم رسم هذه المتغيرات على المحور X و Y على الرسم البياني لفهم البيانات بشكل أفضل ويعتمد أحد هذه المتغيرات بينما يعتمد الآخر. (درجة الحرارة متغير مستقل ومبيعات الآيس كريم متغير تابع).

  • متعدد المتغيرات: عند إجراء تحليل بمتغيرات متعددة (أكثر من متغيرين) ، فأنت تقوم بإجراء تحليل متعدد المتغيرات. ومن الأمثلة على هذا النوع من البيانات ، افترض أن المعلن يريد مقارنة شعبية أربعة إعلانات على موقع ويب ، ثم يمكن قياس معدلات النقر لكلٍ من الرجال والنساء ، ويمكن بعد ذلك فحص العلاقات بين المتغيرات. إنه مشابه للمتغير الثنائي ولكنه يحتوي على أكثر من متغير تابع واحد. تعتمد طرق إجراء التحليل على هذه البيانات على الأهداف المراد تحقيقها. بعض التقنيات هي تحليل الانحدار وتحليل المسار وتحليل العوامل وتحليل التباين متعدد المتغيرات (MANOVA).

أنواع التدابير

فيما يلي الأنواع الأساسية من المقاييس التي يتم تقييمها في الإحصاء:

  • يخبرك الاتجاه المركزي عن مراكز البيانات. التدابير المفيدة تشمل المتوسط ​​والوسيط والوضع.
  • يخبرك المتغيرعن انتشار البيانات. تشمل التدابير المفيدة التباين والانحراف المعياري.
  • يخبرك الارتباطأو المتغير المشترك عن العلاقة بين زوج من المتغيرات في مجموعة البيانات. تشمل التدابير المفيدة معامل التباين المشترك والارتباط.

السكان والعينات

في الإحصائيات ، السكانعبارة عن مجموعة من جميع العناصر أو العناصر التي تهتم بها. غالبًا ما يكون عدد السكان كبيرًا ، مما يجعلهم غير مناسبين لجمع البيانات وتحليلها. لهذا السبب يحاول الإحصائيون عادةً التوصل إلى بعض الاستنتاجات حول مجموعة سكانية باختيار وفحص مجموعة فرعية تمثيلية لتلك المجموعة السكانية.

تسمى هذه المجموعة الفرعية من السكان عينة. من الناحية المثالية ، يجب أن تحافظ العينة على السمات الإحصائية الأساسية للسكان بدرجة مرضية. بهذه الطريقة ، ستتمكن من استخدام العينة للحصول على استنتاجات حول السكان.

القيم المتطرفة

الخارج هو نقطة بيانات تختلف اختلافًا كبيرًا عن غالبية البيانات المأخوذة من عينة أو مجموعة سكانية. هناك العديد من الأسباب المحتملة للقيم المتطرفة ، ولكن إليك بعضًا منها لتبدأ بها:

  • الاختلاف الطبيعي في البيانات
  • التغيير في سلوك النظام المرصود
  • أخطاء في جمع البيانات

descriptive statistics in python

تعتبر أخطاء جمع البيانات سببًا بارزًا بشكل خاص للقيم المتطرفة. على سبيل المثال ، يمكن أن تعني قيود أدوات أو إجراءات القياس أن البيانات الصحيحة ببساطة لا يمكن الحصول عليها. يمكن أن تحدث أخطاء أخرى بسبب الحسابات الخاطئة ، وتلوث البيانات ، والخطأ البشري ، وما إلى ذلك.

الإحصاء الوصفي في بايثون

في عصر البيانات الضخمة والذكاء الاصطناعي ، أصبح علم البيانات والتعلم الآلي ضروريين في العديد من مجالات العلوم والتكنولوجيا. أحد الجوانب الضرورية للعمل مع البيانات هو القدرة على وصف البيانات وتلخيصها وتمثيلها بشكل مرئي. مكتبات إحصائيات Python هي أدوات شاملة وشائعة ومستخدمة على نطاق واسع ستساعدك في العمل مع البيانات.

تساعدك مكتبات الإحصاء هذه على

  • وصف وتلخيص مجموعات البيانات الخاصة بك
  • حساب الإحصاء الوصفي
  • تصور مجموعات البيانات الخاصة بك

مكتبات إحصائيات بايثون

هناك العديد من مكتبات إحصائيات Python المتاحة لك للعمل معها ، ولكن في هذه المقالة ، سننظر في بعض المكتبات الأكثر شيوعًا والأكثر استخدامًا:

  • الإحصائيات: تعد إحصائيات Python مكتبة مضمنة للإحصاءات الوصفية. يمكنك استخدامه إذا لم تكن مجموعات البيانات الخاصة بك كبيرة جدًا أو إذا كنت لا تستطيع الاعتماد على استيراد مكتبات أخرى. تحتوي مكتبة إحصائيات Python المدمجة على عدد صغير نسبيًا من وظائف الإحصاء الأكثر أهمية. الوثائق الرسمية هي مورد قيم للعثور على التفاصيل.
  • NumPy هي مكتبة تابعة لجهة خارجية للحوسبة الرقمية ، تم تحسينها للعمل مع مصفوفات أحادية ومتعددة الأبعاد. نوعه الأساسي هو نوع المصفوفة المسمى ndarray. تحتوي هذه المكتبة على العديد من الإجراءات الروتينية للتحليل الإحصائي. يمكنك العثور على الوثائق الرسمية لـ NumPy هنا.
  • SciPy هي مكتبة تابعة لجهة خارجية للحوسبة العلمية بناءً على NumPy. يوفر وظائف إضافية مقارنة بـ NumPy ، بما في ذلك scipy.stats للتحليل الإحصائي.
  • Pandas هي مكتبة تابعة لجهة خارجية للحوسبة الرقمية بناءً على NumPy. تتفوق في معالجة البيانات ذات البعد الواحد (1D) مع كائنات series وبيانات ثنائية الأبعاد (2D) مع كائنات DataFrame.
  • Matplotlib هي مكتبة تابعة لجهة خارجية لتصور البيانات. إنه يعمل بشكل جيد مع NumPy و SciPy و Pandas.

حساب المفاهيم الإحصائية الأساسية في بايثون

الخطوة الأولى في استخدام المكتبات المذكورة أعلاه في Python هي استيراد هذه المكتبات إلى مشروعك.

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

إنشاء البيانات في بايثون

يمكن إنشاء البيانات في بايثون بعدة طرق. يمكنك إنشاء إطارات بيانات وهمية باستخدام حزم الباندا و NumPy. يتم تحضير البيانات في معظم الأحيان في MS Excel وبعد ذلك يتم استيرادها إلى Python. هذا ليس نهجا فعالا. تتمثل الطريقة الفعالة في إعداد بيانات عشوائية في Python واستخدامها لاحقًا لمعالجة البيانات.

دعنا ننشئ بعض البيانات للعمل معها. ستبدأ بقوائم بايثون التي تحتوي على بعض البيانات الرقمية العشوائية:

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. يمكنك حساب المتوسط ​​باستخدام لغة Python الخالصة باستخدام sum () و len () ، دون استيراد أي من مكتبات الإحصاء:

mean_ = sum(x) / len(x)

على الرغم من أنه يمكنك استخدام طريقة نظيفة وأنيقة للحساب يعني استخدام وظائف إحصائيات Python المضمنة:

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

statistics.fmean() تُرجع دائمًا رقمًا فاصلة عائمة.

يمكنك أيضًا استخدام NumPy للعثور على المتوسط

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

المتوسط ​​المرجح: يُطلق على المتوسط ​​المرجح ، ويسمى أيضًا المتوسط ​​الحسابي الموزون أو المتوسط ​​المرجح ، تعميمًا للمتوسط ​​الحسابي الذي يتيح لك تحديد المساهمة النسبية لكل نقطة بيانات في النتيجة.

إذا كان wi هو الوزن لكل نقطة بيانات xi من مجموعة البيانات ، حيث i = 1 ، 2 ، 3 ، … ، n و n هو عدد العناصر. بعد ذلك ، تقوم بضرب كل نقطة بيانات بالوزن المقابل ، وجمع كل المنتجات ، وقسمة المجموع الذي تم الحصول عليه مع مجموع الأوزان: ∑ (wixi) / ∑wi. يمكنك حساب المتوسط ​​باستخدام Python الخالصة باستخدام 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 حلاً أفضل. يمكنك استخدام np.average () للحصول على المتوسط ​​المرجح لمصفوفات NumPy أو سلسلة Pandas.

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 (ن 1). إذا كان n زوجيًا ، فإن الوسيط هو المتوسط ​​الحسابي للقيمتين في الوسط ، أي العناصر الموجودة في الموضعين 0.5n و 0.5n 1.

يمكنك العثور على الوسيط باستخدام لغة Python الخالصة (بدون استخدام أي مكتبات إحصائية).

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 على الطريقة .median() التي تتجاهل قيم nan افتراضيًا:

x.median()

الوضع: وضع العينة هو القيمة التي تحدث بشكل متكرر في مجموعة البيانات. إذا لم تكن هناك قيمة واحدة من هذا القبيل ، فإن المجموعة تكون متعددة الوسائط لأنها تحتوي على قيم مشروطة متعددة.

يمكن تقييم الوضع باستخدام لغة Python الخالصة كما هو موضح أدناه:

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)

تحتوي كائنات Series Pandas على الطريقة .mode() التي تتعامل مع القيم متعددة الوسائط جيدًا وتتجاهل قيم nan افتراضيًا:

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

مقاييس التباين

مقاييس الاتجاه المركزي ليست كافية لوصف البيانات. ستحتاج أيضًا إلى مقاييس التباين التي تحدد مدى انتشار نقاط البيانات. مقاييس التباين شائعة الاستخدام هي:

  • التباين
  • الانحراف المعياري
  • انحراف
  • النسب المئوية
  • نطاق

التباين: يحدد تباين العينة كمية انتشار البيانات. يعرض عدديًا مدى بُعد نقاط البيانات عن المتوسط. يمكنك التعبير عن تباين العينة لمجموعة البيانات باستخدام n عنصرًا رياضيًا مثلs2 = ∑(xi – mean(x))2/(n – 1) i = 1 ، 2 ، 3 ، … ، n والمتوسط ​​(x) هو متوسط ​​العينة.

يمكنك استخدام لغة Python النقية للعثور على تباين العينة كما هو موضح أدناه:

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

ومع ذلك ، فإن الطريقة الأقصر والأكثر أناقة للعثور على التباين هي استخدام مكتبة statistics:

var_ = statistics.variance(x)

يمكنك أيضًا حساب تباين العينة باستخدام NumPy. في هذه الحالة ، يمكنك استخدام الدالة np.var () أو الطريقة المقابلة .var():

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

من المهم جدًا تحديد المعلمة ddof = 1. هذه هي الطريقة التي تحدد بها delta degrees of freedom إلى 1. pd.Series الكائنات لديها الطريقة .var() الذي يتخطى قيم نان افتراضيًا:

Var_ = z.var(ddof=1)

الانحراف المعياري: الانحراف المعياري للعينة هو مقياس آخر لانتشار البيانات. إنه مرتبط بتباين العينة ، مثل الانحراف المعياري s ، وهو الجذر التربيعي الموجب لتباين العينة. غالبًا ما يكون الانحراف المعياري أكثر ملاءمة من التباين لأنه يحتوي على نفس وحدة نقاط البيانات.

بمجرد حصولك على التباين ، يمكنك حساب الانحراف المعياري باستخدام لغة Python الخالصة على النحو التالي:

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 – mean (x)) 3 / (ns3)).

تقع قيمة الانحراف بين -1 و 1 (كلاهما مضمّن). تشير قيم الانحراف السالب إلى وجود ذيل مسيطر على الجانب الأيسر وقيم الانحراف الموجب تتوافق مع ذيل أطول على الجانب الأيمن. في حالة الانحراف هو 0 ، تكون مجموعة البيانات متماثلة.

descriptive statistics in python

بمجرد أن تقوم بحساب حجم مجموعة البيانات n ، ومتوسط ​​العينة _ ، والانحراف المعياري std_ ، يمكنك الحصول على نموذج الانحراف باستخدام Python الخالص على النحو التالي:

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)

تحتوي كائنات Series Pandas على الطريقة .skew () التي تُرجع أيضًا انحراف مجموعة البيانات:

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

النسب المئوية والربيعات: النسبة المئوية للعينة هيالعنصر في مجموعة البيانات بحيث تكون النسبة المئوية للعناصر في مجموعة البيانات أقل من هذه القيمة أو مساوية لها. أيضًا ، (100 – p)٪ من العناصر أكبر من هذه القيمة أو مساوية لها. إذا كان هناك عنصرين من هذا القبيل في مجموعة البيانات ، فإن النسبة المئوية للعينة هيالمتوسط ​​الحسابي.

descriptive statistics in python

على غرار النسب المئوية ، هناك مفهوم آخر يسمى الرباعية. تحتوي كل مجموعة بيانات على ثلاثة أرباع ، والتي تقسم مجموعة البيانات الكاملة إلى أربع مناطق.

  • الربع الأول هو العينة المئوية الخامسة والعشرون. يقسم ما يقرب من 25٪ من العناصر الأصغر من باقي مجموعة البيانات.
  • الربع الثاني هو العينة المئوية الخمسون أو الوسيط. ما يقرب من 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 () لتحديد أي نسبة مئوية للعينة في مجموعة البيانات الخاصة بك. على سبيل المثال ، هذه هي الطريقة التي يمكنك بها إيجاد النسب المئوية الخامسة والتسعين:

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 has similar, if not better, functionality. Series objects have the method .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. لنفترض أن x1 من x تقابل y1 من y ، و x2 من x إلى y2 من y ، وهكذا. يمكنك بعد ذلك القول إن هناك عددًا من أزواج العناصر المتوافقة: (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 – يعني (x)) (yi – يعني (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 () كما هو الحال مع Python النقية. تحتوي سلسلة Pandas على الطريقة .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() الروتيني الذي يحسب معامل الارتباط وvalue-p:

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

تُرجع الدالة pearsonr () مجموعة مكونة من رقمين. الأول هو r والثاني هو قيمة p.

أضف تعليق