كيفية إجراء اختبار شابيرو ويلك في بايثون
اختبار شابيرو ويلك هو اختبار للحالة الطبيعية. يتم استخدامه لتحديد ما إذا كانت العينة تأتي من التوزيع الطبيعي أم لا.
لإجراء اختبار Shapiro-Wilk في لغة Python، يمكننا استخدام الدالة scipy.stats.shapiro() ، والتي تستخدم الصيغة التالية:
scipy.stats.shapiro(x)
ذهب:
- x: جدول بيانات العينة.
تقوم هذه الدالة بإرجاع إحصائية اختبار وقيمة p مقابلة.
إذا كانت القيمة p أقل من مستوى معين من الأهمية، فلدينا أدلة كافية لنقول أن بيانات العينة لا تأتي من التوزيع الطبيعي.
يوضح هذا البرنامج التعليمي بعض الأمثلة حول كيفية استخدام هذه الميزة عمليًا.
مثال 1: اختبار شابيرو ويلك على البيانات الموزعة بشكل طبيعي
لنفترض أن لدينا بيانات العينة التالية:
from numpy.random import seed from numpy.random import randn #set seed (eg make this example reproducible) seed(0) #generate dataset of 100 random values that follow a standard normal distribution data = randn(100)
يوضح الكود التالي كيفية إجراء اختبار Shapiro-Wilk على هذه العينة المكونة من 100 قيمة بيانات لتحديد ما إذا كانت تأتي من التوزيع الطبيعي:
from scipy.stats import shapiro #perform Shapiro-Wilk test shapiro(data) ShapiroResult(statistic=0.9926937818527222, pvalue=0.8689165711402893)
من النتيجة يمكننا أن نرى أن إحصائيات الاختبار هي 0.9927 والقيمة p المقابلة هي 0.8689 .
وبما أن القيمة p لا تقل عن 0.05، فإننا نفشل في رفض فرضية العدم. ليس لدينا أدلة كافية للقول بأن بيانات العينة لا تأتي من التوزيع الطبيعي.
لا ينبغي أن تكون هذه النتيجة مفاجئة لأننا أنشأنا بيانات العينة باستخدام الدالة randn() ، التي تولد قيمًا عشوائية تتبع التوزيع الطبيعي القياسي.
مثال 2: اختبار شابيرو ويلك على البيانات غير الموزعة بشكل طبيعي
لنفترض الآن أن لدينا بيانات العينة التالية:
from numpy.random import seed from numpy.random import fish #set seed (eg make this example reproducible) seed(0) #generate dataset of 100 values that follows a Poisson distribution with mean=5 data = fish(5, 100)
يوضح الكود التالي كيفية إجراء اختبار Shapiro-Wilk على هذه العينة المكونة من 100 قيمة بيانات لتحديد ما إذا كانت تأتي من التوزيع الطبيعي:
from scipy.stats import shapiro #perform Shapiro-Wilk test shapiro(data) ShapiroResult(statistic=0.9581913948059082, pvalue=0.002994443289935589)
من النتيجة يمكننا أن نرى أن إحصائيات الاختبار هي 0.9582 والقيمة p المقابلة هي 0.00299 .
وبما أن القيمة p أقل من 0.05، فإننا نرفض فرضية العدم. لدينا ما يكفي من الأدلة لنقول أن بيانات العينة لا تأتي من التوزيع الطبيعي.
لا ينبغي أن تكون هذه النتيجة مفاجئة أيضًا لأننا أنشأنا بيانات العينة باستخدام وظيفة Poisson() ، والتي تولد قيمًا عشوائية تتبع توزيع Poisson .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إجراء اختبارات الحالة الطبيعية الأخرى في البرامج الإحصائية المختلفة:
كيفية إجراء اختبار شابيرو ويلك في R
كيفية إجراء اختبار أندرسون-دارلنج في بايثون
كيفية إجراء اختبار Kolmogorov-Smirnov في بايثون