كيفية إجراء اختبار nemenyi post-hoc في بايثون
اختبار فريدمان هو بديل غير معلمي للقياسات المتكررة ANOVA . يتم استخدامه لتحديد ما إذا كان هناك فرق ذو دلالة إحصائية بين متوسطات ثلاث مجموعات أو أكثر تظهر فيها نفس المواضيع في كل مجموعة أم لا.
إذا كانت القيمة p من اختبار فريدمان ذات دلالة إحصائية، فيمكننا إجراء اختبار Nemenyi اللاحق لتحديد المجموعات المختلفة بالضبط.
يوضح المثال التالي خطوة بخطوة كيفية إجراء اختبار Nemenyi في بايثون.
الخطوة 1: إنشاء البيانات
لنفترض أن أحد الباحثين يريد معرفة ما إذا كانت أوقات رد فعل المرضى متساوية مع ثلاثة أدوية مختلفة. ولاختبار ذلك، قام بقياس زمن رد الفعل (بالثواني) لعشرة مرضى مختلفين لكل دواء من الأدوية الثلاثة.
يمكننا إنشاء الجداول الثلاثة التالية التي تحتوي على أوقات الاستجابة لكل مريض على كل من الأدوية الثلاثة:
group1 = [4, 6, 3, 4, 3, 2, 2, 7, 6, 5] group2 = [5, 6, 8, 7, 7, 8, 4, 6, 4, 5] group3 = [2, 2, 5, 3, 2, 2, 1, 4, 3, 2]
الخطوة الثانية: إجراء اختبار فريدمان
بعد ذلك، سنقوم بإجراء اختبار فريدمان باستخدام الدالة Friedmanchisquare() من مكتبة scipy.stats:
from scipy import stats #perform Friedman Test stats. friedmanchisquare (group1, group2, group3) FriedmanchisquareResult(statistic=13.3513513, pvalue=0.00126122012)
يستخدم اختبار فريدمان الفرضيات الصفرية والبديلة التالية:
الفرضية الصفرية (H 0 ): متوسط كل مجتمع متساوي.
الفرضية البديلة: (Ha): يوجد وسط مجتمعي واحد على الأقل يختلف عن المتوسطات الأخرى.
في هذا المثال، إحصائيات الاختبار هي 13.35135 والقيمة p المقابلة هي 0.00126 . وبما أن هذه القيمة p أقل من 0.05، يمكننا رفض الفرضية الصفرية القائلة بأن متوسط وقت الاستجابة هو نفسه لجميع الأدوية الثلاثة.
بمعنى آخر، لدينا ما يكفي من الأدلة لنستنتج أن نوع الدواء المستخدم يسبب اختلافات ذات دلالة إحصائية في زمن الاستجابة.
الخطوة 3: إجراء اختبار Nemenyi
ومن ثم يمكننا إجراء اختبار Nemenyi اللاحق لتحديد المجموعات التي لديها وسائل مختلفة بالضبط.
للقيام بذلك، نحتاج إلى تثبيت مكتبة scikit-posthocs:
pip install scikit-posthocs
بعد ذلك، سنستخدم الدالة posthoc_nemenyi_friedman() لإجراء اختبار Nemenyi اللاحق:
import scikit_posthocs as sp
import numpy as np
#combine three groups into one array
data = np. array ([group1, group2, group3])
#perform Nemenyi post-hoc test
sp. posthoc_nemenyi_friedman ( data.T )
0 1 2
0 1.000000 0.437407 0.065303
1 0.437407 1.000000 0.001533
2 0.065303 0.001533 1.000000
ملاحظة: كان علينا تبديل المصفوفة numpy (data.T) لإجراء الاختبار اللاحق بشكل صحيح.
يُرجع اختبار Nemeyi اللاحق القيم p لكل مقارنة زوجية للوسائل. من النتيجة يمكننا أن نرى القيم الاحتمالية التالية:
- قيمة P للمجموعة 0 مقارنة بالمجموعة 1: 0.4374
- قيمة P للمجموعة 0 مقارنة بالمجموعة 2: 0.0653
- قيمة P للمجموعة 1 مقارنة بالمجموعة 2: 0.0015
عند α = 0.05، المجموعتان الوحيدتان اللتان لهما وسائل مختلفة بشكل ملحوظ إحصائيًا هما المجموعة 1 والمجموعة 2.
ملاحظة: قام اختبار Nemenyi بتحويل رقم المجموعة من 1، 2، 3 إلى 0، 1، 2. لذا فإن المجموعات الموجودة في البيانات الأصلية والتي تختلف بشكل كبير هي المجموعتان 2 و3.