كيفية حساب درجات z في بايثون


في الإحصائيات، تخبرنا النتيجة z عن عدد الانحرافات المعيارية للقيمة عن المتوسط . نستخدم الصيغة التالية لحساب درجة z:

ض = (X – μ) / σ

ذهب:

  • X هي قيمة بيانات أولية واحدة
  • μ هو متوسط عدد السكان
  • σ هو الانحراف المعياري للسكان

يشرح هذا البرنامج التعليمي كيفية حساب نقاط z لقيم البيانات الأولية في بايثون.

كيفية حساب درجات Z في بايثون

يمكننا حساب نقاط z في بايثون باستخدام scipy.stats.zscore ، والذي يستخدم الصيغة التالية:

scipy.stats.zscore(a, axis=0, ddof=0, nan_policy=’propagate’)

ذهب:

  • a : كائن من نوع المصفوفة يحتوي على بيانات
  • المحور : المحور الذي يتم من خلاله حساب درجات z. القيمة الافتراضية هي 0.
  • ddof : تصحيح درجات الحرية في حساب الانحراف المعياري. القيمة الافتراضية هي 0.
  • nan_policy : كيفية التعامل عندما يحتوي الإدخال على nan. الافتراضي هو نشر، والذي يُرجع nan. يؤدي استخدام “رفع” إلى ظهور خطأ بينما يؤدي “حذف” إلى إجراء عمليات حسابية متجاهلاً قيم النانو.

توضح الأمثلة التالية كيفية استخدام هذه الدالة لحساب نقاط z لمصفوفات numpy أحادية البعد، ومصفوفات numpy متعددة الأبعاد، وPandas DataFrames.

عدد المصفوفات أحادية البعد

الخطوة 1: استيراد الوحدات.

 import pandas as pd
import numpy as np
import scipy.stats as stats

الخطوة 2: إنشاء جدول القيم.

 data = np.array([6, 7, 7, 12, 13, 13, 15, 16, 19, 22])

الخطوة 3: حساب درجات z لكل قيمة في الجدول.

 stats.zscore(data)

[-1.394, -1.195, -1.195, -0.199, 0, 0, 0.398, 0.598, 1.195, 1.793]

تخبرنا كل درجة z بعدد الانحرافات المعيارية للقيمة الفردية عن المتوسط. على سبيل المثال:

  • القيمة الأولى للرقم “6” في الجدول هي 1.394 انحراف معياري أقل من المتوسط.
  • القيمة الخامسة لـ “13” في الجدول هي 0 انحراف معياري عن الوسط، أي أنها تساوي المتوسط.
  • القيمة الأخيرة لـ “22” في الجدول هي 1.793 انحراف معياري فوق المتوسط.

عدد المصفوفات متعددة الأبعاد

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

 data = np.array([[5, 6, 7, 7, 8],
                 [8, 8, 8, 9, 9],
                 [2, 2, 4, 4, 5]])

يمكننا استخدام الصيغة التالية لحساب درجات z لكل جدول:

 stats.zscore(data, axis=1)

[[-1.569 -0.588 0.392 0.392 1.373]
[-0.816 -0.816 -0.816 1.225 1.225]
[-1.167 -1.167 0.5 0.5 1.333]]

يتم عرض الدرجات z لكل قيمة فردية نسبة إلى الجدول الذي تم العثور عليها فيه. على سبيل المثال:

  • القيمة الأولى للرقم “5” في الجدول الأول هي 1.159 انحراف معياري تحت متوسط جدوله.
  • القيمة الأولى “8” في الجدول الثاني هي 0.816 انحراف معياري تحت متوسط جدوله.
  • القيمة الأولى للرقم “2” في الجدول الثالث هي 1.167 انحراف معياري تحت متوسط جدوله.

إطارات بيانات الباندا

لنفترض أن لدينا Pandas DataFrame بدلاً من ذلك:

 data = pd.DataFrame(np.random.randint(0, 10, size=(5, 3)), columns=['A', 'B', 'C'])
data

ABC
0 8 0 9
1 4 0 7
2 9 6 8
3 1 8 1
4 8 0 8

يمكننا استخدام وظيفة التطبيق لحساب درجة z للقيم الفردية لكل عمود:

 data.apply(stats.zscore)

          ABC
0 0.659380 -0.802955 0.836080
1 -0.659380 -0.802955 0.139347
2 0.989071 0.917663 0.487713
3 -1.648451 1.491202 -1.950852
4 0.659380 -0.802955 0.487713

يتم عرض الدرجات z لكل قيمة فردية بالنسبة إلى العمود الذي توجد فيه. على سبيل المثال:

  • القيمة الأولى للرقم “8” في العمود الأول هي 0.659 انحراف معياري فوق القيمة المتوسطة لعموده.
  • القيمة “0” الأولى في العمود الثاني هي 0.803 انحرافات معيارية أقل من القيمة المتوسطة في العمود الخاص بها.
  • القيمة الأولى للرقم “9” في العمود الثالث هي 0.836 انحراف معياري فوق القيمة المتوسطة لعموده.

مصادر إضافية:

كيفية حساب درجات Z في إكسيل
كيفية حساب درجات Z في SPSS
كيفية حساب نقاط Z على الآلة الحاسبة TI-84

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *