قراية
وضع الحكايات

تشخيص الـ regression

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

ليه التشخيص مهم؟

إنك تعمل fit لـ regression model حاجة سهلة. أما إنك تثق في نتايجه فدي حكاية تانية. طريقة الـ ordinary least squares (OLS) مش بتضمن إنها أحسن linear unbiased estimator (BLUE) إلا لما مجموعة افتراضات تتحقق: الخطية في الـ parameters، والـ expectation بتاع الأخطاء بيساوي صفر، وثبات الـ variance (الـ homoscedasticity)، واستقلالية الأخطاء، وإن توزيعها تقريبًا normal عشان الاستدلال. ولما الافتراضات دي تتكسر، تقديرات الـ coefficients ممكن يبقى فيها bias، والـ standard errors تطلع غلط، والـ p-values تضلّل، والـ prediction intervals تضيق أو توسع من غير مبرّر.

الـ regression diagnostics (تشخيصات الانحدار) هي صندوق الأدوات اللي بنتأكد بيه من الافتراضات دي. بدل ما نخمّن، بنفحص الـ residuals (البواقي) — الفروق بين القيم اللي اتشافت والـ fitted values — وبندوّر على أنماط بتشاور على كسر الافتراضات. والتشخيص كمان بيكشف الـ influential observations (المشاهدات المؤثرة) اللي بتشكّل الـ model أكتر من حجمها. الدرس ده بيتكلم عن أهم رسومات وإحصاءات التشخيص، وإزاي تفسّرها، وتعمل إيه لما تشاور على مشكلة.

الـ residuals: إشارة التشخيص

الـ raw residual للمشاهدة i هو ببساطة:

الـ raw residual
e_i = y_i - \hat{y}_i
ŷᵢ هي الـ fitted value من الـ model. والـ residuals المفروض تتبعتر عشوائي حوالين الصفر من غير أي نمط.

كتير بيبقى أنفع إنك تشتغل بالـ standardized residuals (البواقي المُعيَّرة) اللي بتقسم الـ raw residual على تقدير الـ standard deviation بتاعه:

الـ standardized residual
r_i = \dfrac{e_i}{s\sqrt{1 - h_{ii}}}
s هو الـ residual standard error؛ وhᵢᵢ هو الـ leverage (الـ hat value) للمشاهدة i. والـ standardized residuals اللي بتعدّي |3| عادةً بتتعلّم كـ outliers.

والـ studentized residuals (المُعيَّرة خارجيًا) بتروح خطوة أبعد: بتعمل fit للـ model تاني من غير المشاهدة i وبتحسب الـ residual بالنسبة للتقديرات دي. والـ studentized residuals تحت الـ null model ماشية على t distribution بـ n−p−2 degrees of freedom، وده بيسمح باختبارات رسمية للـ outliers (النسخة المتصحّحة بـ Bonferroni).

رسومات الـ residuals: قراية الأنماط

أكتر أداة تشخيص مفيدة هي رسمة الـ residuals قصاد الـ fitted values. تحت model متحدد صح، الرسمة بتبان زي شريط أفقي من تبعتر عشوائي حوالين الصفر. والأنماط المشهورة اللي فيها مشكلة هي:

دليل تفسير الأنماط

شريط منحني (شكل U أو قوس): عدم خطية — الـ model ناقصه حد تربيعي أو حد تاني مش خطي. زوّد polynomial features أو اعمل transformation للـ predictor.

شكل مروحة (التبعتر بيوسع مع الـ fitted values): heteroscedasticity — الـ variance بتاع الخطأ مش ثابت. استخدم weighted least squares أو transformation بيثبّت الـ variance (log Y) أو robust standard errors.

outliers واضحة (نقط بعيدة عن الشريط): مشاهدات مؤثرة محتملة — اتأكد هل هي غلطات بيانات أو حالات استثنائية أو بيانات صح بس مش عادية.

ورسمة تانية مفيدة هي الـ residuals قصاد كل predictor. لو رسمة الـ residuals لـ predictor معيّن بانت منحنية، يبقى الـ predictor ده ممكن محتاج transformation أو حد تربيعي. ورسمة الـ scale-location (الجذر التربيعي لـ |الـ standardized residuals| قصاد الـ fitted values) بتخلّي الـ heteroscedasticity أسهل تشوفه كميل طالع في خط ناعم.

اختبار الـ normality: الـ QQ plot

