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

الـ multiple regression

~30 دقيقة قراية الدرس 2 من 4 في الوحدة 7

من predictor واحد لـ predictors كتير

نادرًا لما الظواهر الحقيقية بتعتمد على variable واحد. أسعار البيوت بتتأثر بالمساحة والمكان وعدد أوض النوم والسن وعشرات العوامل التانية في نفس الوقت. والـ multiple regression (الانحدار المتعدد) بيمدّ الـ simple linear model عشان ياخد predictors كتير، وكل واحد فيهم بيساهم لوحده في التنبؤ بالنتيجة.

النقلة من predictor واحد لكذا predictor مش مجرد تغيير في الرموز؛ دي بتدخّل مفاهيم جديدة زي الـ partial coefficients، والـ multicollinearity، والـ adjusted R²، وتحديات جديدة زي الـ overfitting واختيار الـ variables وترميز الـ categorical variables. اتقن الأفكار دي الأول، قبل ما تطبّق أي regression model على بيانات حقيقية.

الـ multiple regression model

مع p predictors X₁، X₂، …، Xₚ الـ model بيبقى:

الـ multiple linear regression model
Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_p X_p + \varepsilon
Y هي الـ response؛ وβ₀ هو الـ intercept؛ وβ₁,…,βₚ هي الـ partial regression coefficients؛ وX₁,…,Xₚ هي الـ predictors؛ وε هو الـ error term اللي الـ mean بتاعه صفر والـ variance ثابت σ².

بصيغة الـ matrices الـ model بيبقى Y = Xβ + ε، وY هنا vector n×1 من الـ responses، وX هي الـ design matrix n×(p+1) (أول عمود فيها كله واحدات عشان الـ intercept)، وβ هو vector الـ coefficients (p+1)×1، وε هو vector الأخطاء n×1. والـ least squares estimator هو:

الـ OLS estimator (صيغة الـ matrices)
\hat{\boldsymbol{\beta}} = (\mathbf{X}^\prime \mathbf{X})^{-1} \mathbf{X}^\prime \mathbf{Y}
الحل المقفول ده محتاج X'X تبقى invertible — وده مضمون لما مفيش predictor يبقى linear combination مثالي من الـ predictors التانية (يعني مفيش perfect multicollinearity).

الـ partial regression coefficients

في الـ simple regression، β̂₁ بيقدّر تغيّر Y لكل وحدة من X₁ من غير ما يحسب حساب الـ variables التانية. أما في الـ multiple regression، فـ β̂₁ هو partial regression coefficient (معامل انحدار جزئي) — بيقدّر تغيّر Y لكل وحدة من X₁ مع تثبيت كل الـ predictors التانية.

التفسير ده «مع تثبيت الباقيين» جوهري. افترض إننا بنحلّل المرتب بدلالة سنين الخبرة والمستوى التعليمي. coefficient الخبرة دلوقتي بيقولنا العلاوة الزيادة لكل سنة خبرة للناس اللي ليهم نفس المستوى التعليمي — مش الارتباط الخام بين الخبرة والمرتب، لأن الارتباط ده منفوخ عشان اللي تعليمهم أعلى عادةً بيبقى ليهم مسارات خبرة مختلفة كمان.

مثال تطبيقي

model لأسعار البيوت (بالألف دولار): السعر = −18.4 + 0.09 × المساحة + 32.1 × أوض النوم − 0.7 × السن. الـ coefficient 0.09 معناه إن كل قدم مربع زيادة بيزوّد 90 دولار على السعر المتوقع للبيوت اللي ليها نفس عدد أوض النوم ونفس السن. والارتباط الخام بين المساحة والسعر أعلى من كده، لأن البيوت الأكبر بتميل كمان يبقى فيها أوض نوم أكتر.

الـ adjusted R²

إضافة أي predictor للـ regression model — حتى لو variable noise عشوائي — عمرها ما هتقلّل الـ R². ودي نتيجة رياضية لطريقة الـ OLS: coefficients أكتر تقدر دايمًا تعمل fit للبيانات الحالية أحسن أو زي ما هي. والباحث المستعجل ممكن يرفع الـ R² بس بإنه يزوّد variables مالهاش علاقة بالموضوع.

الـ adjusted R² (R² المعدَّل) بيعالج ده بإنه يحط عقوبة على عدد الـ predictors:

الـ adjusted R²
\bar{R}^2 = 1 - (1 - R^2)\dfrac{n-1}{n-p-1}
n = الـ sample size، وp = عدد الـ predictors (من غير الـ intercept). الـ adjusted R² بيزيد بس لو الـ predictor الجديد حسّن الـ fit أكتر من المتوقع بالصدفة. وممكن يبقى سالب في الـ models الضعيفة جدًا.

