دوز مباشرة للمحتوى الرئيسي
دروس فالذكاء الاصطناعي

دقّق وتوقّع معطيات التلقيح ديال DHIS2 باستعمال Python

تعلّم كيفاش تدير سير عمل باستعمال Python وJupyter كيدقّق فمعطيات التلقيح الشهرية ديال DHIS2، كيقدّر التقارير الناقصة، كيحدّد القيم المكرّرة ولا المتبدّلة، وكيقارن بين توقّعات seasonal naive وSARIMA وgradient boosting بلا ما يسرّب معلومات من المستقبل.

دقّق وتوقّع معطيات التلقيح ديال DHIS2 باستعمال Python

شنو كيدير هاد المشروع

هاد المشروع كيوفّر مسار خدمة كامل لاستخراج، ومراجعة، واستكمال، والتنبؤ ببيانات التلقيح الشهرية من DHIS2. كيتعامل مع الجرعات ديال الحصبة وBCG وOPV1 المبلّغ عليها من طرف 13 إقليم خلال 60 شهر مكتمل، من شتنبر 2021 حتى غشت 2026.

البيانات المضمّنة جاية من النسخة التجريبية العمومية ديال DHIS2 اللي خدامة بالإصدار 2.43.1. هادي بيانات تجريبية وما فيها حتى معلومات شخصية ولا مهنية. لذلك، النتائج كتبرهن على طرق التحليل ومشاكل جودة البيانات؛ وما خاصهاش تتفسّر على أساس أنها معطيات على اتجاهات صحية حقيقية.

المسار فيه أربع مراحل رئيسية:

  1. استرجاع البيانات الشهرية المجمّعة عبر واجهة DHIS2 للتحليلات أو تحميل نسخة CSV المحفوظة.
  2. مراجعة اكتمال التصريح، والتكرار سنة بسنة، والتغييرات الكبيرة، والتبديلات المحتملة بين الشهور المتجاورة.
  3. تقدير القيم الناقصة لتدريب النماذج مع الاحتفاظ بالرايات اللي كتحدّد القيم المقدّرة.
  4. اختبار واش نماذج التنبؤ كتتفوق على خط أساس موسمي كيعاود قيمة العام اللي فات.

الخصائص الرئيسية

  • استخراج البيانات من واجهة DHIS2: الدوال الموجودة فـ pull_dhis2_data.py كتلْقى المؤشرات المطلوبة وكتسترجعها.
  • إمكانية إعادة التشغيل بلا إنترنت: الدفتر كيقرا افتراضياً dhis2_raw_data.csv، وبالتالي يقدر يخدم بلا اتصال بالإنترنت ولا تسجيل الدخول.
  • مراجعة الاكتمال: التحليل كيتحقق واش كل مؤشر عندو قيمة وحدة لكل إقليم ولكل شهر.
  • اكتشاف التكرار: كيقيس شحال من مرة كتكون قيمة الإقليم مطابقة تماماً لقيمة نفس الشهر من العام اللي فات.
  • اكتشاف التبديلات: كيشير للشهور المتجاورة اللي كيبانو فيها القيم مرتبة بالعكس مقارنة مع العام اللي فات.
  • ملء الفجوات بطريقة منظّمة: القيم الناقصة كتتقدّر باستعمال نفس الشهر الميلادي فسنوات أخرى، أو باستعمال الموسمية على مستوى الإقليم وعبر الأقاليم.
  • تنبؤ مقاوم لتسرّب المعلومات: التدريب والاختبار مفصولين زمنياً، والفجوات ديال التدريب كتتعمر باستعمال بيانات التدريب فقط.
  • مقارنة النماذج: كيتقيّمو Seasonal naive وSARIMA وgradient boosting باستعمال MAE وWAPE.

فهم ملفات المشروع

  • DHIS2_Immunisation_Audit_and_Forecast.ipynb: التحليل الكامل، بما فيه الرسوم البيانية، ومنطق المراجعة، وملء الفجوات، والتنبؤات.
  • pull_dhis2_data.py: دوال البحث على المؤشرات وجلب البيانات من DHIS2.
  • dhis2_raw_data.csv: نسخة محفوظة كتستعمل فالتشغيل الافتراضي بلا إنترنت.
  • requirements.txt: الاعتماديات ديال حزم Python.
  • README.md: توثيق المشروع والخلاصات الموجزة.

التثبيت والإعداد

1. الحصول على المستودع

