
Bu loyiha nima qiladi
Ushbu loyiha DHIS2 tizimidan oylik emlash ma’lumotlarini chiqarib olish, tekshirish, to‘ldirish va prognozlash uchun boshidan oxirigacha bo‘lgan ish jarayonini taqdim etadi. U 2021-yil sentyabridan 2026-yil avgustigacha bo‘lgan 60 ta yakunlangan oy davomida 13 ta tuman tomonidan xabar qilingan qizamiq, BCG va OPV1 dozalaridan foydalanadi.
To‘plamdagi ma’lumotlar 2.43.1-versiyada ishlayotgan ochiq DHIS2 demo nusxasidan olingan. Bu namunaviy ma’lumotlar bo‘lib, shaxsiy yoki ish joyiga oid ma’lumotlarni o‘z ichiga olmaydi. Shu sababli, natijalar tahlil usullari va ma’lumotlar sifati muammolarini namoyish etadi; ularni real sog‘liq tendensiyalari haqidagi xulosalar sifatida talqin qilish mumkin emas.
Ish jarayoni to‘rtta asosiy bosqichdan iborat:
- DHIS2 analytics API orqali jamlangan oylik ma’lumotlarni olish yoki saqlangan CSV nusxasini yuklash.
- Hisobot berish to‘liqligini, yildan-yilga takrorlanishni, katta o‘zgarishlarni va qo‘shni oylar o‘rnining almashib qolishi ehtimolini tekshirish.
- Modelni o‘qitish uchun yetishmayotgan qiymatlarni baholash va baholangan qiymatlarni aniqlovchi belgilarni saqlab qolish.
- Prognozlash modellari avvalgi yil qiymatini takrorlaydigan mavsumiy bazaviy modeldan yaxshiroq natija berishini sinash.
Asosiy imkoniyatlar
- DHIS2 API orqali ma’lumot chiqarish:
pull_dhis2_data.pyfaylidagi funksiyalar kerakli indikatorlarni topadi va oladi. - Oflayn takrorlanuvchanlik: Noutbuk sukut bo‘yicha
dhis2_raw_data.csvfaylini o‘qiydi, shuning uchun uni internetga ulanish yoki tizimga kirishsiz ishga tushirish mumkin. - To‘liqlik auditi: Tahlil har bir indikator uchun har bir tuman va oyga bittadan qiymat mavjudligini tekshiradi.
- Takrorlanishni aniqlash: Tuman qiymati bir yil avvalgi ayni oy qiymatiga aynan qanchalik tez-tez mos kelishini o‘lchaydi.
- O‘rin almashishini aniqlash: Qiymatlari avvalgi yilga nisbatan teskari tartibda ko‘ringan qo‘shni oylarni belgilaydi.
- Tizimli bo‘shliqlarni to‘ldirish: Yetishmayotgan qiymatlar boshqa yillardagi ayni kalendar oyi yoki tuman darajasi va tumanlararo mavsumiylik asosida baholanadi.
- Ma’lumot sizib chiqishiga chidamli prognozlash: O‘qitish va sinov davrlari xronologik tarzda ajratiladi, o‘qitishdagi bo‘shliqlar esa faqat o‘qitish ma’lumotlari yordamida to‘ldiriladi.
- Modellarni taqqoslash: Mavsumiy sodda model, SARIMA va gradientli kuchaytirish MAE va WAPE yordamida baholanadi.
Loyiha fayllarini tushunish
DHIS2_Immunisation_Audit_and_Forecast.ipynb: diagrammalar, audit mantiqi, bo‘shliqlarni to‘ldirish va prognozlarni o‘z ichiga olgan to‘liq tahlil.pull_dhis2_data.py: indikatorlarni topish va DHIS2 tizimidan ma’lumot olish funksiyalari.dhis2_raw_data.csv: sukut bo‘yicha oflayn ishga tushirishda foydalaniladigan saqlangan nusxa.requirements.txt: Python paketlariga bog‘liqliklar.README.md: loyiha hujjatlari va umumlashtirilgan natijalar.
O‘rnatish va sozlash
1. Repozitoriyni oling
Repozitoriyni klonlang yoki yuklab oling, so‘ng uning ildiz katalogida terminalni oching. Virtual muhitdan foydalanish tavsiya etiladi, chunki bu loyiha paketlarini boshqa Python loyihalaridan alohida saqlaydi.
python -m venv .venv
Operatsion tizimingizga mos buyruq yordamida muhitni faollashtiring, so‘ng kerakli paketlarni o‘rnating:
pip install -r requirements.txt
2. Jupyter Notebook dasturini ishga tushiring
jupyter notebook DHIS2_Immunisation_Audit_and_Forecast.ipynb
Noutbuk kataklarini yuqoridan pastga qarab ishga tushiring. Sukut bo‘yicha tahlil dhis2_raw_data.csv faylini yuklaydi. Bu ish jarayonini o‘rganishning eng sodda va takrorlanuvchan usuli, chunki buning uchun na tarmoqqa ulanish, na DHIS2 hisob ma’lumotlari kerak bo‘ladi.
3. Istasangiz, jonli DHIS2 ulanishini sozlang
Yangi ma’lumotlarni olish uchun noutbukning birinchi kod katagida REFRESH = True qiymatini belgilang. Server manzili va kirish ma’lumotlarini DHIS2_URL, DHIS2_USER va DHIS2_PASSWORD muhit o‘zgaruvchilari orqali berish mumkin.
DHIS2_URL=https://your-dhis2-server.example
DHIS2_USER=your_username
DHIS2_PASSWORD=your_password
Muhit o‘zgaruvchilarini belgilashning aniq sintaksisi foydalanayotgan shell va operatsion tizimga bog‘liq. Hisob ma’lumotlarini muhit o‘zgaruvchilarida saqlash ularning noutbuk ichiga joylashtirilishi yoki manba kodini boshqarish tizimiga yuborilishining oldini oladi.
Jonli DHIS2 nusxasiga faqat ma’lumot egasining roziligi bilan ulaning. Shaxsi aniqlanmaydigan jamlangan ma’lumotlardan foydalaning hamda tashkilotning xavfsizlik va boshqaruv talablariga rioya qiling.
Asosiy ish jarayonini ishga tushirish
1-qadam: Oylik ma’lumotlarni yuklang yoki oling
Har bir qator bitta indikator, bitta tuman va bitta oyni ifodalaydi. To‘liq tahlilda har bir emlash indikatori uchun 13 ta tuman va 60 oydan foydalaniladi. Qizamiq audit va prognozlash bosqichlarining ikkalasiga ham kiritilgan, BCG va OPV1 esa audit qilinadi. ANC indikatorlari chiqarib tashlangan, chunki ularda atigi 20 oy mavjud bo‘lib, bu ish jarayonida yillik qonuniyatlarni o‘rganish uchun juda qisqa davr hisoblanadi.
REFRESH = False bo‘lganda, noutbuk saqlangan nusxani o‘qiydi. REFRESH = True bo‘lganda esa sozlangan serverdan joriy natijalarni olish uchun API yordamchi funksiyalaridan foydalanadi.
2-qadam: Hisobot berish to‘liqligini tekshiring
Har bir indikator uchun kutilayotgan kuzatuvlar soni quyidagicha hisoblanadi:
13 tuman × 60 oy = 780 tuman-oy
Namunada har bir emlash indikatori bo‘yicha 725 ta xabar qilingan qiymat mavjud, natijada 55 ta yetishmayotgan qiymat yoki 7.1% hosil bo‘ladi. Yetishmovchilik tasodifiy emas, balki kuchli tizimli xususiyatga ega:
- Barcha bo‘shliqlar oktabr, noyabr yoki dekabr oylariga to‘g‘ri keladi.
- 2021-yildan 2025-yilgacha har bir yilda 11 tadan qiymat yetishmaydi.
- Ta’sirlangan tumanlar Pujehun, Bonthe, Koinadugu, Kono, Bombali va Port Loko.
- Pujehunda mavjud yillarning hech birida oktabrdan dekabrgacha hisobotlar mavjud emas.
- 2026-yilda hech qanday qiymat yetishmaydi.
Bu muhim, chunki faqat hisobot bergan tumanlarni jamlash milliy jami ko‘rsatkichni sun’iy ravishda past ko‘rsatadi. Ta’sirlangan 15 oy bo‘yicha tuzatilmagan jami o‘rtacha 14.3% ga, ayrim hollarda esa 17.1% gacha kam ko‘rsatilgan.
3-qadam: Yildan-yilga aynan takrorlangan qiymatlarni aniqlash
Notebook har bir tuman-oy ko‘rsatkichini 12 oy oldingi mos oy bilan taqqoslaydi. Aynan bir xil qiymatlar tabiiy ravishda uchrashi mumkin, biroq real oylik tibbiy ko‘rsatkichlarda bunday keng ko‘lamli takrorlanish odatiy emas.
Demo ma’lumotlarida 2024-yilda qizamiq bo‘yicha tuman-oy ko‘rsatkichlarining 65.5% i, 2025-yilda 92.4% i va 2026-yil yanvaridan avgustigacha 71.2% i oldingi yil bilan aynan mos keladi. BCG va OPV1 da ham deyarli xuddi shunday holat kuzatiladi.
Bu holatni talqin qilish uchun muhim. U namuna ma’lumotlari shablondan yaratilgan yoki ko‘chirilganga o‘xshaydi va o‘tgan yilgi qiymatlarga asoslangan prognozlash bazaviy usuliga odatdagidan ancha katta ustunlik beradi.
4-qadam: Katta o‘zgarishlar va oylarning ehtimoliy almashishini ko‘rib chiqish
Yildan-yilga katta o‘zgarishlar foydali ogohlantiruvchi signallardir, ammo ular avtomatik ravishda xato hisoblanmaydi. Notebook, shuningdek, oldingi yilga nisbatan ketma-ket ikki qiymat o‘z o‘rnini almashtirgan-almashtirmaganini tekshiradi.
Ehtimoliy almashishlar 2024-yil mart va aprel oylarida, 2024-yil oktabr va noyabr oylarida hamda 2026-yil mart va aprel oylarida ko‘rinadi. Masalan, Port Lokoda mart va aprel oylarida 535 va 313 qiymatlari mavjud bo‘lib, yillar o‘rtasida ularning tartibi o‘zgargan. Bunday almashish juftlikning umumiy jami o‘zgarmagan bo‘lsa ham, ikki oylik katta xatoni yuzaga keltiradi.
Ish jarayoni ehtimoliy almashishlarni belgilaydi, ammo ularni tuzatmaydi. Qaysi tartib to‘g‘ri ekanini faqat ma’lumotlarning o‘zi bilan aniqlab bo‘lmaydi, shuning uchun o‘zgartirish kiritishdan oldin asl hisobotlarni tekshirish kerak.
5-qadam: O‘qitishdagi yetishmayotgan qiymatlarni to‘ldirish
Loyiha har bir bo‘shliqni ikki bosqichli usul yordamida to‘ldiradi:
- Agar tuman boshqa yillarda ayni kalendar oy bo‘yicha hisobot bergan bo‘lsa, mavjud qiymatlarning o‘rtachasidan foydalaniladi.
- Agar tuman hech qachon ushbu kalendar oyi bo‘yicha hisobot bermagan bo‘lsa, tuman o‘rtacha darajasini barcha tumanlar bo‘yicha shu oy uchun odatiy mavsumiy ko‘rsatkichga ko‘paytirish orqali baholanadi.
Ikkinchi usul Pujehun kabi holatlar uchun zarur, chunki mavjud yillarning barchasida oktabrdan dekabrgacha bo‘lgan ma’lumotlar yo‘q.
Usulni tekshirish uchun tahlil oktabrdan dekabrgacha bo‘lgan ma’lum qiymatlarning 15% ini yashiradi, ularni to‘ldiradi va baholarni haqiqiy kuzatuvlar bilan taqqoslaydi. Yashirilgan 21 ta qiymat bo‘yicha o‘rtacha xato 8.2%, median xato esa 7.9% ni tashkil etadi. Bu atigi kichik tekshiruv namunasi, shuning uchun ushbu ko‘rsatkichlarni aniq aniqlik bahosi emas, balki taxminiy yo‘l-yo‘riq sifatida ko‘rish kerak.
Baholangan qiymatlar kuzatilgan qiymatlar sifatida qaralmaydi. Ular faqat modelni o‘qitish ma’lumotlari va kechiktirilgan belgilarni shakllantirish uchun ishlatiladi. Testdagi yetishmayotgan kuzatuvlar to‘ldirilmaydi, balki baholash vaqtida chiqarib tashlanadi.
Qizamiq dozalarini prognozlash
Xronologik o‘qitish-testga ajratishdan foydalanish
Prognozlash savoli shundan iboratki, model har bir tuman uchun qizamiq dozalarining keyingi 12 oyini o‘tgan yilgi qiymatlarni takrorlashdan ko‘ra aniqroq bashorat qila oladimi.
- O‘qitish davri: 2021-yil sentyabridan 2025-yil avgustigacha, 48 oyni qamrab oladi.
- Test davri: 2025-yil sentyabridan 2026-yil avgustigacha, 12 oyni qamrab oladi.
- Baholangan kuzatuvlar: hisobot berilgan 145 ta test qiymati.
Tasodifiy ajratish kelajakdagi kuzatuvlarning oldingi oylar prognoziga ta’sir qilishiga imkon beradi. Vaqtga asoslangan ajratish bunday ma’lumot sizib chiqishining oldini oladi. O‘qitishdagi bo‘shliqlar faqat o‘qitish davri ma’lumotlari yordamida to‘ldiriladi, 2025-yil oktabridan dekabrigacha testdagi hisobot berilmagan qiymatlar esa baholashdan chiqarib tashlanadi.
Uchta modelni taqqoslash
- Mavsumiy sodda model: bir yil avvalgi ayni oyda kuzatilgan qiymatni bashorat qiladi.
- SARIMA: har bir tuman uchun alohida
SARIMA(0,1,1)(0,1,1,12)modelini moslashtiradi. Ushbu konfiguratsiya test natijalarini ko‘rishdan oldin tanlangan va sozlanmagan. - Gradientli boosting: barcha tumanlar uchun umumiy modelni 12 va 24 oy oldingi qiymatlar, kalendar oyi va tuman ma’lumotlaridan foydalanib o‘qitadi. Turli hajmdagi tumanlar bitta modeldan foydalanishi uchun qiymatlar har bir tumanning o‘rtacha ko‘rsatkichi bo‘yicha masshtablanadi.
Gradient boosting belgilari faqat kamida 12 oy oldingi kuzatuvlardan foydalanadi. Bu to‘liq 12 oylik oldindan prognoz tuzilganda mavjud bo‘ladigan ma’lumotni aks ettiradi.
MAE va WAPE ni talqin qilish
Notebook ikkita baholash metrikasini taqdim etadi:
- MAE: tuman-oy kesimida dozalar bo‘yicha o‘rtacha mutlaq xato.
- WAPE: jami mutlaq xatoning jami haqiqiy dozalar soniga nisbati. Masalan,
0.0363.6% xatoni anglatadi.
Mavsumiy sodda model MAE bo‘yicha 16.1 va WAPE bo‘yicha 3.6% natijaga erishadi. SARIMA uchun MAE 30.0 va WAPE 6.6%, gradient boosting uchun esa MAE 32.9 va WAPE 7.3% ni tashkil etadi.
2026-yil mart va aprel oylari chiqarib tashlanganda, mavsumiy sodda modelning WAPE ko‘rsatkichi 0.8% gacha tushadi. SARIMA 5.4% ga, gradient boosting esa 5.7% ga erishadi. Demak, bazaviy model xatosining katta qismi mart-aprel oylaridagi ko‘rinadigan almashishdan kelib chiqadi.
Nima uchun sodda bazaviy model ustun keldi
Mavsumiy sodda yondashuv eng yaxshi natija ko‘rsatadi, chunki test davridagi qiymatlarning aksariyati oldingi yilgi qiymatlarning aynan nusxalaridir. Bunday sharoitda o‘tgan yilgi kuzatuvni takrorlaydigan model deyarli mukammal ishlaydi.
SARIMA va gradient boosting esa atigi to‘rtta yillik sikldan umumiyroq qonuniyatlarni baholaydi. Ular qatorni silliqlaydi va aynan ko‘chirilgan qiymatlarni bir xil ishonchlilik bilan takrorlay olmaydi. Shuningdek, ular oldingi kuzatuvlar asosida ketma-ket oylar almashishini bashorat qila olmaydi.
Bu natija mavsumiy sodda prognozlash umuman olganda ustun ekanini isbotlamaydi. U ushbu demo ma’lumotlar to‘plamining noodatiy tuzilishini aks ettiradi. Haqiqiy yildan-yilga o‘zgarishlar mavjud bo‘lgan real ma’lumotlarda murakkabroq modellar bazaviy usulni yaxshilash uchun ancha mazmunli imkoniyatga ega bo‘ladi.
Ish jarayonini moslashtirish bo‘yicha ilg‘or maslahatlar
Kuzatilgan va taxminiy qiymatlarni alohida saqlang
To‘ldirilgan har bir kuzatuv uchun aniq belgini qo‘shing yoki saqlab qoling. To‘liq o‘quv qatori texnik jihatdan talab etilganda taxminlardan foydalaning, ammo ularni hisobotda berilgan qiymatlar sifatida yashirincha taqdim etmang. Baholash faqat haqiqatda taqdim etilgan kuzatuvlarga asoslanishi kerak.
Anomaliyalarni avtomatik tuzatish o‘rniga tekshiring
Hisobotlarning yo‘qligi, takroriy qiymatlar, katta o‘zgarishlar va ehtimoliy o‘rin almashishlar turlicha choralarni talab qiladi. Yetishmayotgan qiymat modellashtirish uchun taxmin qilinishi mumkin, ammo oylarning o‘rin almashgani ko‘rinsa, uni manba hujjatlar bilan tekshirish kerak. Avtomatik tuzatish ko‘rinib turgan ogohlantirishni yashirin xatoga aylantirishi mumkin.
Siljuvchi boshlang‘ich nuqta asosidagi baholashdan foydalaning
Repozitoriyda 12 oylik bitta test oynasidan foydalaniladi. Yanada ishonchli baholash uchun baholashni bir nechta xronologik oynalarda takrorlang. Har bir ishga tushirishda model faqat prognoz davridan oldin mavjud bo‘lgan ma’lumotlarda o‘qitilishi kerak. Bu model samaradorligi vaqt o‘tishi bilan barqarormi yoki faqat noodatiy bir yilga bog‘liqmi, shuni ko‘rsatadi.
Murakkab modellarni har doim taqqoslang
Sozlangan SARIMA modellari, yangi xususiyatlar yoki boshqa mashinaviy o‘rganish algoritmlarini qo‘shganingizda ham mavsumiy sodda prognozni saqlab qoling. Murakkab usul faqat ko‘rilmagan davrlarda sodda va amaliy jihatdan ishonchli tayanch modeldan izchil ustun kelsagina foydalidir.
Haqiqiy ma’lumotlar bilan ishlaganda noaniqlikni qo‘shing
Tavsiya etilgan keyingi qadamlar prognoz intervallarini qo‘shishni o‘z ichiga oladi. Faqat nuqtaviy prognozlar odatiy o‘zgaruvchanlik, tarixiy ma’lumotlarning cheklanganligi yoki o‘quv ma’lumotlaridagi taxminiy to‘ldirilgan bo‘shliqlardan kelib chiqadigan noaniqlikni ifodalamaydi.
Takroriy auditlarni avtomatlashtiring
Bir xil tekshiruvlarni har bir hisobot davridan keyin ishga tushirish uchun rejalashtirish mumkin. Takroriy jarayon yangi yetishmayotgan tuman-oylarni, kutilmagan yildan yilga takrorlanishlarni, katta o‘zgarishlarni va ko‘rib chiqilishi kerak bo‘lgan ehtimoliy o‘rin almashgan oylarni hisobot qilishi mumkin.
Boshqa ko‘rsatkichlarga kengaytirishda ehtiyot bo‘ling
Boshqa ko‘rsatkichni prognoz qilishdan oldin uning mavsumiy sikli uchun yetarli tarixiy ma’lumot borligini tekshiring. Mavjud ANC ko‘rsatkichlari 2025-yil yanvaridan boshlangan atigi 20 oyni o‘z ichiga oladi, shuning uchun ushbu loyihada ular yillik qonuniyatlarni o‘rganish uchun ishlatilmaydi.
Muhim cheklovlar
- Manba demo-server hisoblanadi, shuning uchun tahlil haqiqiy emlash tendensiyalari haqida hech narsa demaydi.
- Prognozlarni taqqoslashda bitta 12 oylik test oynasidan foydalaniladi.
- Faqat Measles prognoz qilinadi.
- SARIMA konfiguratsiyasi sozlanmagan, balki o‘zgarmas holda qoldirilgan.
- Bo‘shliqlarni to‘ldirishni tasdiqlashda atigi 21 ta yashirilgan kuzatuv mavjud.
- Pujehunning oktabrdan dekabrgacha bo‘lgan taxminlari boshqa tumanlardagi mavsumiy qonuniyatlarga bog‘liq.
- Ehtimoliy o‘rin almashgan oylar belgilanadi, ammo tuzatilmaydi.
Xulosa
Ushbu loyiha prognozlashdan oldin ma’lumotlar sifatini tekshirish kerakligini ko‘rsatadi. Uning tekshiruvlari tizimli yetishmovchiliklarni, yildan yilga keng ko‘lamli takrorlanishlarni va jami ko‘rsatkichlar hamda model baholashiga kuchli ta’sir qiladigan ehtimoliy qo‘shni oylar o‘rin almashganini aniqlaydi.
Ishni saqlangan snapshot asosida notebookni ishga tushirishdan boshlang, har bir audit bosqichini tekshiring, so‘ngra faqat tasdiqlangan DHIS2 manbasidan foydalanishga tayyor bo‘lganingizda API yangilanishini yoqing. Ish jarayonini moslashtirganda xronologik baholashni saqlang, taxminiy qiymatlarni belgilang, anomaliyalarni manba hisobotlari bilan tekshiring va har bir modelni sodda mavsumiy tayanch model bilan taqqoslang.