إضافة predictor بترفع الـ adjusted R² بس لو إحصاءة الـ t بتاعته عدّت الواحد بالقيمة المطلقة — عقبة بسيطة، بس كفاية تفلتر الـ noise الصافي. ولما تقارن models بأعداد مختلفة من الـ predictors، استخدم دايمًا الـ adjusted R² مش الـ R² العادي.

الـ multicollinearity

الـ multicollinearity (التعدد الخطي) بيحصل لما اتنين أو أكتر من الـ predictors يبقوا مرتبطين ببعض جامد. ده مش بيعمل bias في الـ coefficient estimators، بس بيكبّر الـ standard errors بتاعتها، وده بيخلّي الـ coefficients الفردية مش دقيقة ومش significant حتى لو الـ model ككل عامل fit كويس للبيانات.

اتنين جنب بعض بيزقوا عربية على طريق ريفي.
اتنين بيساعدوا وبيزقوا مع بعض دايمًا: العربية بتتحرك بوضوح، بس محدش يقدر يقول مين زق أكتر. predictors مترابطة: fit كويس، وstandard errors منفوخة.

تخيّل إنك بتعمل regression لضغط الدم على السن والوزن والـ BMI (مؤشر كتلة الجسم). وبما إن BMI = الوزن / (الطول)²، يبقى الـ BMI تقريبًا دالة في الوزن. لو دخّلتهم الاتنين يبقى coefficient الوزن بيحاول يمسك أثر الوزن بعد التحكم في حاجة الوزن نفسه بيحددها تقريبًا بالكامل — ودي مسألة متطرحة غلط.

التشخيص القياسي هو الـ variance inflation factor (عامل تضخم التباين) أو VIF:

الـ variance inflation factor
\text{VIF}_j = \dfrac{1}{1 - R_j^2}
Rⱼ² هو الـ R² من regression لـ Xⱼ على كل الـ predictors التانية. VIF = 1 معناه مفيش multicollinearity؛ وVIF > 5 تحذير شائع؛ وVIF > 10 بيشاور على multicollinearity جامد محتاج تتدخّل.

الحلول: تشيل واحد من الـ predictors المرتبطة (ومعرفة المجال بتساعدك تختار تشيل أنهي)، أو تدمج الـ predictors المرتبطة في مؤشر أو score مركّب، أو تستخدم Ridge regression اللي بيقلّص الـ coefficients وبيستحمل الـ multicollinearity، أو تجمع بيانات أكتر — وده بيصغّر الـ standard errors بس مش بيشيل الـ multicollinearity.

اختيار الـ variables

مع p predictor محتمل، فيه 2ᵖ مجموعة فرعية ممكنة. والبحث فيهم كلهم بيبقى مستحيل حسابيًا لما p يعدّي حوالي 30–40 variable. وفي الواقع، بنستخدم greedy algorithms متسلسلة:

الـ forward selection (الاختيار الأمامي) بيبدأ من غير predictors ويزوّد واحد كل خطوة، ويختار الـ predictor اللي بيحسّن المعيار أكتر حاجة (AIC أو BIC أو الـ adjusted R² أو أصغر p-value). وبيقف لما مفيش variable باقي يعدّي عتبة الدخول.

الـ backward elimination (الحذف الخلفي) بيبدأ بكل الـ p predictors ويشيل واحد كل خطوة، ويسيب الأقل مساهمة (أكبر p-value، أصغر F للحذف). وبيقف لما كل الـ variables الباقية تعدّي العتبة.

الـ stepwise selection (الاختيار التدريجي) بيبدّل بين الخطوتين اللي فاتوا، وده بيسمح إن variables اتزوّدت قبل كده تتشال لو بقت مش significant بعد ما تدخل variables جديدة، والعكس كمان. وهو أشمل من أي طريقة ماشية في اتجاه واحد، بس برضه مش بيضمن إنه يوصل للحل الأمثل عمومًا.

حدود الطرق التدريجية

الطرق التدريجية بتختار الـ variables على أساس نفس البيانات اللي بتستخدم في التقدير، وده بيكبّر معدلات الـ Type I error وبيطلّع إحصاءات model متفائلة زيادة عن اللزوم. استخدمها كأدوات استكشاف مش تأكيد. وكل ما تقدر، خلّي النظرية أو المعرفة السابقة هي اللي توجّه اختيار الـ variables، أو استخدم طرق الـ penalized regression (Lasso أو Ridge) اللي بتقدّر الـ coefficients وبتختار الـ variables في نفس الوقت على أساس إحصائي متين.

الـ predictors الفئوية: الـ dummy variables

الـ regression محتاج inputs رقمية، بس predictors مهمة كتير بتبقى فئوية: المنطقة (شمال، جنوب، شرق، غرب)، أو مجموعة العلاج (أ، ب، control)، أو المستوى التعليمي (ثانوي، بكالوريوس، دراسات عليا). والـ predictors دي بتدخل عن طريق الـ dummy variables (المتغيرات الوهمية)، واسمها كمان indicator variables.