دير clone أو حمّل المستودع، ومن بعد حلّ الطرفية فالمجلد الجذري ديالو. كينصح باستعمال بيئة افتراضية باش تبقى حزم المشروع معزولة على مشاريع Python الأخرى.

python -m venv .venv

فعّل البيئة بالأمر المناسب لنظام التشغيل ديالك، ومن بعد ثبّت الحزم المطلوبة:

pip install -r requirements.txt

2. تشغيل Jupyter Notebook

jupyter notebook DHIS2_Immunisation_Audit_and_Forecast.ipynb

شغّل خلايا الدفتر من الفوق للتحت. افتراضياً، التحليل كيحمّل dhis2_raw_data.csv. هادي أبسط وأكثر طريقة قابلة لإعادة الإنتاج لاستكشاف المسار، حيث ما كتحتاج لا لاتصال بالشبكة لا لمعلومات الدخول ديال DHIS2.

3. إعداد الولوج المباشر إلى DHIS2 اختيارياً

باش تجيب بيانات جديدة، عيّن REFRESH = True فأول خلية ديال الكود فالدفتر. يمكن توفير عنوان الخادم وتسجيل الدخول عبر متغيرات البيئة DHIS2_URL وDHIS2_USER وDHIS2_PASSWORD.

DHIS2_URL=https://your-dhis2-server.example
DHIS2_USER=your_username
DHIS2_PASSWORD=your_password

الصيغة الدقيقة لتعيين متغيرات البيئة كتختلف حسب الـshell ونظام التشغيل. الاحتفاظ بمعلومات الدخول فمتغيرات البيئة كيمنع تضمينها فالدفتر أو رفعها مع الكود للمستودع.

ما تتصلش بنسخة DHIS2 مباشرة إلا بموافقة مالك البيانات. استعمل بيانات مجمّعة ومنزوعة الهوية، وتبع متطلبات الأمن والحكامة ديال المؤسسة.

تشغيل المسار الأساسي

الخطوة 1: تحميل أو استرجاع البيانات الشهرية

كل سطر كيمثّل مؤشر واحد، وإقليم واحد، وشهر واحد. التحليل الكامل كيستعمل 13 إقليم و60 شهر لكل مؤشر من مؤشرات التلقيح. الحصبة داخلة فمرحلة المراجعة والتنبؤ بجوج، بينما BCG وOPV1 كيتراجعو. مؤشرات ANC مستبعدة حيث ما كاين غير 20 شهر، وهاد المدة قصيرة بزاف لدراسة الأنماط السنوية فهاد المسار.

مع REFRESH = False، الدفتر كيقرا النسخة المحفوظة. ومع REFRESH = True، كيستعمل دوال المساعدة ديال API باش يجيب النتائج الحالية من الخادم المُعدّ.

الخطوة 2: التحقق من اكتمال التصريح

بالنسبة لكل مؤشر، العدد المتوقع ديال الملاحظات كيتحسب هكذا:

13 districts × 60 months = 780 district-months

العينة فيها 725 قيمة مصرّح بها لكل مؤشر من مؤشرات التلقيح، وهاد الشي كيخلّي 55 قيمة ناقصة، أي 7.1%. النقصان منظّم بزاف وماشي عشوائي:

  • جميع الفجوات كاينة فـ أكتوبر أو نونبر أو دجنبر.
  • كاينين 11 قيمة ناقصة فكل عام من 2021 حتى 2025.
  • الأقاليم المتأثرة هي بوجهن، بونثي، كوينادوگو، كونو، بومبالي، وبورت لوكو.
  • بوجهن ما عندوش تقارير من أكتوبر حتى دجنبر فأي عام متاح.
  • ما كايناش حتى قيمة ناقصة فـ 2026.

هادشي مهم حيت جمع غير الدواوير اللي صرّحو كيخلّي المجموع الوطني يبان ناقص بشكل مصطنع. على امتداد 15 شهر المتأثرين، المجموع بلا تصحيح ناقص فالمتوسط بـ14.3%، وقد يوصل حتى لـ17.1%.

المرحلة 3: كشف التكرارات الدقيقة من عام لعام

الدفتر كيقارن كل شهر-دوّار مع نفس الشهر قبل 12 شهر. التطابقات الدقيقة تقدر توقع بشكل طبيعي، ولكن التكرار الواسع ماشي مألوف فالأعداد الشهرية الحقيقية ديال الصحة.

