قراية
وضع العروض

الـ ANOVA (تحليل التباين)

~28 دقيقة قراية الدرس 3 من 4 في الوحدة 6

مشكلة الاختبارات المتعددة

افترض إنك بتقارن متوسطات وقت الاستجابة لـ 4 إعدادات مختلفة لـ web server. أول حاجة ممكن تيجي في بالك إنك تعمل t-test لكل زوج: A قصاد B، وA قصاد C، وA قصاد D، وB قصاد C، وB قصاد D، وC قصاد D — 6 اختبارات في المجموع. بس لو عملت ده عند α = 0.05 لكل اختبار هتكبّر احتمال الـ false positive جامد.

لو الـ 6 اختبارات كانوا مستقلين (وهما مش كده لأنهم بيشتركوا في متوسطات المجموعات)، يبقى احتمال إنك ترفض غلط في اختبار واحد على الأقل هو 1 − (0.95)⁶ ≈ 26%. ومع زيادة عدد المجموعات، الـ familywise error rate (معدل خطأ الأسرة) بيكبر بسرعة. والـ ANOVA (تحليل التباين) بيحل المشكلة دي بإنه يختبر كل المجموعات مرة واحدة بـ test statistic واحد، ويحافظ على الـ Type I error عند α اللي حددته.

فكرة جوهرية

الـ ANOVA مش بيختبر هل كل المتوسطات بتساوي رقم ثابت معيّن. هو بيختبر H₀: μ₁ = μ₂ = … = μₖ قصاد H₁: فيه mean واحد على الأقل مختلف. نتيجة ANOVA الـ significant بتقولك إن فيه حاجة مختلفة؛ والـ post-hoc tests (اختبارات ما بعد ANOVA) بتحدد إيه اللي مختلف.

الـ one-way ANOVA: تقسيم التغيّر

الفكرة الأساسية في الـ ANOVA هي تقسيم التغيّر الكلي في البيانات لجزئين: التغيّر بين المجموعات (الإشارة) والتغيّر جوه المجموعات (الـ noise). لو التغيّر بين المجموعات كبير بالنسبة للتغيّر جوه المجموعات، يبقى عندنا دليل إن المجموعات مختلفة.

رسميًا، مع k مجموعة كل واحدة فيها nᵢ عنصر والـ grand mean x̄، بنفكّ الـ total sum of squares (مجموع المربعات الكلي):

تفكيك مجاميع المربعات
SS_T = SS_B + SS_W = \sum_{i=1}^{k}\sum_{j=1}^{n_i}(x_{ij} - \bar{x})^2
SS_T = SS_B + SS_W. الانحراف الكلي لكل مشاهدة عن الـ grand mean بيتفكّ لانحراف متوسط المجموعة (بين) وانحراف جوه المجموعة.
مجموع المربعات بين المجموعات
SS_B = \sum_{i=1}^{k} n_i (\bar{x}_i - \bar{x})^2
بيقيس كل متوسط مجموعة x̄ᵢ بعيد قد إيه عن الـ grand mean x̄، بوزن على قد حجم المجموعة nᵢ. SS_B الكبير معناه إن متوسطات المجموعات مختلفة جامد.
مجموع المربعات جوه المجموعات
SS_W = \sum_{i=1}^{k}\sum_{j=1}^{n_i}(x_{ij} - \bar{x}_i)^2
بيقيس انتشار المشاهدات حوالين متوسط مجموعتها. ودي "الـ noise" — التغيّر اللي مينفعش يتفسّر بالمجموعة اللي المشاهدة تبعها.

الـ F statistic

لما تقسم كل sum of squares على الـ degrees of freedom بتوعه بيطلعلك الـ mean square (متوسط المربعات). ونسبة الـ mean squares الاتنين هي الـ F statistic (إحصاءة F):

الـ F statistic
F = \dfrac{MS_B}{MS_W} = \dfrac{SS_B/(k-1)}{SS_W/(N-k)}
MS_B = SS_B / (k − 1)، وMS_W = SS_W / (N − k)، وN = إجمالي المشاهدات. تحت H₀، الـ F ماشي على F distribution بـ degrees of freedom df₁ = k − 1 وdf₂ = N − k.

جدول الـ ANOVA بينظّم الحسابات دي في شكل مختصر:

المصدر SS df MS F
بين المجموعات SSB k − 1 SSB / (k−1) MSB / MSW
جوه المجموعات SSW N − k SSW / (N−k) —
الكلي SSₜ N − 1 — —

تحت H₀ (كل المتوسطات متساوية)، الاتنين MSB وMSW بيقدّروا نفس الـ variance بتاع الـ population σ²، فـ F ≈ 1. وتحت H₁ (فيه متوسطات مختلفة)، الـ MSB بيبالغ في تقدير σ² بينما MSW بيفضل تقدير unbiased، وده بيزق F > 1. وبنرفض H₀ لما F يعدّي الـ critical value F*(k−1, N−k) عند مستوى α.

