موقع د. عزيز الجعيد
  • الرئـيـسـية

  • الأقسام

    • علم البيانات والذكاء الإصطناعي

    • ذكاء الأعمال

    • لغة البرمجة بايثون

    • مقالات متنوعـة

    • لغة البرمجة آر R

    • الإحــــــصــــــاء

    • البيانات المفتوحة

  • عـنــي

  • تواصل معي

علم البيانات والذكاء الاصطناعي

  • الرئـيـسـية

  • الأقسام

    • علم البيانات والذكاء الإصطناعي

    • ذكاء الأعمال

    • لغة البرمجة بايثون

    • مقالات متنوعـة

    • لغة البرمجة آر R

    • الإحــــــصــــــاء

    • البيانات المفتوحة

  • عـنــي

  • تواصل معي

اختبار التباين الأحادي (One-Way ANOVA Test) في لغة البرمجة آر R

14/08/2018 | لغة البرمجة آر R | 2 تعليقات

تحليل التباين الأحادي (One-Way ANOVA Test)  هو اسلوب إحصائي يتستخدم لإظهار الفرق بين متوسطين أو أكثر من خلال تحليل الإختلاف داخل وبين الفئات (categories) المختلفة. ويوصف رياضياً كما يلي:

\begin{align*}
H_{0}:\mu_{i}=\mu_{j}, \text{ for all }i,j \\
H_{1}:\mu_{i}\neq \mu_{j},\text{ for any }i,j
\end{align*}

في هذا المقال سوف نوضح كيف يتم حساب اختبار التباين الأحادي في برنامج آر R مستخدمين البيانات Profit_data. في البدايه سوف نقوم بإستيراد البيانات كما يلي:

In:
Profit_data=read.csv("Profit_data.csv",sep=";")
Profit_data[1:5,]
Out:
  Profit   Branch
1 515.32 branch_2
2 423.86 branch_2
3 468.08 branch_3
4 489.17 branch_1
5 664.36 branch_2

ثم سوف نتحقق من فروض اختبار أنوفا  التالية:

كما يلي:
اولاً:
يمكن التحقق من أن المتغير المستقل (independent variable) يتضمن عدة فئات باستخدام الامر:

In:
levels(Profit_data$Branch)
Out:
[1] "branch_1" "branch_2" "branch_3"

ثانياً: التحقق من أن المتغير التابع (dependent variable) يتبع التوزيع الطبيعي ويكون ذلك من خلال التحقق من أن أن البواقي (residuals) تتبع التوزيع الطبيعي كما يلي:

(1) qqplot

In:
Anova_Test=aov(Profit ~ Branch, data = Profit_data)
plot(Anova_Test, 2)

(2) اختبار شابيرو ويلك (Shapiro-Wilk test)

In:
Anova_Test_Residuals = residuals(object = Anova_Test )
shapiro.test(x = Anova_Test_Residuals )
Out:

        Shapiro-Wilk normality test

data:  Anova_Test_Residuals
W = 0.99624, p-value = 0.9886

وجميعها تشير الى أن البواقي (residuals) تتبع التوزيع الطبيعي، وهذا يعني أن أن المتغير التابع (dependent variable) يتبع التوزيع الطبيعي.

ثالثاً: التحقق من استقلال المشاهدات (independence of observations) من خلال التحقق من استقلال البواقي (residuals)  كما يلي:

(1) شكل دالة الأرتباط الذاتي  (autocorrelation function)

In:
Anova_Test_Residuals = residuals(object = Anova_Test )
acf(Anova_Test_Residuals,main="Autocorrelation")

(2) اختبار ديربن واتسون للارتباط الذاتي (Durbin-Watson test for autocorrelation)

In:
dwtest(Profit ~ Branch)
Out:
        Durbin-Watson test

data:  Profit ~ Branch
DW = 2.071, p-value = 0.6532
alternative hypothesis: true autocorrelation is greater than 0

وكلاهما يشير إلى أنه ليس هناك دليل على وجود أرتباط ذاتي  (autocorrelation function).

كذلك يمكن التحقق من استقلال البواقي (residuals) بالنسبة للفئات كما يلي:

In:
plot(Anova_Test,3)

نلاحظ من الشكل اعلاه أن توزيع البواقي (residuals)  لايتأثر بالفئات.