فبيانات العرض، 65.5% من قيم الحصبة على مستوى الدواوير فـ2024، و92.4% فـ2025، و71.2% من يناير حتى غشت 2026 كيطابقو بالضبط العام اللي قبل. BCG وOPV1 كيبانو تقريباً بنفس النمط.

هاد النمط مهم فالتفسير. كيشبه بيانات تجريبية تولدات ولا تنسخات من قالب، وكيعطي لخط أساس التوقعات المبني على قيم العام اللي فات أفضلية قوية بشكل غير معتاد.

المرحلة 4: مراجعة التغييرات الكبيرة واحتمال تبديل الشهور

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

التبديلات المحتملة كاتبان فمارس وأبريل 2024، وأكتوبر ونونبر 2024، ومارس وأبريل 2026. مثلاً، فـPort Loko كاينين القيمتان 535 و313 فمارس وأبريل، والترتيب ديالهوم تبدل بين العامين. بحال هاد التبديل كيخلق جوج أخطاء شهرية كبيرة، رغم أن المجموع المشترك ديال الشهرين كيبقى هو هو.

سير العمل كيشير للتبديلات المحتملة ولكن ما كيصححهاش. البيانات بوحدها ما كتقدرش تثبت شنو هو الترتيب الصحيح، لذلك خاص مراجعة التقارير الأصلية قبل إجراء أي تغيير.

المرحلة 5: تعمير قيم التدريب الناقصة

المشروع كيعمر كل خانة ناقصة بطريقة من جوج مراحل:

  1. إلا كان الدوّار صرّح بنفس الشهر التقويمي فسنوات أخرى، كتستعمل متوسط القيم المتاحة.
  2. إلا كان الدوّار عمرّو صرّح بهاد الشهر التقويمي، كتقدّر القيمة بضرب متوسط مستوى الدوّار فالنمط الموسمي المعتاد ديال داك الشهر عبر جميع الدواوير.

الطريقة الثانية ضرورية فحالات بحال Pujehun، فين أكتوبر حتى دجنبر ناقصين فكل عام متاح.

باش نتحققو من الطريقة، التحليل كيخبي 15% من القيم المعروفة بين أكتوبر ودجنبر، كيعمرها، ومن بعد كيقارن التقديرات بالملاحظات الفعلية. عبر 21 قيمة مخبية، الخطأ المتوسط هو 8.2% والخطأ الوسيط هو 7.9%. هادي غير عينة تحقق صغيرة، لذلك خاص اعتبار هاد الأرقام كدليل تقريبي ماشي كتقديرات نهائية للدقة.

القيم المقدرة ما كتتعاملش معها التحليلات بحال القيم المرصودة. كتستعمل غير لبناء بيانات تدريب النموذج والخصائص المتأخرة. الملاحظات الناقصة فبيانات الاختبار كتتجاوز أثناء التقييم وما كتتعمرش.

التنبؤ بجرعات الحصبة

استعمال تقسيم زمني بين التدريب والاختبار

السؤال ديال التنبؤ هو واش نموذج يقدر يتوقع 12 شهر الجايين من جرعات الحصبة لكل دوّار بدقة أكبر من تكرار قيم العام اللي فات.

  • فترة التدريب: من شتنبر 2021 حتى غشت 2025، وكتغطي 48 شهر.
  • فترة الاختبار: من شتنبر 2025 حتى غشت 2026، وكتغطي 12 شهر.
  • الملاحظات المقيمة: 145 قيمة مصرح بها فبيانات الاختبار.

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

مقارنة النماذج الثلاثة

  • النموذج الموسمي الساذج: كيتوقع القيمة اللي تسجلات فنفس الشهر قبل عام.
  • SARIMA: كيلائم SARIMA(0,1,1)(0,1,1,12) بشكل مستقل لكل دوّار. هاد الإعداد تختار قبل الاطلاع على نتائج الاختبار وما تدارش ليه معايرة.
  • التعزيز بالتدرج: كيدرب نموذج مشترك على جميع الدواوير باستعمال قيم قبل 12 و24 شهر، والشهر التقويمي، والدوّار. القيم كتتعاير حسب متوسط كل دوّار باش يقدرو الدواوير بأحجام مختلفة يتشاركو نفس النموذج.

خصائص التعزيز بالتدرج كتستعمل غير الملاحظات اللي عمرها على الأقل 12 شهر. هادشي كيعكس المعلومات اللي غتكون متاحة ملي كنوجدو توقع كامل لـ12 شهر لقدام.

تفسير MAE وWAPE