تقديرات الـ OLS unbiased وconsistent مهما كانت الأخطاء normal ولا لأ. بس اختبارات t وF للـ significance، والـ prediction intervals، معتمدة على الـ normality. وللـ samples الصغيرة لحد المتوسطة، الـ normal QQ plot (مخطط الكميّات-الكميّات) هو الفحص القياسي.

الـ QQ plot بيرتّب الـ standardized residuals من الأصغر للأكبر ويرسمها قصاد الـ quantiles المقابلة من الـ standard normal. لو الـ residuals normal فعلًا، النقط بتقع على خط مستقيم بزاوية 45°. والانحرافات المشهورة ومعناها:

أنماط الـ QQ plot

منحنى S (الديول فوق وبعدين تحت الخط): heavy tails (الـ kurtosis موجب) — الـ residuals فيها قيم متطرفة أكتر من اللي الـ normal بيتوقعه. منتشر في البيانات المالية. والاستدلال بالـ bootstrap أو الطرق الـ robust بيساعد.

منحنى S معكوس: light tails (الـ kurtosis سالب) — نادر في الواقع، وعادةً مش مضر.

نقط منحنية لفوق في الطرفين: distribution right-skewed — فكّر في log transformation للـ dependent variable.

نقطة أو اتنين لوحدهم بعيد عن الخط: outliers محتملة — اتأكد منهم واحدة واحدة.

وللاختبار الرسمي، الـ Shapiro-Wilk test قوي للـ samples الصغيرة (n ≤ 50). وللـ samples الأكبر بيستخدموا Anderson-Darling أو Kolmogorov-Smirnov، بس أي بعد عن الـ normality بيبقى significant مع n كبير كفاية — فالـ QQ plot بيفضل أنفع أداة حتى ساعتها لأنه بيوريك نوع الانحرافات وحجمها.

الـ homoscedasticity: ثبات الـ variance بتاع الخطأ

الـ standard errors في الـ OLS متشتقة على افتراض إن Var(εᵢ) = σ² لكل i. ولما الـ variance بتاع الخطأ يعتمد على الـ predictors أو الـ fitted values — كسر اسمه heteroscedasticity (عدم التجانس) — تقديرات coefficients الـ OLS بتفضل unbiased بس الـ standard errors بتاعتها بتبقى غلط وده بيخلّي اختبارات الفرضيات مش موثوقة.

أشهر اختبار رسمي هو الـ Breusch-Pagan test: اعمل regression لمربعات الـ residuals على الـ predictors الأصلية واتأكد هل الـ slope coefficients مع بعض significant (بـ F-test أو chi-squared). والـ null hypothesis هي الـ homoscedasticity؛ والنتيجة الـ significant معناها إن الـ variance مش ثابت. والـ White test نسخة أعم بتشمل كمان حدود الضرب الـ cross-product.

علاجات الـ heteroscedasticity

transformation يثبّت الـ variance: لو Y right-skewed (الدخل، أسعار البيوت)، جرّب log(Y) كـ dependent variable. الـ log transformation عادةً بيساوي الـ variance على مدى الـ fitted values لأن الأخطاء النسبية المضروبة بتبقى جمعية على مقياس الـ log.

الـ weighted least squares (WLS): لو تركيبة الـ variance معروفة (مثلًا Var(εᵢ) ∝ xᵢ)، ادّي أوزان wᵢ = 1/Var(εᵢ). والـ WLS بيرجّع الـ efficiency بس لازم الـ variance model يبقى متحدد صح.

الـ heteroscedasticity-consistent (HC) standard errors: اسمها كمان الـ standard errors الـ "robust" أو الـ "sandwich"، ومش بتفترض أي شكل للـ heteroscedasticity. هنتكلم عنها في آخر جزء من الدرس ده.

النقط المؤثرة: الـ leverage

مش كل outlier بيضر الـ model، ومش كل قيمة مش عادية في الـ predictors (نقطة الـ leverage بتاعها عالي) بتضر بالضرورة. الخطر لما النقطة تبقى مش عادية في قيم X بتاعتها والـ residual بتاعها كبير — النقط دي ممكن تشد خط الـ regression ناحيتها جامد.

الـ leverage (الرافعة) hᵢᵢ للمشاهدة i هو العنصر رقم i على قطر الـ hat matrix H = X(X′X)⁻¹X′. وبيقيس قيم الـ predictors للمشاهدة i بعيدة قد إيه عن مركز كل قيم الـ predictors:

