تحليل متوسط العمر المتوقع باستخدام الانحدار: دليل عملي مع Scikit-Learn و Statsmodels

دقائق القراءة: 8

في عالم يتزايد فيه الاهتمام بالصحة العامة والعوامل المؤثرة على جودة الحياة، يبرز تحليل متوسط العمر المتوقع كأحد المجالات الحيوية في علم البيانات. لطالما تساءلت عن العوامل التي قد تؤثر في مدى طول حياة الأفراد في مختلف البلدان، وهل هناك علاقة بين الظروف الاقتصادية والبيئية والصحية ومتوسط العمر المتوقع؟

في هذا المقال، سنخوض رحلة تحليلية معمقة لاستكشاف هذه التساؤلات، مستخدمين بيانات واقعية حول متوسط العمر المتوقع لتقييم أربعة نماذج انحدار رئيسية: الانحدار الخطي (Linear Regression)، وانحدار ريدج (Ridge Regression)، وانحدار لاسو (LASSO Regression)، والانحدار متعدد الحدود (Polynomial Regression). سنستعين بمكتبات Python القوية مثل Scikit-Learn و Statsmodels لإجراء هذا التحليل.

لقد قمت باستكشاف اتجاهات حمى الضنك في سنغافورة، حيث شهدت البلاد ارتفاعًا ملحوظًا في حالات الإصابة، خاصة في “منطقة حمى الضنك الحمراء” التي أقيم فيها. ونظرًا لعدم توفر البيانات الأولية على موقع وكالة البيئة الوطنية (NEA)، تساءلت عما إذا كانت حمى الضنك قد أثرت على متوسط العمر المتوقع للأشخاص في أي بلد على وجه الخصوص؟ وهل يعيش الناس في الدول الغنية لفترة أطول؟ وما هي العوامل التي تؤثر على متوسط العمر المتوقع لدولة ما؟

لذا، قمت بالبحث عن بيانات تتعلق بمتوسط العمر المتوقع، مع التركيز على الجوانب التالية (الميزات):

  • معدل المواليد (Birth Rate)
  • معدل الإصابة بالسرطان (Cancer Rate)
  • حالات حمى الضنك (Dengue Cases)
  • مؤشر الأداء البيئي (Environmental Performance Index - EPI)
  • الناتج المحلي الإجمالي (Gross Domestic Product - GDP)
  • الإنفاق على الصحة (Health Expenditure)
  • معدل أمراض القلب (Heart Disease Rate)
  • مساحة السكان (Population Area)
  • الكثافة السكانية (Population Density)
  • معدل السكتة الدماغية (Stroke Rate)

الهدف من تحليلنا هو متوسط العمر المتوقع (Life Expectancy)، والذي يُقاس بعدد السنوات. تعتمد هذه الدراسة على الافتراضات التالية:

  • هذه البيانات تمثل متوسطات على مستوى الدولة.
  • لا يوجد تمييز بين الذكور والإناث في هذه البيانات.

يمكنك العثور على الكود البرمجي الكامل المستخدم في هذا التحليل على مستودع GitHub الخاص بي.

المنهجية المتبعة في علم البيانات

لقد اتبعت منهجية علم البيانات القياسية في تحليلي، والتي تضمنت الخطوات التالية:

مخطط يوضح خطوات عملية علم البيانات: جمع البيانات، تنظيف البيانات، التحليل الاستكشافي للبيانات، اختيار الميزات، هندسة الميزات، اختيار النموذج، ضبط النموذج وتوليف المعاملات الفائقة، تحسين النموذج بناءً على مقياس الأداء المختار.

  • جمع البيانات (Data Collection)
  • تنظيف البيانات (Data Cleaning)
  • التحليل الاستكشافي للبيانات (Exploratory Data Analysis - EDA)
  • اختيار الميزات (Feature Selection)
  • هندسة الميزات (Feature Engineering)
  • اختيار النموذج (Model Selection)
  • ضبط النموذج وتوليف المعاملات الفائقة (Model Tuning and Hyperparameter Tuning)
  • تحسين النموذج بناءً على مقياس الأداء المختار (Model Optimization based on selected performance metric)

