كيفية إجراء اختبار أندرسون-دارلنج في بايثون
اختبار Anderson-Darling هو اختبار مدى جودة الملاءمة الذي يقيس مدى ملاءمة بياناتك لتوزيع محدد.
يُستخدم هذا الاختبار غالبًا لتحديد ما إذا كانت بياناتك تتبعالتوزيع الطبيعي أم لا.
هذا النوع من الاختبارات مفيد لاختبار الحالة الطبيعية، وهو افتراض شائع الاستخدام في العديد من الاختبارات الإحصائية، بما في ذلك الانحدار ، و ANOVA ، واختبارات T، وغيرها الكثير.
مثال: اختبار أندرسون-دارلينج في بايثون
لإجراء اختبار Anderson-Darling في بايثون، يمكننا استخدام الدالة anderson() من مكتبة scipy.stats، والتي تستخدم الصيغة التالية:
أندرسون(x, dist=’norm’)
ذهب:
- x : جدول بيانات العينة
- dist : نوع التوزيع الذي سيتم الاختبار عليه. الإعداد الافتراضي هو “قياسي”، ولكن يمكنك أيضًا تحديد “expon” أو “لوجستيات”.
على سبيل المثال، فيما يلي كيفية إجراء اختبار أندرسون-دارلينج على عينة مكونة من 50 متغيرًا عشوائيًا موزعة بشكل طبيعي:
import numpy as np #create data np.random.seed(0) data = np.random.normal(size=50) #perform Anderson-Darling Test from scipy.stats import anderson anderson(data) AndersonResult( statistic =0.15006999533388665, critical_values =array([0.538, 0.613, 0.736, 0.858, 1.021]), significance_level =array([15. , 10. , 5. , 2.5, 1. ]))
إحصائيات الاختبار هي 0.150 . يمكننا مقارنة هذه القيمة بكل قيمة حرجة تتوافق مع كل مستوى أهمية لمعرفة ما إذا كانت نتائج الاختبار مهمة. على سبيل المثال:
- القيمة الحرجة لـ α = 0.01 هي 1.021 . وبما أن إحصائية الاختبار (0.150) ليست أكبر من هذه القيمة الحرجة، فإن النتائج ليست مهمة عند مستوى الأهمية 0.01.
- القيمة الحرجة لـ α = 0.025 هي 0.858 . وبما أن إحصائية الاختبار (0.150) ليست أكبر من هذه القيمة الحرجة، فإن النتائج ليست مهمة عند مستوى الأهمية 0.025.
وما إلى ذلك وهلم جرا.
يمكننا أن نرى أن نتائج الاختبار ليست ذات دلالة عند أي مستوى من الأهمية، مما يعني أننا لن نرفض الفرضية الصفرية للاختبار. وبالتالي، ليس لدينا أدلة كافية للادعاء بأن البيانات التي تم أخذ عينات منها لا يتم توزيعها بشكل طبيعي.
لا ينبغي أن تكون هذه النتيجة مفاجئة نظرًا لأننا استخدمنا الدالة np.rand.normal() لإنشاء عينة مكونة من 50 قيمة موزعة بشكل طبيعي.
بدلًا من ذلك، فكر فيما إذا أجرينا اختبار أندرسون-دارلينج على عينة مكونة من 50 عددًا صحيحًا عشوائيًا بين 0 و10:
import numpy as np #create data np.random.seed(0) data = np.random.randint(0, 10, size=50) #perform Anderson-Darling Test from scipy.stats import anderson anderson(data) AndersonResult( statistic =1.1926463985076836, critical_values =array([0.538, 0.613, 0.736, 0.858, 1.021]), significance_level =array([15. , 10. , 5. , 2.5, 1. ]))
إحصائيات الاختبار هي 1.1926 . يمكننا مقارنة هذه القيمة بكل قيمة حرجة تتوافق مع كل مستوى أهمية لمعرفة ما إذا كانت نتائج الاختبار مهمة. على سبيل المثال:
- القيمة الحرجة لـ α = 0.01 هي 1.021 . وبما أن إحصائية الاختبار (1.1926) أكبر من هذه القيمة الحرجة، فإن النتائج تكون معنوية عند مستوى دلالة 0.01.
- القيمة الحرجة لـ α = 0.025 هي 0.858 . وبما أن إحصائية الاختبار (1.1926) أكبر من هذه القيمة الحرجة، فإن النتائج تكون معنوية عند مستوى دلالة 0.025.
وما إلى ذلك وهلم جرا.
يمكننا أن نرى أن نتائج الاختبار مهمة عند كل مستوى من مستويات الأهمية، مما يعني أننا سنرفض الفرضية الصفرية للاختبار بغض النظر عن مستوى الأهمية الذي نختار استخدامه. وبالتالي، لدينا ما يكفي من الأدلة لنقول أن البيانات التي تم أخذ عينات منها لا يتم توزيعها بشكل طبيعي.
لا ينبغي أن تكون هذه النتيجة مفاجئة أيضًا نظرًا لأننا استخدمنا الدالة np.rand.randint() لإنشاء عينة مكونة من 50 عددًا صحيحًا عشوائيًا بين 0 و10، وهو أمر من غير المرجح أن يتبع التوزيع الطبيعي.
يمكنك العثور على المزيد من دروس بايثون هنا .