الـ leverage (الـ hat value)
h_{ii} = \mathbf{x}_i^\prime (\mathbf{X}^\prime\mathbf{X})^{-1} \mathbf{x}_i
قيم الـ leverage بين 1/n و1. ومتوسط الـ leverage هو (p+1)/n. وقاعدة تقريبية بتعلّم المشاهدات اللي hᵢᵢ > 2(p+1)/n على إن الـ leverage بتاعها عالي.

الـ leverage العالي لوحده مش لازم يبقى مضر. النقطة اللي قيمة X بتاعتها متطرفة والـ residual بتاعها ماشي مع الـ model بتتظبط تمامًا — ودي كمان مفيدة في تقدير الـ slope بدقة في المنطقة دي. والمشاكل بتطلع بس لما الـ leverage العالي يتجمع مع residual كبير.

الـ Cook's distance

الـ Cook's distance (مسافة كوك) Dᵢ بتجمع الـ leverage وحجم الـ residual في مقياس واحد لقد إيه vector الـ coefficients بيتغيّر لما المشاهدة i تتشال:

الـ Cook's distance
D_i = \frac{(\hat{\boldsymbol{\beta}}_{(i)} - \hat{\boldsymbol{\beta}})^\prime (\mathbf{X}^\prime\mathbf{X})(\hat{\boldsymbol{\beta}}_{(i)} - \hat{\boldsymbol{\beta}})}{(p+1)\, s^2}
β̂₍ᵢ₎ هو vector الـ coefficients المتقدّر من غير المشاهدة i؛ وs² هو الـ mean squared error؛ وp عدد الـ predictors (من غير الـ intercept). وبنفس المعنى: Dᵢ = (eᵢ²/((p+1)s²)) · hᵢᵢ/(1−hᵢᵢ)².

العتبات المشهورة: Cook's distance > 1 هي عتبة "مؤثرة جدًا" التقليدية. والطريقة الحديثة بترسم Dᵢ قصاد رقم المشاهدة وتدوّر على النقط اللي باينة لوحدها — حتى D < 1 ممكن تقلق لو مشاهدة واحدة عالية بوضوح عن الباقيين. والـ DFFITS والـ DFBETAS مقاييس قريبة تقدر تحدّد أنهي coefficient بيتأثر أكتر.

تعمل إيه مع النقط المؤثرة؟

متمسحش مشاهدة مؤثرة أوتوماتيك. اتأكد الأول إنها مش غلطة في إدخال البيانات أو تسجيلها. ولو صح، دوّر على سبب إنها مختلفة — ممكن تكشف عن اختلاف حقيقي في الـ population (مثلًا مجموعة فرعية ماشية على علاقة مختلفة). والاختيارات: تعمل fit للـ model بيها ومن غيرها وتقول الاتنين؛ أو تستخدم طرق robust regression (M-estimators، والـ median regression) اللي بتقلّل وزن المشاهدات المتطرفة؛ أو تعمل model للمجموعة الفرعية لوحدها.

الـ transformations

علاقات كتير في الواقع مش خطية، وdependent variables كتير الأخطاء بتاعتها مش normal ومش متجانسة على مقياسها الخام. والـ transformation المختار كويس يقدر يخلّي العلاقة خطية ويثبّت الـ variance في نفس الوقت، وده بيخلّي تطبيق الـ OLS صح.

الـ log transformation هو أنفع transformation في الـ regression. لما Y يبقى موجب وright-skewed (الدخل، والأسعار، والتركيزات)، إنك تاخد log(Y) كـ dependent variable عادةً بيطلّع residuals أقرب للـ normal وأكتر تجانس. والـ model log(Y) = β₀ + β₁X معناه إن زيادة X بوحدة واحدة بتضرب Y في e^(β₁) — أثر بالضرب مش بالجمع.

عيلة Box-Cox من الـ power transformations بتعمّم الـ log والجذر التربيعي في عيلة واحدة ليها parameter:

الـ Box-Cox transformation
y_i^{(\lambda)} = \begin{cases} \dfrac{y_i^\lambda - 1}{\lambda} & \lambda \neq 0 \\ \ln y_i & \lambda = 0 \end{cases}
الـ parameter λ بيتقدّر بالـ maximum likelihood. λ = 1: مفيش transformation؛ λ = 0: log(Y)؛ λ = 0.5: الجذر التربيعي؛ λ = −1: المقلوب. والـ confidence interval 95% لـ λ بترشد الاختيارات العملية.

