Сезимталдуулуктун анализи көз карандысыз факторлордун жыйындысынын белгилүү бир шарттарда көз каранды өзгөрмөгө тийгизген таасирин аныктоо үчүн колдонулат.
Бул моделдин өндүрүшүнө жалпы мааниде моделдин киргизүүлөрү кандай таасир тийгизерин аныктоо үчүн күчтүү ыкма. Бул постто мен SALib, акысыз Python сезгичтик талдоо пакетинин жардамы менен сезгичтик талдоосуна кыскача баяндама берем.
Сезимталдуулук индекси деп аталган сандык маани көбүнчө ар бир киргизүүнүн сезгичтигин көрсөтөт. Сезимталдык көрсөткүчтөрдүн көптөгөн түрлөрү бар:
- Биринчи даражадагы индекстер: чыгаруу дисперсиясына бир моделдин киргизүү салымын эсептейт.
- Экинчи даражадагы индекстер: чыгаруу дисперсиясына эки моделдик киргизүүнүн салымын эсептейт.
- Толук тартиптеги индекс: биринчи тартиптеги эффекттерди (жалгыз гана термелүү киргизүү) жана жогорку даражадагы өз ара аракеттешүүлөрдү камтыган моделдин киргизүүнүн чыгаруу дисперсиясына кошкон салымын сандык жактан аныктайт.
SALib деген эмне?
SALib Python негизделген ачык булак сезимталдыкты баалоо үчүн инструменттер. Анын өзүнчө иштөө агымы бар, демек, ал математикалык же эсептөө модели менен түздөн-түз иштешпейт. Анын ордуна, SALib моделдин киргизүүлөрүн (үлгү функцияларынын бири аркылуу) чыгарууга жана моделдин натыйжаларынан сезгичтиктин индекстерин (талдоо функцияларынын бири аркылуу) эсептөөгө жооптуу.
Кадимки SALib сезгичтик талдоо төрт кадамдан турат:
- Ар бири үчүн моделдин кириштерин (параметрлерин) жана үлгү диапазонун аныктаңыз.
- Үлгү киргизүүлөрдү түзүү үчүн үлгү функциясын иштетиңиз.
- Түзүлгөн киргизүүлөрдү колдонуу менен моделди баалаңыз жана моделдин натыйжаларын сактаңыз.
- Сезгичтик индекстерин эсептөө үчүн жыйынтыктардагы анализ функциясын колдонуңуз.
Sobol, Morris жана FAST SALib тарабынан берилген сезгичтикти талдоо ыкмаларынын бир нечеси гана. Берилген колдонмо үчүн кайсы ыкма эң жакшы экенине көп факторлор таасир этет, муну кийинчерээк көрөбүз. Азырынча, кайсы гана техниканы колдонбоңуз, эки гана функцияны колдонушуңуз керек экенин эстен чыгарбаңыз, үлгү алуу жана талдоо. Биз сизге SALibди кантип колдонууну көрсөтүү үчүн негизги мисал аркылуу жетектейбиз.
SALib Мисал – Соболдун сезгичтигинин анализи
Бул мисалда биз төмөндө көрсөтүлгөндөй Ишигами функциясынын Соболдун сезгичтигин карап чыгабыз. Ишигами функциясы жогорку сызыктуу эмес жана монотондук эмес болгондуктан, белгисиздикти жана сезгичтикти талдоо методологияларын баалоо үчүн кеңири колдонулат.
Кадамдар төмөнкүдөй болот:
1. SALib импорттоо
Биринчи кадам талап кылынган китепканаларды кошуу болуп саналат. SALib үлгүсү жана талдоо функциялары Python модулдарында өзүнчө сакталат. Спутник үлгүсүн импорттоо жана Sobol талдоо функциялары, мисалы, төмөндө көрсөтүлгөн.
Ишигами функциясын да колдонобуз, ал SALibде сыноо функциясы катары жеткиликтүү. Акыр-аягы, биз NumPy импорттойбуз, анткени SALib аны матрицада моделдин киргизүү жана чыгарууларын сактоо үчүн колдонот.
2. Үлгү киргизүү
Андан кийин моделдин киргизүүлөрү аныкталышы керек. Ishigami функциясы үч киргизүүнү кабыл алат: x1, x2 жана x3. SALibде биз төмөндө көрүнүп тургандай, киргизүүлөрдүн санын, алардын атын жана ар бир киргизүү боюнча чектөөлөрдү белгилеген дикт түзөбүз.
3. Үлгүлөрдү жана моделди жаратыңыз
Андан кийин үлгүлөр түзүлөт. Биз Sobol сезгичтигин талдоо жүргүзүп жаткандыктан, биз Saltelli үлгү алгычын колдонуп үлгүлөрдү түзүшүбүз керек. Бул учурда, параметр маанилери NumPy матрицасы болуп саналат. Биз матрица 8000 3 экенин param values.shape иштетүү аркылуу байкай алабыз. Saltelli үлгү алгычы менен 8000 үлгү түзүлдү. Saltelli үлгү алуучу үлгүлөрдү түзөт, мында N 1024 (биз берген параметр) жана D 3. (модель киргизүүлөрдүн саны).
Мурда айтылгандай, SALib математикалык же эсептөө моделин баалоо менен алектенбейт. Эгерде модель Python тилинде жазылган болсо, сиз адатта ар бир үлгү киргизүү аркылуу цикл жана моделге баа бересиз:
Эгерде модель Pythonдо иштелип чыкпаса, үлгүлөрдү тексттик файлга сактоого болот:
Param values.txt ичиндеги ар бир сап бир модель киргизүүнү билдирет. Моделдин чыгарылышы ар бир сапта бирден чыгуусу менен окшош стилде башка файлга сакталышы керек. Андан кийин, жыйынтыктар менен жүктөлүшү мүмкүн:
Бул мисалда биз SALibден Ишигами функциясын колдонобуз. Бул тест функцияларын төмөнкүчө баалоого болот:
4. Талдоо жүргүзүү
Биз акыры сезгичтиктин индекстерин Pythonго моделдин жыйынтыгын жүктөгөндөн кийин эсептей алабыз. Бул мисалда биз биринчи, экинчи жана жалпы тартиптеги индекстерди эсептөө үчүн sobol.analyze колдонобуз.
Si бул Python сөздүгүндө “S1,” “S2,” “ST,” “S1 conf,” “S2 conf” жана “ST conf” баскычтары бар. _conf баскычтары жалпысынан 95 пайызга орнотулган байланышкан ишеним интервалдарын кармап турат. Бардык индекстерди чыгаруу үчүн, console=True үчүн print ачкыч параметрин колдонуңуз. Же болбосо, төмөндө көрсөтүлгөндөй, биз Siдан жеке маанилерди басып чыгара алабыз.
Биз x1 жана x2 биринчи даражадагы сезгичтикке ээ экенин көрө алабыз, бирок x3 биринчи даражадагы таасирлерге ээ эмес.
Эгерде жалпы тартиптеги индекстер биринчи даражадагы индекстерге караганда бир кыйла чоң болсо, анда жогорку тартиптеги өз ара аракеттенишүүлөр, албетте, ишке ашат. Биз экинчи даражадагы индекстерди карап, бул жогорку тартиптеги өз ара көрө аласыз:
Биз x1 жана x3 олуттуу өз ара байланышы бар экенин байкоого болот. Андан кийин, натыйжа андан ары изилдөө үчүн Pandas DataFrameге айландырылышы мүмкүн.
5. План түзүү
Сиздин ынгайлуулугуңуз үчүн, негизги диаграмма каражаттары каралган. plot() функциясы кийинки манипуляциялар үчүн matplotlib огу объекттерин чыгарат.
жыйынтыктоо
SALib - бул сезгичтикти анализдөөнүн татаал куралы. SALibтин башка ыкмаларына Фурье амплитудасынын сезгичтигин тести (FAST), Моррис методу жана Delta-Moment көз карандысыз өлчөө кирет. Бул Python китепканасы болсо да, ал ар кандай моделдер менен иштөөгө арналган.
SALib моделдик киргизүүлөрдү түзүү жана моделдин жыйынтыктарын баалоо үчүн колдонууга оңой командалык интерфейсти сунуштайт. Текшерүү SALib документтери Көбүрөөк билүү үчүн.
Таштап Жооп