كيفية إجراء anova أحادي الاتجاه في r
يتم استخدام ANOVA أحادي الاتجاه لتحديد ما إذا كان هناك فرق ذو دلالة إحصائية بين متوسطات ثلاث مجموعات مستقلة أو أكثر أم لا.
يُطلق على هذا النوع من الاختبارات اسم ANOVA أحادي الاتجاه لأننا نقوم بتحليل تأثير متغير التوقع على متغير الاستجابة.
ملحوظة : إذا كنا مهتمين بدلاً من ذلك بتأثير متغيرين متوقعين على متغير الاستجابة، فيمكننا إجراء تحليل التباين (ANOVA) ثنائي الاتجاه .
كيفية إجراء ANOVA أحادي الاتجاه في R
يوضح المثال التالي كيفية إجراء ANOVA أحادي الاتجاه في R.
خلفية
لنفترض أننا نريد تحديد ما إذا كانت ثلاثة برامج تمرين مختلفة لها تأثير مختلف على فقدان الوزن. المتغير المتوقع الذي ندرسه هو برنامج التمرين ومتغير الاستجابة هو فقدان الوزن، ويقاس بالجنيه.
يمكننا إجراء تحليل التباين (ANOVA) أحادي الاتجاه لتحديد ما إذا كان هناك فرق ذو دلالة إحصائية بين فقدان الوزن الناتج عن البرامج الثلاثة.
قمنا بتجنيد 90 شخصًا للمشاركة في تجربة قمنا فيها بتعيين 30 شخصًا بشكل عشوائي لمتابعة البرنامج (أ) أو البرنامج (ب) أو البرنامج (ج) لمدة شهر.
الكود التالي ينشئ إطار البيانات الذي سنعمل معه:
#make this example reproducible
set.seed(0)
#create data frame
data <- data.frame(program = rep(c("A", "B", "C"), each = 30),
weight_loss = c(runif(30, 0, 3),
runif(30, 0, 5),
runif(30, 1, 7)))
#view first six rows of data frame
head(data)
# program weight_loss
#1 A 2.6900916
#2 A 0.7965260
#3 A 1.1163717
#4 A 1.7185601
#5 A 2.7246234
#6 A 0.6050458
يُظهر العمود الأول من إطار البيانات البرنامج الذي شارك فيه الشخص لمدة شهر، ويُظهر العمود الثاني إجمالي فقدان الوزن الذي تعرض له الشخص في نهاية البرنامج، مُقاسًا بالجنيه.
استكشف البيانات
قبل حتى تركيب نموذج ANOVA أحادي الاتجاه، يمكننا فهم البيانات بشكل أفضل من خلال إيجاد المتوسط والانحراف المعياري لفقدان الوزن لكل برنامج من البرامج الثلاثة باستخدام حزمة dplyr :
#load dplyr package library (dplyr) #find mean and standard deviation of weight loss for each treatment group data %>% group_by (program) %>% summarize (mean = mean(weight_loss), sd = sd(weight_loss)) # A tibble: 3 x 3 # program mean sd # #1 A 1.58 0.905 #2 B 2.56 1.24 #3 C 4.13 1.57
يمكننا أيضًا إنشاء مخطط مربع لكل برنامج من البرامج الثلاثة لتصور توزيع فقدان الوزن لكل برنامج:
#create boxplots
boxplot(weight_loss ~ program,
data = data,
main = "Weight Loss Distribution by Program",
xlab = "Program",
ylab = "Weight Loss",
col = "steelblue",
border = "black")
من هذه المخططات المربعة، يمكننا أن نرى أن متوسط فقدان الوزن هو الأعلى للمشاركين في البرنامج C ومتوسط فقدان الوزن هو الأدنى للمشاركين في البرنامج A.
يمكننا أيضًا أن نرى أن الانحراف المعياري (“طول” مخطط boxplot) لفقدان الوزن أعلى قليلاً في البرنامج C مقارنةً بالبرنامجين الآخرين.
بعد ذلك، سوف نلائم نموذج ANOVA أحادي الاتجاه مع بياناتنا لمعرفة ما إذا كانت هذه الاختلافات المرئية ذات دلالة إحصائية بالفعل.
تركيب نموذج ANOVA أحادي الاتجاه
بناء الجملة العام لتركيب نموذج ANOVA أحادي الاتجاه في R هو:
aov (متغير الاستجابة ~ توقع_متغير، البيانات = مجموعة البيانات)
في مثالنا، يمكننا استخدام الكود التالي لملاءمة نموذج ANOVA أحادي الاتجاه، باستخدام Weight_loss كمتغير الاستجابة والبرنامج كمتغير متوقع. يمكننا بعد ذلك استخدام الدالة Summary() لعرض نتيجة نموذجنا:
#fit the one-way ANOVA model model <- aov(weight_loss ~ program, data = data) #view the model output summary(model) # Df Sum Sq Mean Sq F value Pr(>F) #program 2 98.93 49.46 30.83 7.55e-11 *** #Residuals 87 139.57 1.60 #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ومن نتائج النموذج يمكننا أن نرى أن برنامج المتغيرات التنبؤية له دلالة إحصائية عند مستوى دلالة 0.05.
بمعنى آخر، هناك فرق ذو دلالة إحصائية بين متوسط فقدان الوزن الناتج عن البرامج الثلاثة.
التحقق من افتراضات النموذج
قبل أن نذهب إلى أبعد من ذلك، نحتاج إلى التحقق من استيفاء افتراضات نموذجنا بحيث تكون نتائج نموذجنا موثوقة. على وجه الخصوص، يفترض ANOVA أحادي الاتجاه:
1. الاستقلال – يجب أن تكون ملاحظات كل مجموعة مستقلة عن بعضها البعض. وبما أننا استخدمنا تصميمًا عشوائيًا (أي قمنا بتعيين المشاركين لبرامج التمرين بشكل عشوائي)، فيجب تلبية هذا الافتراض حتى لا داعي للقلق كثيرًا بشأنه.
2. الحالة الطبيعية – يجب أن يكون للمتغير التابع توزيع طبيعي تقريبًا لكل مستوى من مستويات المتغير المتوقع.
3. التباين المتساوي – التباينات لكل مجموعة متساوية أو متساوية تقريبًا.
إحدى الطرق للتحقق من افتراضات الحالة الطبيعية والتباين المتساوي هي استخدام الدالة plot() ، التي تنتج أربع مخططات لفحص النماذج. على وجه الخصوص، نحن مهتمون بشكل خاص بالقطعتين التاليتين:
- المخلفات مقابل ملائمة – يوضح هذا الرسم البياني العلاقة بين القيم المتبقية والقيم المجهزة. يمكننا استخدام هذا الرسم البياني لتقييم ما إذا كان التباين بين المجموعات متساويًا تقريبًا أم لا.
- مخطط QQ – يعرض هذا المخطط المخلفات القياسية مقابل الكميات النظرية. يمكننا استخدام هذا الرسم البياني لتقييم ما إذا كان افتراض الحالة الطبيعية قد تم استيفاءه أم لا.
يمكن استخدام الكود التالي لإنتاج مخططات فحص النماذج هذه:
plot(model)
يسمح لنا الرسم البياني QQ أعلاه بالتحقق من الافتراض الطبيعي. من الناحية المثالية، تقع المخلفات الموحدة على طول الخط القطري المستقيم لقطعة الأرض. ومع ذلك، في الرسم البياني أعلاه يمكننا أن نرى أن البقايا تنحرف قليلاً عن الخط نحو البداية والنهاية. يشير هذا إلى أنه قد يتم انتهاك افتراضنا الطبيعي.
البقايا مقابل. يسمح لنا الرسم البياني المعدل أعلاه بالتحقق من افتراضنا بوجود فروق متساوية. ومن الناحية المثالية، نود أن يتم توزيع البقايا بالتساوي لكل مستوى من القيم المجهزة.
يمكننا أن نرى أن البقايا منتشرة بشكل أكبر بالنسبة للقيم الأعلى المجهزة، مما يشير إلى أن افتراضنا بشأن المساواة في التباينات قد يتم انتهاكه.
لاختبار التباينات المتساوية رسميًا، يمكننا إجراء اختبار ليفين باستخدام حزمة السيارة :
#load car package library (car) #conduct Levene's Test for equality of variances leveneTest(weight_loss ~ program, data = data) #Levene's Test for Homogeneity of Variance (center = median) # Df F value Pr(>F) #group 2 4.1716 0.01862 * #87 #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
القيمة p للاختبار هي 0.01862 . إذا استخدمنا مستوى دلالة 0.05، فإننا نرفض الفرضية الصفرية القائلة بأن التباينات متساوية عبر البرامج الثلاثة. ومع ذلك، إذا استخدمنا مستوى دلالة 0.01، فلن نرفض فرضية العدم.
على الرغم من أننا يمكن أن نحاول تحويل البيانات للتأكد من استيفاء افتراضاتنا الخاصة بالحياة الطبيعية ومساواة التباينات، إلا أننا لن نقلق كثيرًا بشأن ذلك في الوقت الحالي.
تحليل الاختلافات العلاجية
بمجرد أن نتحقق من استيفاء افتراضات النموذج (أو استيفائها بشكل معقول)، يمكننا بعد ذلك إجراء اختبار لاحق لتحديد مجموعات العلاج التي تختلف عن بعضها البعض بالضبط.
بالنسبة للاختبار اللاحق الخاص بنا، سنستخدم الدالة TukeyHSD() لإجراء اختبار Tukey لإجراء مقارنات متعددة:
#perform Tukey's Test for multiple comparisons
TukeyHSD(model, conf.level=.95)
#Tukey multiple comparisons of means
# 95% family-wise confidence level
#
#Fit: aov(formula = weight_loss ~ program, data = data)
#
#$program
# diff lwr upr p adj
#BA 0.9777414 0.1979466 1.757536 0.0100545
#CA 2.5454024 1.7656076 3.325197 0.0000000
#CB 1.5676610 0.7878662 2.347456 0.0000199
تشير القيمة p إلى ما إذا كان هناك فرق ذو دلالة إحصائية بين كل برنامج أم لا. وأظهرت النتائج وجود فرق ذو دلالة إحصائية بين متوسط الوزن المفقود لكل برنامج عند مستوى دلالة 0.05.
يمكننا أيضًا تصور فواصل الثقة 95% الناتجة عن اختبار Tukey باستخدام وظيفة مؤامرة (TukeyHSD ()) في R:
#create confidence interval for each comparison
plot(TukeyHSD(model, conf.level=.95), las = 2)
تتوافق نتائج فترات الثقة مع نتائج اختبارات الفرضيات.
وبشكل خاص يمكننا أن نرى أن أياً من فترات الثقة لمتوسط فقدان الوزن بين البرامج لا تحتوي على القيمة صفر ، مما يشير إلى وجود فرق ذو دلالة إحصائية في متوسط فقدان الوزن بين البرامج الثلاثة.
وهذا يتوافق مع كون جميع القيم pلاختبارات فرضيتنا أقل من 0.05.
الإبلاغ عن نتائج ANOVA أحادية الاتجاه
وأخيراً يمكننا تقرير نتائج تحليل التباين الأحادي بطريقة تلخص النتائج:
تم إجراء تحليل التباين (ANOVA) أحادي الاتجاه لفحص تأثيرات برنامج التمرين على فقدان الوزن (تقاس بالجنيه). كان هناك فرق ذو دلالة إحصائية بين آثار البرامج الثلاثة على فقدان الوزن (F(2، 87) = 30.83، ع = 7.55e-11). تم إجراء اختبارات HSD الخاصة بـ Tukey.
متوسط فقدان الوزن للمشاركين في البرنامج C أكبر بكثير من متوسط فقدان الوزن للمشاركين في البرنامج B (P <0.0001).
متوسط فقدان الوزن للمشاركين في البرنامج C أكبر بكثير من متوسط فقدان الوزن للمشاركين في البرنامج A (P <0.0001).
بالإضافة إلى ذلك، كان متوسط فقدان الوزن للمشاركين في البرنامج B أكبر بكثير من متوسط فقدان الوزن للمشاركين في البرنامج A (ع = 0.01).
مصادر إضافية
توفر البرامج التعليمية التالية معلومات إضافية حول تحليلات التباين (ANOVAs) أحادية الاتجاه:
مقدمة إلى تحليل التباين الأحادي (One-Way ANOVA).
دليل لاستخدام اختبار ما بعد المخصص مع ANOVA
الدليل الكامل: كيفية الإبلاغ عن نتائج ANOVA