الدفتر كيعرض جوج مقاييس للتقييم:

  • MAE: متوسط الخطأ المطلق بالجرعات لكل شهر-دوّار.
  • WAPE: مجموع الخطأ المطلق مقسوم على مجموع الجرعات الفعلية. مثلاً، 0.036 كتمثل خطأ بنسبة 3.6%.

النموذج الموسمي الساذج حقق MAE قدرها 16.1 وWAPE قدرها 3.6%. وسجل SARIMA قيمة MAE قدرها 30.0 وWAPE قدرها 6.6%، بينما سجل التعزيز بالتدرج MAE قدرها 32.9 وWAPE قدرها 7.3%.

ملي كنستبعدو مارس وأبريل 2026، كتهبط WAPE ديال النموذج الموسمي الساذج لـ0.8%. وكيحقق SARIMA نسبة 5.4%، والتعزيز بالتدرج 5.7%. بالتالي، أغلب الخطأ ديال خط الأساس جاي من التبديل الظاهر بين مارس وأبريل.

علاش خط الأساس البسيط هو اللي ربح

الطريقة الموسمية الساذجة كتخدم أحسن حيت أغلب القيم ففترة الاختبار هي نسخ مطابقة للعام اللي فات. نموذج كيعاود قيمة العام اللي فات كيكون تقريباً مثالي فهاد الظروف.

أما SARIMA والتعزيز بالتدرج فكيقدرو أنماط أوسع باستعمال غير أربع دورات سنوية. كينعمو السلسلة وما كيقدروش يعاودو القيم المنسوخة حرفياً بنفس الموثوقية. وما كيقدروش حتى يتوقعو تبديل بين شهرين متجاورين انطلاقاً من الملاحظات السابقة.

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

نصائح متقدمة لتكييف سير العمل

خلي القيم الملاحظة والتقديرية مفروقة

زيد ولا خَلّي علامة واضحة لكل ملاحظة معمّرة. استعمل التقديرات ملي كتكون سلسلة تدريب كاملة مطلوبة تقنياً، ولكن ما تقدّمهاش بشكل ضمني على أنها قيم مُبلّغ عليها. خاص التقييم يبقى مبني على الملاحظات اللي تبلّغ عليها فعلاً.

حقّق فالشذوذات بلا ما تصلّحها أوتوماتيكياً

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

استعمل التقييم المتحرك حسب أصل زمني

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

دائماً قارن النماذج المعقدة

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

زيد عدم اليقين ملي كتخدم بالمعطيات الحقيقية

الخطوات المقبلة المقترحة كتضم إضافة فواصل التنبؤ. التنبؤات النقطية بوحدها ما كتعبّرش على عدم اليقين الناتج عن التغيّرات العادية، أو محدودية المعطيات التاريخية، أو الفجوات المقدّرة فبيانات التدريب.

أوتوماتيكي عمليات التدقيق المتكررة

يمكن برمجة نفس الفحوصات باش تخدم من بعد كل دورة ديال إعداد التقارير. العملية المتكررة تقدر تبلغ على المناطق-الأشهر اللي ولات ناقصة، والتكرارات غير المتوقعة من عام لعام، والتغييرات الكبيرة، والأشهر اللي كاين شك أنها تبدلات، باش يتم التحقق منها.

كون حذر ملي كتوسّع العمل لمؤشرات أخرى

قبل ما تتنبأ بمقياس آخر، تأكد باللي عندو تاريخ كافي للدورة الموسمية ديالو. مؤشرات ANC المتاحة فيها غير 20 شهر كيبداو من يناير 2025، وداكشي علاش هاد المشروع ما كيستعملهاش لدراسة الأنماط السنوية.

قيود مهمة

  • المصدر خادم تجريبي، وبالتالي التحليل ما كيقول والو على الاتجاهات الحقيقية ديال التلقيح.
  • مقارنة التنبؤات كتستعمل نافذة اختبار وحدة مدتها 12 شهر.
  • غير مرض الحصبة هو اللي تم التنبؤ به.
  • إعداد SARIMA ثابت وما تدارش ليه عملية ضبط.
  • التحقق من ملء الفجوات فيه غير 21 ملاحظة مخفية.
  • التقديرات ديال Pujehun من أكتوبر حتى دجنبر كتعتمد على الأنماط الموسمية ديال مناطق أخرى.
  • الأشهر اللي كاين شك أنها تبدلات كتتعلّم، ولكن ما كتصلحش.

الخلاصة

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

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