دروس تحليل التباين R: اتجاه واحد واتجاهين (مع أمثلة)
ما هو أنوفا؟
تحليل التباين (ANOVA) هو أسلوب إحصائي يستخدم عادة لدراسة الفروق بين متوسط مجموعتين أو أكثر. يركز اختبار ANOVA على المصادر المختلفة للتباين في متغير نموذجي. يوفر تحليل التباين في R في المقام الأول دليلاً على وجود مساواة في المتوسط بين المجموعات. هذه الطريقة الإحصائية هي امتداد لاختبار t. يتم استخدامها في المواقف التي يكون فيها متغير العامل أكثر من مجموعة.
اتجاه واحد أنوفا
هناك العديد من المواقف التي تحتاج فيها إلى مقارنة المتوسط بين مجموعات متعددة. على سبيل المثال، يريد قسم التسويق معرفة ما إذا كانت هناك ثلاثة فرق لديها نفس أداء المبيعات.
- الفريق: عامل المستوى 3: A، B، وC
- البيع: مقياس الأداء
يمكن لاختبار التحليل التبايني (ANOVA) معرفة ما إذا كانت المجموعات الثلاث تتمتع بأداء مماثل.
لتوضيح ما إذا كانت البيانات تأتي من نفس المجموعة السكانية، يمكنك إجراء تحليل التباين في اتجاه واحد (تحليل التباين أحادي الاتجاه فيما يلي). هذا الاختبار، مثل أي اختبارات إحصائية أخرى، يعطي دليلاً على ما إذا كان من الممكن قبول فرضية H0 أو رفضها.
فرضية في اختبار التحليل التبايني أحادي الاتجاه
- H0: المتوسطات بين المجموعات متطابقة
- H3: على الأقل، يختلف متوسط مجموعة واحدة
بمعنى آخر، تشير فرضية H0 إلى عدم وجود أدلة كافية لإثبات اختلاف متوسط المجموعة (العامل) عن مجموعة أخرى.
هذا الاختبار مشابه لاختبار t، على الرغم من أن اختبار ANOVA يوصى به في الحالات التي تحتوي على أكثر من مجموعتين. إلا أن اختبار t وANOVA يقدمان نتائج مماثلة.
الافتراضات
نحن نفترض أن كل عامل يتم أخذ عينات منه بشكل عشوائي ومستقل ويأتي من مجموعة سكانية موزعة بشكل طبيعي مع تباينات غير معروفة ولكنها متساوية.
تفسير اختبار تحليل التباين
يتم استخدام إحصائية F لاختبار ما إذا كانت البيانات مأخوذة من مجموعات سكانية مختلفة بشكل كبير، أي وسائل عينة مختلفة.
لحساب إحصائية F، تحتاج إلى تقسيم التباين بين المجموعات خلال التباين داخل المجموعة.
استخدم بين المجموعة يعكس التباين الاختلافات بين المجموعات داخل جميع السكان. انظر إلى الرسمين البيانيين أدناه لفهم مفهوم التباين بين المجموعات.
يُظهر الرسم البياني الأيسر اختلافًا طفيفًا جدًا بين المجموعة الثلاث، ومن المحتمل جدًا أن تميل الوسائل الثلاثة إلى الكلي يعني (أي يعني للمجموعات الثلاث).
يرسم الرسم البياني الأيمن ثلاثة توزيعات متباعدة، ولا يتداخل أي منها. هناك احتمال كبير أن يكون الفرق بين المتوسط الإجمالي ومتوسط المجموعات كبيرًا.
استخدم داخل المجموعة يأخذ التباين في الاعتبار الفرق بين المجموعات. الاختلاف يأتي من الملاحظات الفردية. قد تكون بعض النقاط مختلفة تمامًا عن وسائل المجموعة. ال داخل المجموعة يلتقط التباين هذا التأثير ويشير إلى خطأ أخذ العينات.
لفهم مفهوم التباين داخل المجموعة بصريًا، انظر إلى الرسم البياني أدناه.
الجزء الأيسر يرسم توزيع ثلاث مجموعات مختلفة. لقد قمت بزيادة انتشار كل عينة ومن الواضح أن التباين الفردي كبير. سينخفض اختبار F، مما يعني أنك تميل إلى قبول فرضية العدم
يُظهر الجزء الأيمن نفس العينات تمامًا (متوسط متطابق) ولكن مع تباين أقل. ويؤدي إلى زيادة اختبار F ويميل لصالح الفرضية البديلة.
يمكنك استخدام كلا المقياسين لإنشاء إحصائيات F. من البديهي جدًا فهم إحصائية F. إذا زاد البسط، فهذا يعني أن التباين بين المجموعات مرتفع، ومن المحتمل أن تكون المجموعات في العينة مأخوذة من توزيعات مختلفة تمامًا.
بمعنى آخر، تشير إحصائية F المنخفضة إلى وجود اختلاف كبير أو عدم وجود فرق كبير بين متوسط المجموعة.
مثال على اختبار تحليل التباين أحادي الاتجاه
ستستخدم مجموعة بيانات السم لتنفيذ اختبار التحليل التبايني أحادي الاتجاه. تحتوي مجموعة البيانات على 48 صفًا و3 متغيرات:
- الزمن: مدة بقاء الحيوان
- السم: نوع السم المستخدم: مستوى العامل: 1,2،3، XNUMX
- المعالجة: نوع العلاج المستخدم: مستوى العامل: 1,2،3، XNUMX
قبل أن تبدأ في حساب اختبار التحليل التبايني (ANOVA)، عليك إعداد البيانات على النحو التالي:
- الخطوة 1: استيراد البيانات
- الخطوة 2: إزالة المتغير غير الضروري
- الخطوة 3: تحويل السم المتغير حسب المستوى المطلوب
library(dplyr) PATH <- "https://raw.githubusercontent.com/guru99-edu/R-Programming/master/poisons.csv" df <- read.csv(PATH) %>% select(-X) %>% mutate(poison = factor(poison, ordered = TRUE)) glimpse(df)
الإخراج:
## Observations: 48 ## Variables: 3 ## $ time <dbl> 0.31, 0.45, 0.46, 0.43, 0.36, 0.29, 0.40, 0.23, 0.22, 0... ## $ poison <ord> 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2... ## $ treat <fctr> A, A, A, A, A, A, A, A, A, A, A, A, B, B, B, B, B, B, ...
هدفنا هو اختبار الافتراض التالي:
- H0: لا يوجد فرق في متوسط مدة البقاء بين المجموعات
- H3: يختلف متوسط وقت البقاء على قيد الحياة بالنسبة لمجموعة واحدة على الأقل.
بمعنى آخر، تريد معرفة ما إذا كان هناك فرق إحصائي بين متوسط مدة البقاء على قيد الحياة وفقًا لنوع السم المعطى للخنزير الغيني.
سوف تتصرف على النحو التالي:
- الخطوة 1: التحقق من تنسيق السم المتغير
- الخطوة 2: طباعة ملخص الإحصائية: العد والمتوسط والانحراف المعياري
- الخطوة 3: رسم مخطط صندوقي
- الخطوة 4: احسب اختبار التحليل التبايني أحادي الاتجاه
- الخطوة 5: قم بإجراء اختبار t الزوجي
الخطوة 1) يمكنك التحقق من مستوى السم باستخدام الكود التالي. يجب أن ترى قيمًا ثلاثية الأحرف لأنك تحولها إلى عامل باستخدام الفعل mutate.
levels(df$poison)
الإخراج:
## [1] "1" "2" "3"
الخطوة 2) يمكنك حساب المتوسط والانحراف المعياري.
df % > % group_by(poison) % > % summarise( count_poison = n(), mean_time = mean(time, na.rm = TRUE), sd_time = sd(time, na.rm = TRUE) )
الإخراج:
## # A tibble: 3 x 4 ## poison count_poison mean_time sd_time ## <ord> <int> <dbl> <dbl> ## 1 1 16 0.617500 0.20942779 ## 2 2 16 0.544375 0.28936641 ## 3 3 16 0.276250 0.06227627
الخطوة 3) في الخطوة الثالثة، يمكنك التحقق بيانيًا مما إذا كان هناك اختلاف بين التوزيع. لاحظ أنك قمت بتضمين النقطة المتوترة.
ggplot(df, aes(x = poison, y = time, fill = poison)) +
geom_boxplot() +
geom_jitter(shape = 15,
color = "steelblue",
position = position_jitter(0.21)) +
theme_classic()
الإخراج:
الخطوة 4) يمكنك تشغيل اختبار تحليل التباين أحادي الاتجاه باستخدام الأمر aov. الصيغة الأساسية لاختبار تحليل التباين هي:
aov(formula, data) Arguments: - formula: The equation you want to estimate - data: The dataset used
بناء جملة الصيغة هو:
y ~ X1+ X2+...+Xn # X1 + X2 +... refers to the independent variables y ~ . # use all the remaining variables as independent variables
يمكنك الإجابة على سؤالنا: هل هناك فرق في مدة البقاء على قيد الحياة بين خنزير غينيا ومعرفة نوع السم المعطى.
لاحظ أنه يُنصح بتخزين النموذج واستخدام ملخص الوظيفة () للحصول على طباعة أفضل للنتائج.
anova_one_way <- aov(time~poison, data = df) summary(anova_one_way)
شرح الكود
- aov(time ~ poison, data = df): قم بتشغيل اختبار ANOVA بالصيغة التالية
- summary(anova_one_way): طباعة ملخص الاختبار
الإخراج:
## Df Sum Sq Mean Sq F value Pr(>F) ## poison 2 1.033 0.5165 11.79 7.66e-05 *** ## Residuals 45 1.972 0.0438 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
القيمة p أقل من العتبة المعتادة البالغة 0.05. أنت واثق من القول بوجود فرق إحصائي بين المجموعتين، يُشار إليه بالعلامة "*".
مقارنة زوجية
لا يخبرك اختبار التحليل التبايني أحادي الاتجاه بأي مجموعة لها متوسط مختلف. بدلاً من ذلك، يمكنك إجراء اختبار Tukey باستخدام الدالة TukeyHSD().
TukeyHSD(anova_one_way)
الإخراج:
في اتجاهين ANOVA
يضيف اختبار التحليل التبايني ثنائي الاتجاه متغير مجموعة آخر إلى الصيغة. وهو مماثل لاختبار التحليل التبايني أحادي الاتجاه، على الرغم من أن الصيغة تتغير قليلاً:
ص=x1+x2
with هو متغير كمي و و هي متغيرات فئوية.
فرضية في اختبار التحليل التبايني ثنائي الاتجاه
- H0: المتوسطات متساوية لكلا المتغيرين (أي متغير العامل)
- H3: تختلف المتوسطات لكلا المتغيرين
يمكنك إضافة متغير علاج إلى نموذجنا. يشير هذا المتغير إلى المعاملة المقدمة لخنزير غينيا. أنت مهتم بمعرفة ما إذا كان هناك علاقة إحصائية بين السم والعلاج المقدم لخنزير غينيا.
نقوم بتعديل الكود الخاص بنا عن طريق إضافة معامل مع المتغير المستقل الآخر.
anova_two_way <- aov(time~poison + treat, data = df) summary(anova_two_way)
الإخراج:
## Df Sum Sq Mean Sq F value Pr(>F) ## poison 2 1.0330 0.5165 20.64 5.7e-07 *** ## treat 3 0.9212 0.3071 12.27 6.7e-06 *** ## Residuals 42 1.0509 0.0250 ## ---
يمكنك استنتاج أن كلا من السم والعلاج يختلفان إحصائيًا عن 0. ويمكنك رفض فرضية NULL والتأكد من أن تغيير العلاج أو السم يؤثر على وقت البقاء.
ملخص
يمكننا تلخيص الاختبار في الجدول أدناه:
| اختبار | رمز | فرضية | P ذات القيمة |
|---|---|---|---|
| تحليل التباين أحادي الاتجاه |
aov(y ~ X, data = df) |
H3: يختلف المتوسط بالنسبة لمجموعة واحدة على الأقل | 0.05 |
| ثنائي |
TukeyHSD(ANOVA summary) |
0.05 | |
| تحليل التباين ثنائي الاتجاه |
aov(y ~ X1 + X2, data = df) |
H3: المتوسط مختلف لكلا المجموعتين | 0.05 |