إنك تعمل transformation لـ الـ predictors مفيد كمان. لو رسمة Y قصاد X بانت فيها علاقة منحنية، تقدر تزوّد X² (الـ polynomial regression) أو تاخد log(X) عشان تخلّيها خطية. وللـ predictors اللي أعداد صحيحة ومحدودة بالصفر، log(1 + X) بيتجنب مشكلة log(0). وخد بالك إن الـ transformation للـ dependent variable بيغيّر تفسير كل الـ coefficients وبيعقّد رجوع التنبؤات شوية (بيتنبأ بالـ geometric mean لـ Y مش الـ arithmetic mean).

الـ standard errors المتينة للـ heteroscedasticity

لما الـ heteroscedasticity يبقى موجود بس إنت مش عايز تعمل transformation للـ dependent variable أو تفرض variance model، الـ heteroscedasticity-consistent (HC) standard errors — اسمها كمان "sandwich" أو "robust" — بتدّي استدلال صالح من غير ما تشترط إن Var(εᵢ) ثابت.

الفكرة: الـ variance-covariance matrix القياسية في الـ OLS وهي (X′X)⁻¹σ² بتفترض إن كل مربع خطأ εᵢ² بيساوي نفس σ². والـ HC estimator بيحط مكان σ² مربع الـ residual الفعلي eᵢ² لكل مشاهدة وبعدين بيحسب المتوسط بالشكل المناسب:

الـ HC sandwich estimator (HC0)
\widehat{\text{Var}}(\hat{\boldsymbol{\beta}})_{\text{HC0}} = (\mathbf{X}^\prime\mathbf{X})^{-1} \left(\sum_{i=1}^n e_i^2 \mathbf{x}_i \mathbf{x}_i^\prime\right) (\mathbf{X}^\prime\mathbf{X})^{-1}
أشهر نسخة هي HC3 اللي بتستخدم eᵢ²/(1−hᵢᵢ)² كأوزان عشان تحسب حساب الـ leverage. والـ HC standard errors أكبر شوية من الـ OLS لما الـ homoscedasticity تبقى متحققة، بس صح لما متبقاش.

الـ robust standard errors مش بتغيّر الـ point estimates β̂ — بتغيّر بس الـ standard errors (وبالتالي إحصاءات t والـ confidence intervals). وبتستخدم على نطاق واسع في الاقتصاد القياسي والعلوم السياسية والصحة العامة. في R استخدم coeftest(..., vcov = vcovHC(...)) من حزمة sandwich؛ وفي Python استخدم fit().get_robustcov_results(cov_type='HC3') من statsmodels.

أهم النقط
  • الـ residuals قصاد الـ fitted هي رسمة التشخيص الأساسية: تبعتر عشوائي = كويس؛ منحنيات = عدم خطية؛ شكل مروحة = heteroscedasticity؛ outliers لوحدها = اتأكد.
  • الـ QQ plot بيفحص الـ normality بتاعة الـ residuals؛ منحنى S معناه heavy tails، ومنحنى في ناحية واحدة معناه skew — فكّر في transformation للـ dependent variable.
  • الـ heteroscedasticity بيعمل bias في الـ standard errors بس مش في التقديرات؛ والعلاجات: الـ log transformation والـ weighted least squares والـ HC standard errors.
  • الـ leverage hᵢᵢ بيقيس المشاهدة متطرفة قد إيه في فضاء الـ predictors؛ والمشاهدات اللي الـ leverage بتاعها عالي ليها تأثير أكبر من حجمها على الخط المتظبّط.
  • الـ Cook's distance بتجمع الـ leverage والـ residual عشان تقيس التأثير الكلي؛ اتأكد من الـ outliers اللي D > 1 أو اللي عالية بوضوح عن الباقيين.
  • الـ Box-Cox transformations بتلاقي بطريقة منظمة أحسن أُس λ يخلّي الـ residuals normal ويثبّت الـ variance؛ والـ log (λ = 0) هو الأشهر.
  • الـ HC sandwich standard errors بتدّي اختبارات t صالحة تحت الـ heteroscedasticity من غير ما تغيّر تقديرات الـ coefficients؛ وهي الاختيار الافتراضي المتين في الاقتصاد القياسي.
اللي فات الـ multiple regression نظرة عامة على الموديول اللي بعده أبعد من الـ linear regression