لـ categorical variable ليه k مستوى، بنعمل k−1 dummy variable ثنائي. ومستوى واحد بيتحدد reference category (فئة مرجعية) (بيتشال عشان نتجنب perfect multicollinearity مع الـ intercept — «الـ dummy variable trap»). وكل coefficient dummy بيتفسّر على إنه تأثير الفئة دي بالنسبة للفئة المرجعية.

مثال: التأثيرات الإقليمية

لـ regression للمبيعات على مصاريف الإعلانات والمنطقة (الشمال = مرجع، والجنوب، والشرق، والغرب)، بنحط 3 dummy variables: D₁ = 1 لو الجنوب، وD₂ = 1 لو الشرق، وD₃ = 1 لو الغرب. والـ coefficient بتاع D₁ هو متوسط فرق المبيعات بين الجنوب والشمال بعد التحكم في مصاريف الإعلانات. واختيار الفئة المرجعية بيغيّر قيم الـ coefficients، بس مش بيغيّر الـ fitted values ولا الـ R² ولا أي إحصاءة كلية للـ model.

الـ interaction terms بين dummy variable وpredictor continuous بتسمح للـ slope إنه يختلف بين الفئات. مثلًا، الحد D₁ × مصاريف الإعلانات بيكشف هل عائد الإعلانات مختلف بين الجنوب والشمال. ومن غير الـ interaction الـ model بيفترض نفس slope مصاريف الإعلانات في كل المناطق؛ ومعاه كل منطقة بيبقى ليها الـ slope بتاعها.

مقارنة الـ models: الـ AIC والـ BIC

لما تقارن models بأعداد مختلفة من الـ predictors، الـ adjusted R² اختيار من الاختيارات، بس الـ information criteria (معايير المعلومات) — الـ AIC (أكايكي) والـ BIC (بايز/شوارز) — مفضّلة على نطاق واسع لأن أساسها النظري أقوى ولأنها بطبيعتها بتوازن بين الـ fit والتعقيد:

الـ AIC والـ BIC
\text{AIC} = -2\ell + 2k \qquad \text{BIC} = -2\ell + k\ln n
ℓ هو الـ maximized log-likelihood، وk عدد الـ parameters المتقدّرة (ومنها σ²)، وn الـ sample size. القيمة الأقل معناها model أحسن. والـ BIC بيعاقب التعقيد أجمد من الـ AIC لما n > 7، فبيميل للـ models الأبسط.

الـ AIC يُفضّل لما الهدف يبقى التنبؤ؛ والـ BIC يُفضّل لما الهدف يبقى إنك تعرف تركيبة الـ model الحقيقية. وفي الـ regression models العادية، k = p + 2 (يعني p slope زائد الـ intercept زائد σ²). ولما n يبقى كبير، العقوبة الأكبر بتاعة الـ BIC معناها إنه بيختار models أبسط من اللي الـ AIC بيختارها.

أهم النقط
  • الـ multiple regression Y = β₀ + β₁X₁ + … + βₚXₚ + ε بيعمّم الـ simple regression لـ p predictors بحل الـ OLS: β̂ = (X′X)⁻¹X′Y.
  • الـ partial coefficients بتقيس تأثير كل predictor مع تثبيت الباقيين — ومختلفة عن الـ marginal correlations ومحتاجة تفسير بحرص.
  • الـ adjusted R² بيعاقب تعقيد الـ model، فبيعلى بس لما الـ predictor الجديد يحسّن الـ fit أكتر من الصدفة.
  • الـ multicollinearity بيكبّر الـ standard errors وبيخلّي الـ coefficients الفردية مش ثابتة؛ شخّصه بالـ VIF (تحذير > 5، جامد > 10)، وعالجه بإنك تشيل الـ variables المرتبطة أو تستخدم Ridge regression.
  • اختيار الـ variables بالطرق الأمامية والخلفية والتدريجية استكشافي — بيكبّر الـ Type I error لو استخدمته للتأكيد. فضّل المداخل المبنية على النظرية أو الـ penalized regression.
  • الـ predictors الفئوية بتدخل عن طريق k−1 dummy variable مع مستوى مرجعي واحد بيتشال؛ والـ interaction dummies بتخلّي الـ slope يتغيّر من فئة للتانية.
  • الـ AIC والـ BIC بيقارنوا الـ models بأعداد مختلفة من الـ parameters؛ الأقل أحسن؛ والـ BIC بيفضّل البساطة لما n يكبر.
اللي فات الـ simple linear regression نظرة عامة على الموديول اللي بعده تشخيص الـ regression