افتراضات الـ one-way ANOVA

زي الـ t-test بالظبط، الـ ANOVA معتمد على 3 افتراضات أساسية لازم تتأكد منها قبل ما تثق في النتايج:

1. الـ normality: المشاهدات جوه كل مجموعة لازم تبقى normal تقريبًا. ومع الـ samples الكبيرة، الـ central limit theorem بتخلّي الـ ANOVA متين نسبيًا لو البيانات مش normal. اتأكد بـ QQ plots أو Shapiro-Wilk test لكل مجموعة.

2. الـ homogeneity of variance (تجانس التباين): كل المجموعات لازم يبقى ليها نفس الـ variance σ². والافتراض ده هو الأهم. اتأكد بـ Levene's test أو برسم الـ standard deviations بتاعة المجموعات. وكقاعدة تقريبية، أكبر s ميعدّيش ضعف أصغر s.

3. الاستقلالية: المشاهدات لازم تبقى مستقلة جوه المجموعات وبينها. ولو الاستقلالية اتكسرت (زي القياسات المتكررة أو التجميع) محتاج model مختلف خالص.

لو الافتراضات اتكسرت؟

لو الـ normality اتكسرت جامد: استخدم Kruskal-Wallis (بعدين في الدرس ده). لو الـ variances مش متساوية: استخدم Welch's ANOVA (بيمدّ فكرة Welch's t-test لـ k مجموعة). ولو المشاهدات مش مستقلة: استخدم repeated-measures ANOVA أو mixed-effects model.

الـ post-hoc tests: إزاي تعرف أنهي مجموعات مختلفة

الـ F-test الـ significant بيأكد إن متوسطات المجموعات مش كلها متساوية، بس مش بيقولك أنهي أزواج مختلفة. والـ post-hoc tests بتجاوب على السؤال ده وهي ماسكة الـ familywise error rate.

الـ Tukey's HSD (الفرق الدال الصادق) هو أكتر post-hoc test بيستخدم. بيحسب فرق حرج: بيقول إن متوسطين مختلفين significantly لو الفرق المطلق بينهم عدّى الـ HSD:

Tukey HSD
HSD = q^* \sqrt{\dfrac{MS_W}{n}}
q* هي الـ critical value من الـ studentized range distribution بالـ parameters k (عدد المجموعات) وdf_W = N − k. وn هو حجم المجموعة (بيفترض أحجام متساوية؛ والـ Tukey-Kramer بيمدّه للأحجام المش متساوية).

الـ Bonferroni correction (تصحيح بونفيروني) أبسط: اقسم α على عدد المقارنات m = k(k−1)/2 واستخدم العتبة المعدّلة دي لكل t-test لوحده. وهو أكتر تحفّظًا من Tukey's HSD بس أكتر مرونة — بينفع لأي مجموعة مقارنات متخططة من الأول، مش المقارنات الزوجية بس.

تختار أنهي post-hoc test

Tukey's HSD الأحسن للمقارنات الزوجية مع أحجام مجموعات متساوية — بيعظّم الـ power وهو ماسك الـ familywise error. Bonferroni يُفضّل لما يبقى عندك مجموعة صغيرة من المقارنات المتحددة من الأول. وScheffé's test للمقارنات اللي على مزاجك (مش الزوجية بس) بس على حساب power أقل.

الـ two-way ANOVA

الـ one-way ANOVA بيدرس factor واحد (variable مستقل). والـ two-way ANOVA بيمدّه لـ factorين مرة واحدة، وبيسأل 3 أسئلة مع بعض: هل الـ factor A ليه تأثير؟ هل الـ factor B ليه تأثير؟ هل A وB بيتفاعلوا مع بعض؟

مع factorين A (بـ a مستويات) وB (بـ b مستويات)، الـ model بيقسّم التغيّر الكلي كده:

تفكيك مجاميع المربعات للـ two-way ANOVA
SS_T = SS_A + SS_B + SS_{AB} + SS_E
SS_A وSS_B هما مجموعين مربعات الـ main effects؛ وSS_AB هو مجموع مربعات الـ interaction؛ وSS_E هو الـ residual error (جوه الخلية). وكل حد ليه F-test خاص بيه.

الـ F-tests التلاتة هما:

الاختبار نسبة F df البسط df المقام
الـ main effect A MSₐ / MSE a − 1 ab(n−1)
الـ main effect B MSₑ / MSE b − 1 ab(n−1)
الـ interaction AB MSₐₑ / MSE (a−1)(b−1) ab(n−1)

الـ interaction effects