الأدوات المستخدمة في التحليل

تضمنت الأدوات والمكتبات التي استخدمتها في هذا التحليل ما يلي:

شعار مكتبات Python مثل Numpy و Pandas و Matplotlib و Seaborn و Scikit-Learn و Statsmodels

  • مكتبات Python، وبالأخص Numpy و Pandas لمعالجة هياكل البيانات.
  • Matplotlib و Seaborn للتصور البياني للبيانات.
  • Scikit-Learn و Statsmodels لتحليل الانحدار.

التحليل الاستكشافي للبيانات (EDA)

الخطوة الأولى في التحليل الاستكشافي للبيانات هي التحقق من وجود علاقة ارتباط متعددة (multi-collinearity) بين الميزات المختلفة. يمكن أن تؤثر هذه الظاهرة سلبًا على استقرار وموثوقية نماذج الانحدار.

sns.set(rc={'figure.figsize':(10,7)})
sns.heatmap(df.corr(), cmap="seismic", annot=True, vmin=-1, vmax=1)

كما يتضح من الصورة أدناه، يبدو أن هناك بعض الارتباط القوي (strong collinearity)، والذي تشير إليه المربعات ذات الألوان الحمراء الداكنة والزرقاء الداكنة.

خريطة حرارية (Heatmap) توضح مصفوفة الارتباط بين ميزات البيانات المختلفة، مع وجود ارتباطات قوية بين بعضها

على سبيل المثال، الدول التي تنفق أكثر على الرعاية الصحية لديها درجة أعلى في مؤشر الأداء البيئي (EPI). وعندما يكون الإنفاق على الصحة أعلى، يكون معدل السكتة الدماغية (Stroke Rate) أقل أيضًا. كما أن المساحة الأكبر تؤدي إلى كثافة سكانية أعلى.

العلاقة بين الميزات والهدف

ماذا عن العلاقة بين الميزات ومتوسط العمر المتوقع (الهدف)؟ لتحقيق حياة طويلة، يجب أن يكون لديك معدل سكتة دماغية منخفض، وإنفاق صحي مرتفع، ورعاية جيدة للبيئة، وعدد أقل من المواليد (وفقًا لمخطط الارتباط).

مخطط ارتباط يوضح العلاقة بين كل ميزة ومتوسط العمر المتوقع، مع إظهار الميزات ذات الارتباط الإيجابي والسلبي

التعامل مع القيم الشاذة وتحويل البيانات

دعونا نلقي نظرة على مخطط الأزواج الأولي (pair plot).

sns.pairplot(df, height=1.5, aspect=1.5)

مخطط أزواج (Pair Plot) أولي يظهر توزيع كل ميزة وعلاقتها بالميزات الأخرى، مع وجود قيم شاذة واضحة

يبدو أن هناك حاجة لإزالة القيم الشاذة (outliers) في العديد من الميزات، مثل حالات حمى الضنك (Dengue Cases)، والناتج المحلي الإجمالي (GDP)، وعدد السكان (Population)، والمساحة (Area)، والكثافة السكانية (Population Density). تم استبدال كل قيمة شاذة بأعلى قيمة تالية في العمود.

بعد إزالة القيم الشاذة، لا تزال المخططات منحرفة إلى اليمين (النقاط شديدة التركيز على الجانب الأيسر). هذا يشير إلى أن بعض التحويلات قد تكون ضرورية لتحسين توزيع البيانات.

مخطط أزواج بعد إزالة القيم الشاذة، يظهر أن البيانات لا تزال منحرفة وتتركز في جانب واحد