رابعاً: التحقق من تجانس التباين (homogeneity of variances)، ويكون ذلك من خلال:

(1) شكل standardized residuals vs fitted values

In:
plot(Anova_Test,3)

نلاحظ أن الشكل السابق يظهر إنتشار عشوائي للبواقي (residuals) غير متزايد او متناقص او شكل منتظم.

(2) اختبار ليفين (Levene’s test) كا يلي:

In:
library(car)
leveneTest(Anova_Test)
Out:
Levene's Test for Homogeneity of Variance (center = median)
       Df F value Pr(>F)
group   2  0.2665 0.7665
      117

وجميعا تشير الى انه لاوجد دليل على أن التباين مختلف بالنسبة للفئات المختلفة.

خامساً: التحقق من عدم وجود قيم متطرفة (outliers) من خلال مسافة كوك (Cook’s Distance) كما يلي:

In:
plot(Anova_Test,4)

واللذي يشير الى ثلاث مشاهدات متطرفة هي رقم 119، 97، 47. والتي قد يكون من المفيد حذفها خصوصاً اذأ كان تركها  يخل بفروض او بنتيجة اختبار أنوفا الأحادي.

الآن سوف نقوم بتنفيذ  اختبار التباين الأحادي (One-Way ANOVA Test) بإستخدام الدالة:

In:
Anova_Test=aov(Profit ~ Branch, data = Profit_data)
summary(Anova_Test)
Out:
             Df  Sum Sq Mean Sq F value Pr(>F)
Branch        2    7457    3728   0.361  0.698
Residuals   117 1208148   10326

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

الإختبار اللا بارامتري (Non-parametric) البديل لأختبار أنوفا الأحادي:

In:
kruskal.test(Profit ~ Branch, data = Profit_data)
Out:
        Kruskal-Wallis rank sum test

data:  Profit by Branch
Kruskal-Wallis chi-squared = 0.57776, df = 2, p-value = 0.7491

والذي يتفق مع نتيجة أختبار اختبار أنوفا الأحادي بعدم وجود فرق بين متوسط الربح في الفروع الثلاثة.

ملاحظة هامة: مستوى المعنويه (significance level) الذي تم إستخدامه في جميع الإختبارات أعلاه هو 0.05 وبالتالي فإن فرض العدم (Null hypothesis) يرفض فقط عندما تكون p-value أقل من 0.05

جميع الحقوق الفكرية لهذا المقال محفوظة © موقع د. عزيز، يمنع إعادة نشره في موقع آخر

مقالات ذات صلة:

  • برنامج آر R

    البرنامج الإحصائي آر R هو واحد من أشهر البرامج الإحصائية. هذا البرنامج يعتمد على لغة البرمجة R والتي قام بتطويرها كلاً... برنامج آر R
    اقرأ المزيد
  • آر استوديو (RStudio)

    آر استوديو هو بيئة تشغيل للبرنامج الإحصائي آر R يحوي مجموعة من النوافد والأدوات المصممة بشكل رائع والتي تساعد على... آر استوديو (RStudio)
    اقرأ المزيد
  • مقدمة في لغة البرمجة آر R

    هذا الموضوع سوف نوضح بالتفصيل بعض الأساسيات في لغة البرمجة آر R والتي تمثل الخطوه الأولى في فهم هذه اللغة الهامة ويمكن... مقدمة في لغة البرمجة آر R
    اقرأ المزيد

التعليقات 2

  1. حنان بتاريخ أغسطس 15, 2018 - 9:13 ص

    جزاك الله خيرا ، ونفع بعلمك الأمة ، حقيقي مجهود عظيم، تفتقر اللغه العربيه الى طرح بهذا الاتقان ، اسال الله ان يكون هذا العكل سببا في دخولك الفردوس الاعلى يارب

  2. د. عزيز الجعيد بتاريخ أغسطس 15, 2018 - 1:26 م

    العفو … أستاذه حنان … والأمل فيكم جميعاً بخلق محتوى عربي في جميع العلوم الهامة يخدم الناطقين بهذه اللغة الغاليه علينا

شارك بتعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *


The reCAPTCHA verification period has expired. Please reload the page.

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

  • YouTube
جميع الحقوق محفوظة © موقع د. عزيز