Sezuvchanlik tahlili mustaqil omillar to'plamining ma'lum sharoitlarda bog'liq o'zgaruvchiga ta'sirini aniqlash uchun ishlatiladi.
Bu umumiy ma'noda modelning kirishlari modelning chiqishiga qanday ta'sir qilishini aniqlashning kuchli yondashuvidir. Ushbu postda men bepul Python sezgirlik tahlili paketi SALib yordamida sezgirlik tahlili haqida qisqacha ma'lumot beraman.
Sezuvchanlik indeksi deb nomlanuvchi raqamli qiymat ko'pincha har bir kirishning sezgirligini ifodalaydi. Sezuvchanlik indekslarining ko'p turlari mavjud:
- Birinchi darajali indekslar: bitta model kiritishining chiqish dispersiyasiga hissasini hisoblab chiqadi.
- Ikkinchi darajali indekslar: ikkita model kiritishning chiqish dispersiyasiga hissasini hisoblaydi.
- Umumiy tartib indeksi: birinchi darajali ta'sirlarni (faqatgina o'zgaruvchan kirish) va har qanday yuqori darajadagi o'zaro ta'sirlarni o'z ichiga olgan model kiritishining chiqish dispersiyasiga qo'shgan hissasini miqdoriy tavsiflaydi.
SALib nima?
SALib Python-ga asoslangan Ochiq manba sezgirlikni baholash uchun asboblar to'plami. U alohida ish oqimiga ega, ya'ni u matematik yoki hisoblash modeli bilan bevosita o'zaro ta'sir qilmaydi. Buning o'rniga, SALib model ma'lumotlarini ishlab chiqarish (namuna funktsiyalaridan biri orqali) va model natijalaridan sezgirlik indekslarini (tahlil funktsiyalaridan biri orqali) hisoblash uchun javobgardir.
Odatda SALib sezgirlik tahlili to'rt bosqichdan iborat:
- Model kirishlarini (parametrlarini) va har biri uchun namuna diapazonini aniqlang.
- Model kiritishlarini yaratish uchun namuna funksiyasini ishga tushiring.
- Yaratilgan kirishlar yordamida modelni baholang va model natijalarini saqlang.
- Sezuvchanlik indekslarini hisoblash uchun chiqishlardagi tahlil funksiyasidan foydalaning.
Sobol, Morris va FAST - bu SALib tomonidan taqdim etilgan sezgirlikni tahlil qilish usullaridan bir nechtasi. Ko'pgina omillar ma'lum bir dastur uchun qaysi yondashuv yaxshiroq ekanligini keyinroq ko'rib chiqamiz. Hozircha shuni yodda tutingki, siz qaysi texnikani qo'llashingizdan qat'i nazar, faqat ikkita funktsiyadan foydalanishingiz kerak: namuna olish va tahlil qilish. Biz sizga SALib-dan qanday foydalanishni ko'rsatish uchun asosiy misol orqali ko'rsatamiz.
SALib misoli - Sobolning sezgirlik tahlili
Ushbu misolda, quyida ko'rsatilganidek, Ishigami funktsiyasining Sobol sezgirligini ko'rib chiqamiz. Ishigami funktsiyasi yuqori chiziqli bo'lmaganligi va monotonligi tufayli noaniqlik va sezgirlikni tahlil qilish metodologiyasini baholash uchun keng qo'llaniladi.
Bosqichlar quyidagicha ketadi:
1. SALibni import qilish
Birinchi qadam kerakli kutubxonalarni qo'shishdir. SALib-ning namuna va tahlil funktsiyalari Python modullarida alohida saqlanadi. Misol uchun, sun'iy yo'ldosh namunasini import qilish va Sobolni tahlil qilish funktsiyalari quyida ko'rsatilgan.
Biz SALib-da test funksiyasi sifatida mavjud Ishigami funksiyasidan ham foydalanamiz. Nihoyat, biz NumPy-ni import qilamiz, chunki SALib undan model kirish va chiqishlarini matritsada saqlash uchun ishlatadi.
2. Model kiritish
Keyin model kiritishlari aniqlanishi kerak. Ishigami funktsiyasi uchta kirishni qabul qiladi: x1, x2 va x3. SALib-da biz quyida ko'rsatilganidek, kirishlar sonini, ularning nomlarini va har bir kirishdagi chegaralarni belgilaydigan diktni tuzamiz.
3. Namunalar va modelni yarating
Keyin namunalar ishlab chiqariladi. Saltelli namuna oluvchi yordamida namunalar yaratishimiz kerak, chunki biz Sobol sezuvchanlik tahlilini o'tkazmoqdamiz. Bunday holda, parametr qiymatlari NumPy matritsasi hisoblanadi. Param values.shape ni ishga tushirish orqali matritsa 8000 ga 3 ekanligini kuzatishimiz mumkin. Saltelli namuna oluvchi bilan 8000 ta namunalar yaratilgan. Saltelli namuna oluvchisi namunalarni yaratadi, bu erda N 1024 (biz taqdim etgan parametr) va D 3. (model kirishlari soni).
Yuqorida aytib o'tilganidek, SALib matematik yoki hisoblash modelini baholash bilan shug'ullanmaydi. Agar model Python-da yozilgan bo'lsa, siz odatda har bir namuna kiritish orqali o'tasiz va modelni baholaysiz:
Agar model Python-da ishlab chiqilmagan bo'lsa, namunalar matnli faylga saqlanishi mumkin:
values.txt parametridagi har bir satr bitta model kiritishni ifodalaydi. Modelning chiqishi shunga o'xshash uslubda, har bir satrda bitta chiqish bilan boshqa faylga saqlanishi kerak. Shundan so'ng, chiqishlar quyidagilar bilan yuklanishi mumkin:
Ushbu misolda biz SALib-dan Ishigami funksiyasidan foydalanamiz. Ushbu test funktsiyalarini quyidagicha baholash mumkin:
4. Tahlil qilish
Model natijalarini Python-ga yuklaganimizdan so'ng biz nihoyat sezgirlik indekslarini hisoblashimiz mumkin. Ushbu misolda biz birinchi, ikkinchi va umumiy tartib indekslarini hisoblash uchun sobol.analyze dan foydalanamiz.
Si "S1", "S2", "ST", "S1 conf", "S2 conf" va "ST conf" kalitlariga ega Python lug'atidir. _conf tugmalari odatda 95 foizga o'rnatiladigan bog'liq ishonch oraliqlarini ushlab turadi. Barcha indekslarni chiqarish uchun console=True kalit so'zidan print parametridan foydalaning. Shu bilan bir qatorda, quyida ko'rsatilgandek, biz Si dan individual qiymatlarni chop etishimiz mumkin.
Biz x1 va x2 birinchi darajali sezgirlikka ega ekanligini ko'rishimiz mumkin, ammo x3 birinchi darajali ta'sirga ega emas.
Agar umumiy tartib indekslari birinchi darajali indekslardan sezilarli darajada katta bo'lsa, yuqori darajadagi o'zaro ta'sirlar, albatta, sodir bo'ladi. Biz ikkinchi darajali indekslarga qarab, yuqori darajadagi o'zaro ta'sirlarni ko'rishimiz mumkin:
Biz x1 va x3 ning sezilarli o'zaro ta'siri borligini kuzatishimiz mumkin. Shundan so'ng, natija keyingi o'rganish uchun Pandas DataFrame-ga aylantirilishi mumkin.
5. Chizma tuzish
Sizga qulaylik yaratish uchun asosiy grafik vositalari taqdim etilgan. Plot() funktsiyasi keyingi manipulyatsiya uchun matplotlib o'qi ob'ektlarini ishlab chiqaradi.
Xulosa
SALib - sezgirlikni tahlil qilish uchun murakkab vositalar to'plami. SALib-dagi boshqa usullarga Furye amplitudasi sezgirligi testi (FAST), Morris usuli va Delta-moment mustaqil o'lchovi kiradi. Bu Python kutubxonasi bo'lsa-da, u har qanday turdagi modellar bilan ishlashga mo'ljallangan.
SALib model kiritishlarini yaratish va model natijalarini baholash uchun ishlatish uchun qulay buyruq qatori interfeysini taklif etadi. Tekshirib ko'rmoq SALib hujjatlari Qo'shimcha ma'lumot olish uchun.
Leave a Reply