طريقة أخرى لإزالة القيم الشاذة هي استخدام دالة اللوغاريتم (LOG function)، والتي تساعد على توزيع البيانات المركزة بشكل أفضل.

مخطط أزواج بعد تطبيق دالة اللوغاريتم (LOG function) على الميزات، مما أدى إلى توزيع أكثر توازنًا للبيانات

اختيار الميزات الفعالة (Feature Selection)

للبحث عن الميزات ذات الأهمية الإحصائية، قمت بإسقاط ميزة واحدة في كل مرة لملاحظة تأثيرها على نموذج الانحدار البسيط. بالنظر إلى قيمة معامل التحديد (R² Score)، تم اختيار هذه الميزات الثلاث: معدل المواليد (Birth Rate)، ومؤشر الأداء البيئي (EPI)، ومعدل السكتة الدماغية (Stroke Rate)، لأن النموذج سيتأثر سلبًا بدونها.

مخطط يوضح تأثير إزالة كل ميزة على قيمة R² Score لنموذج الانحدار، مما يساعد في تحديد الميزات المهمة

بعد ذلك، قمت بإزالة القيم الشاذة ومراجعة قيم الاحتمالية (p-values) باستخدام مكتبة Statsmodels. اكتسبت ميزة مهمة إضافية وهي الكثافة السكانية (Population Density). عندما تكون قيمة p-value لميزة ما أقل من 0.05، تُعتبر ميزة جيدة، حيث اخترت مستوى دلالة 5%.

جدول يوضح قيم p-value للميزات المختلفة بعد إزالة القيم الشاذة، مع تسليط الضوء على الميزات ذات الدلالة الإحصائية

بعد ذلك، طبقت دوال اللوغاريتم (LOG functions) على جميع الميزات، واكتسبت 4 ميزات مهمة إضافية: الناتج المحلي الإجمالي (GDP)، ومعدل أمراض القلب (Heart Disease Rate)، وعدد السكان (Population)، والمساحة (Area).

جدول يوضح قيم p-value للميزات بعد تطبيق تحويل اللوغاريتم، مما أظهر ميزات إضافية ذات دلالة إحصائية

لقد أجريت أيضًا تحويلات أخرى (مثل المقلوب Reciprocal، والقوة الثانية Power 2، والجذر التربيعي Square Root)، ولكن لم يكن هناك أي تحسن إضافي في أداء النموذج.

مخطط يوضح مقارنة تأثير التحويلات المختلفة (اللوغاريتم، المقلوب، القوة الثانية، الجذر التربيعي) على أداء النموذج

يمكن أيضًا اختيار الميزات باستخدام خاصية LassoCV المتوفرة في مكتبة Scikit-Learn، والتي تساعد في تحديد الميزات الأكثر أهمية عن طريق تصفير معاملات الميزات الأقل تأثيرًا.

مخطط يوضح نتائج اختيار الميزات باستخدام LassoCV من Scikit-Learn، مع إظهار أهمية كل ميزة

أخيرًا، نظرت إلى مخطط الأزواج (pair plot) مرة أخرى مع جميع الميزات المهمة التي تم اختيارها. الآن، أصبحت مخططات الانتشار موزعة بشكل جيد مع بعض الاتجاهات الواضحة، مما يشير إلى تحسن جودة البيانات للنمذجة.

مخطط أزواج نهائي يظهر توزيعًا أفضل للميزات المختارة وعلاقات أكثر وضوحًا بينها

اختيار النموذج الأمثل (Model Selection)