الـ interaction (التفاعل) بيحصل لما تأثير factor يعتمد على مستوى الـ factor التاني. وده أهم ناتج في الـ two-way ANOVA وغالبًا أكتر حاجة بتفاجئ.

تخيّل إنك بتختبر طريقتين تدريس (محاضرة قصاد تفاعلي) على مجموعتين طلبة (مبتدئين قصاد متقدمين). لو التدريس التفاعلي حسّن المبتدئين من غير ما يأثر على المتقدمين، يبقى تأثير الطريقة معتمد على مستوى المهارة — ودي الـ interaction.

إزاي تشوف الـ interactions

ارسم متوسطات المجموعات كخطوط: حط factor على محور x وارسم خط لوحده لكل مستوى من الـ factor التاني. الخطوط اللي مش متوازية معناها إن فيه interaction — وكل ما التقاطع أو التباعد يزيد، الـ interaction بيبقى أقوى. والخطوط المتوازية معناها مفيش interaction.

قاعدة مهمة: لما يبقى فيه interaction significant، مينفعش تفسّر الـ main effects لوحدها. الـ interaction بيقولك إن حكاية الـ main effect بتتغيّر على حسب إنت فين في الـ factor التاني.

الـ Kruskal-Wallis test: البديل الـ nonparametric

لما افتراض الـ normality يتكسر بوضوح والـ sample size أصغر من إن الـ central limit theorem تنقذه، الـ Kruskal-Wallis test هو البديل المبني على الرتب للـ one-way ANOVA. مش محتاج أي افتراض عن الـ distribution غير الاستمرارية.

الطريقة: رتّب كل الـ N مشاهدة مع بعض من 1 لـ N، وبعدين احسب إحصاءة H على أساس متوسط رتبة كل مجموعة بعيد قد إيه عن متوسط الرتبة الكلي (N+1)/2:

إحصاءة H بتاعة Kruskal-Wallis
H = \dfrac{12}{N(N+1)} \sum_{i=1}^{k} \dfrac{R_i^2}{n_i} - 3(N+1)
Rᵢ هو مجموع رتب المجموعة i، وnᵢ هو حجم المجموعة، وN هو الـ sample كلها. تحت H₀، الـ H ماشي تقريبًا على chi-squared distribution بـ k − 1 degrees of freedom.

الـ H بيبقى كبير لما مجاميع الرتب Rᵢ تختلف جامد بين المجموعات، وده معناه إن المجموعات جاية من distributions مختلفة. والـ p-value جاية من الـ χ²(k−1) distribution (تقريب بيبقى أدق كل ما n يكبر؛ ولـ n الصغير فيه جداول مظبوطة).

الـ trade-off: الـ Kruskal-Wallis عنده حوالي 95% من power الـ one-way ANOVA لما الـ normality تبقى متحققة، وpower أكبر لما متبقاش. والتمن إنه بيختبر الاختلاف العام في الـ distributions مش المتوسطات بالذات. والمقارنات اللاحقة بعد Kruskal-Wallis significant بتستخدم Dunn's test مع تصحيح Bonferroni أو Benjamini-Hochberg.

أهم النقط
  • الاختبارات المتعددة بتكبّر الخطأ: إنك تعمل m اختبار زوجي عند α لكل واحد بيرفع الـ familywise error rate بعيد عن α. والـ ANOVA بيضبطه بـ F-test واحد.
  • تقسيم التغيّر: SSₜ = SSB + SSW. والـ F statistic = MSB / MSW بيقيس نسبة الإشارة للـ noise. F كبير ⇒ دليل ضد H₀.
  • الافتراضات: الـ normality جوه كل مجموعة، وتساوي الـ variances (Levene's test)، والاستقلالية. ولو اتكسروا استخدم Welch's ANOVA أو Kruskal-Wallis.
  • الـ post-hoc tests: نتيجة F الـ significant بتقول بس "فيه حاجة مختلفة". وTukey's HSD (زوجي، n متساوي) أو Bonferroni (أي مقارنات متخططة من الأول) بيحددوا الأزواج المختلفة.
  • الـ two-way ANOVA بيختبر two main effects والـ interaction بينهم مرة واحدة. اتأكد من الـ interaction الأول — لأنه ممكن يقلب الـ main effects أو يخبّيها.
  • الـ interaction: خطوط مش متوازية في الـ interaction plot. ولما يبقى significant، متفسّرش الـ main effects لوحدها.
  • الـ Kruskal-Wallis: بديل مبني على الرتب للـ one-way ANOVA. H ∼ χ²(k−1) تحت H₀. استخدمه لما الـ normality تتكسر والـ sample صغيرة.
اللي بعده الغلطات المشهورة نظرة عامة على الموديول اللي فات الاختبارات الإحصائية المشهورة