بعد إعداد البيانات واختيار الميزات، أصبحت جاهزًا لتدريب النماذج التالية على مجموعة بيانات التدريب (train data set):

  • الانحدار الخطي (Linear Regression): يمثل خطًا مستقيمًا يقرب العلاقة بين المتغيرات التابعة والمتغير المستقل المستهدف.
  • انحدار ريدج (Ridge Regression): يقلل من تعقيد النموذج مع الاحتفاظ بجميع المعاملات في النموذج، وهو ما يُعرف بـ “عقوبة L2” (L2 penalty).
  • انحدار لاسو (LASSO Regression – Least Absolute Shrinkage and Selection Operator): يقلل من تعقيد النموذج عن طريق معاقبة معاملات النموذج إلى الصفر، وهو ما يُعرف بـ “عقوبة L1” (L1 penalty)، مما يؤدي إلى اختيار الميزات تلقائيًا.
  • الانحدار متعدد الحدود من الدرجة الثانية (Degree 2 Polynomial Regression): يستخدم منحنى لتقريب العلاقة بين المتغيرات التابعة والمتغير المستقل المستهدف، مما يسمح بالتقاط العلاقات غير الخطية.

مخطط بياني يقارن أداء نماذج الانحدار المختلفة (الخطي، ريدج، لاسو، متعدد الحدود) على بيانات التدريب

لقد قمت أيضًا بالتحقق من أداء هذه النماذج على مجموعة بيانات التحقق (validation data set). يبدو أن نموذج الانحدار الخطي البسيط (simple linear regression model) لديه القدرة على أن يكون الأفضل أداءً. تم تأكيد ذلك من خلال التحقق المتقاطع (Cross Validation) باستخدام طريقة KFold (مع 5 تقسيمات).

مخطط يوضح نتائج التحقق المتقاطع (Cross Validation) باستخدام KFold لمقارنة أداء نماذج الانحدار المختلفة

أخيرًا، تحققت من خطأ البواقي (residue error) مقابل الافتراضات. يجب أن تكون أخطاء البواقي موزعة بشكل طبيعي (normally distributed) مع تباين متساوٍ حول متوسط الصفر. يبدو مخطط الربع إلى الربع الطبيعي (Normal Quartile-to-Quartile plot) طبيعيًا بشكل مقبول أيضًا، مما يدعم صلاحية النموذج.

مخطط الربع إلى الربع الطبيعي (Normal Quartile-to-Quartile plot) لأخطاء البواقي، يظهر توزيعًا طبيعيًا مقبولًا

نظرًا لأن لدي 250 صفًا فقط (البيانات محدودة بعدد البلدان في العالم)، فقد استخدمت مجموعة البيانات بأكملها لمحاكاة مجموعة بيانات الاختبار (test data set). (ملاحظة: تم ذلك لغرض أكاديمي، وليس عمليًا لأنه سيؤدي إلى تسرب البيانات data leakage). استخدمت التحقق المتقاطع KFold Cross Validation مع 10 تقسيمات لتقييم أداء النموذج.

from sklearn.model_selection import cross_val_score
from sklearn.model_selection import KFold

kf = KFold(n_splits=5, shuffle=True, random_state = 1)
lm = LinearRegression()
lm.fit(X_train, y_train)
cvs_lm = cross_val_score(lm, X, y, cv=kf, scoring='r2')
print(cvs_lm)

يوجد قدر كبير من التباين في قيم ، حيث تتراوح من 0.49 إلى 0.82، ولكن متوسط النتيجة حوالي 0.69، وهو أمر مرضٍ للغاية.

مخطط يوضح توزيع قيم R² الناتجة عن التحقق المتقاطع، مع إظهار التباين والمتوسط

تفسير النموذج

كيف نفسر النموذج الذي قمنا ببنائه؟ لنفهم تأثير كل ميزة على متوسط العمر المتوقع، دعونا نلقي نظرة على ملخص النموذج باستخدام Statsmodels.

df = pd.read_csv('df3.csv')
X = df[ [ 'Birth Rate' , 'EPI' , 'GDP' , 'Heart Disease Rate' , 'Population' , 'Area' , 'Pop Density' , 'Stroke Rate' ] ].astype(float)
X = np.log(X)
y = df["Life Expectancy"].astype(float)
X = sm.add_constant(X)
model = sm.OLS(y, X)
results = model.fit()
results.summary()

من خلال تحليل ملخص النتائج (results.summary())، يمكننا استخلاص بعض الاستنتاجات المثيرة للاهتمام:

  • إذا لم تتأثر بالعوامل المذكورة، فإن متوسط العمر المتوقع يبلغ 62 عامًا.
  • إذا كان معدل المواليد (Birth Rate) في بلدك منخفضًا، أضف 5 سنوات إضافية إلى متوسط العمر المتوقع.
  • إذا كان مؤشر الأداء البيئي (EPI) مرتفعًا، أضف 8 سنوات إضافية إلى متوسط العمر المتوقع.
  • إذا كنت تعيش في بلد غني (ناتج محلي إجمالي GDP مرتفع)، أضف نصف عام إلى متوسط العمر المتوقع.
  • أخيرًا، لكل وحدة (أو بالأحرى وحدة لوغاريتمية LOG unit) انخفاض في معدل السكتة الدماغية (Stroke Rate)، يمكن إضافة 5 سنوات إضافية إلى متوسط العمر المتوقع.

جدول ملخص لنتائج نموذج الانحدار من Statsmodels، يوضح المعاملات وقيم p-value لكل ميزة

الخطوات المستقبلية والتوصيات

يمكن توسيع هذا التحليل في المستقبل من خلال عدة طرق:

  • جمع المزيد من البيانات عن طريق توسيع النطاق ليشمل المدن بدلاً من الدول، واستكشاف ميزات (عوامل) أخرى تؤثر على متوسط العمر المتوقع.
  • تقسيم البيانات إلى فئات ذكور وإناث لإجراء تحليل انحدار لمتوسط العمر المتوقع بشكل أكثر تفصيلاً ودقة.

للتلخيص، إليك بعض الأفكار المثيرة للاهتمام المستخلصة من هذا التحليل:

  1. اليابان لديها أعلى متوسط عمر متوقع (83.7 سنة)، بينما تقع جمهورية إفريقيا الوسطى (49.5 سنة) والعديد من البلدان في القارة الإفريقية في أسفل القائمة. سنغافورة تحتل المرتبة الخامسة (82.7 سنة).
  2. الاهتمام الجيد بالبيئة له أكبر معامل (تأثير) على متوسط العمر المتوقع لدولة ما، مما يؤكد أهمية مؤشر الأداء البيئي (EPI).

الكود البرمجي Python للتحليل المذكور أعلاه متاح على مستودع GitHub الخاص بي. لا تتردد في الرجوع إليه واستكشافه: https://github.com/JNYH/Project-Luther

يمكنك أيضًا مشاهدة العرض التقديمي المرئي لهذا المشروع على YouTube: https://youtu.be/gC2m_lvouu8

الخلاصة التقنية

يُظهر هذا التحليل قوة نماذج الانحدار في فهم العوامل المعقدة التي تؤثر على متوسط العمر المتوقع. من خلال تطبيق منهجية علم البيانات الشاملة، بدءًا من التحليل الاستكشافي للبيانات ومرورًا باختيار الميزات وتحويلها، وصولًا إلى تدريب النماذج وتفسيرها، تمكنا من بناء نموذج يعطي رؤى قيمة. لقد برهن الانحدار الخطي على فعاليته في هذا السياق، مع تسليط الضوء على أن عوامل مثل معدل المواليد، ومؤشر الأداء البيئي، والناتج المحلي الإجمالي، ومعدل السكتة الدماغية تلعب أدوارًا محورية. الأهم من ذلك، يؤكد التحليل على أن جودة البيانات ومعالجتها الصحيحة، بالإضافة إلى اختيار النموذج المناسب، هي مفتاح استخلاص استنتاجات موثوقة وقابلة للتطبيق في مجالات مثل الصحة العامة وتخطيط السياسات.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *