Сезімталдық талдау белгілі бір жағдайларда тәуелді айнымалыға тәуелсіз факторлар жиынтығының әсерін анықтау үшін қолданылады.
Бұл жалпы мағынада үлгінің кірістері үлгінің шығысына қалай әсер ететінін анықтауға арналған күшті тәсіл. Бұл постта мен SALib, Python сезімталдық талдауының тегін пакеті арқылы сезімталдық талдауына қысқаша шолу беремін.
Сезімталдық индексі ретінде белгілі сандық мән жиі әрбір кірістің сезімталдығын көрсетеді. Сезімталдық көрсеткіштерінің көптеген түрлері бар:
- Бірінші ретті индекстер: шығыс дисперсиясына бір үлгі кірісінің үлесін есептейді.
- Екінші ретті индекстер: екі модельдік кірістің шығыс дисперсиясына қосқан үлесін есептейді.
- Жалпы реттілік индексі: бірінші ретті әсерлерді (тек құбылмалы кіріс) және кез келген жоғары ретті өзара әрекеттесулерді қамтитын шығыс дисперсиясына енгізу үлгісінің үлесін сандық түрде анықтайды.
SALib дегеніміз не?
SALib Python негізіндегі болып табылады Ашық көзі сезімталдықты бағалауға арналған құралдар жинағы. Оның жеке жұмыс процесі бар, яғни ол математикалық немесе есептеу моделімен тікелей әрекеттеспейді. Оның орнына, SALib үлгі кірістерін (үлгі функцияларының бірі арқылы) жасауға және модель шығыстарынан сезімталдық индекстерін (талдау функцияларының бірі арқылы) есептеуге жауапты.
Әдеттегі SALib сезімталдық талдауы төрт қадамнан тұрады:
- Әрқайсысы үшін үлгі кірістерін (параметрлерін) және үлгі ауқымын анықтаңыз.
- Үлгі енгізулерін жасау үшін үлгі функциясын іске қосыңыз.
- Жасалған кірістерді пайдаланып үлгіні бағалаңыз және үлгі нәтижелерін сақтаңыз.
- Сезімталдық индекстерін есептеу үшін шығыстардағы талдау функциясын пайдаланыңыз.
Sobol, Morris және FAST - SALib ұсынған сезімталдықты талдау әдістерінің бірнешеуі ғана. Берілген қолданба үшін қай тәсіл ең жақсы екеніне көптеген факторлар әсер етеді, мұны кейінірек көреміз. Әзірге, қандай әдісті пайдалансаңыз да, тек екі функцияны пайдалану керек екенін есте сақтаңыз: үлгілеу және талдау. Біз сізге SALib пайдалану жолын көрсету үшін негізгі мысал арқылы нұсқау береміз.
SALib мысалы – Соболдың сезімталдық талдауы
Бұл мысалда төменде көрсетілгендей Ишигами функциясының Собол сезімталдығын қарастырамыз. Жоғары сызықты емес және монотонды емес болғандықтан, Ишигами функциясы белгісіздік пен сезімталдықты талдау әдістемелерін бағалау үшін кеңінен қолданылады.
Қадамдар келесідей жүреді:
1. SALib импорттау
Бірінші қадам - қажетті кітапханаларды қосу. SALib үлгісі мен талдау функциялары Python модульдерінде бөлек сақталады. Мысалы, жерсерік үлгісін және Sobol талдау функцияларын импорттау төменде көрсетілген.
Біз сондай-ақ SALib жүйесінде сынақ функциясы ретінде қолжетімді Ishigami функциясын қолданамыз. Соңында, біз NumPy импорттаймыз, өйткені SALib оны модель кірістері мен шығыстарын матрицада сақтау үшін пайдаланады.
2. Модельді енгізу
Содан кейін үлгі кірістері анықталуы керек. Ishigami функциясы үш кірісті қабылдайды: x1, x2 және x3. SALib бағдарламасында біз төменде көрсетілгендей кірістер санын, олардың атауларын және әрбір кірістегі шектеулерді көрсететін дикт құрастырамыз.
3. Үлгілер мен үлгіні жасаңыз
Содан кейін үлгілер жасалады. Біз Sobol сезімталдық талдауын жасап жатқандықтан, Saltelli сынама құралын пайдаланып үлгілерді жасауымыз керек. Бұл жағдайда параметр мәндері NumPy матрицасы болып табылады. Param values.shape іске қосу арқылы матрицаның 8000-нан 3-ке тең екенін байқауға болады. Saltelli үлгісімен 8000 үлгі жасалды. Saltelli үлгілері үлгілерді жасайды, мұнда N 1024 (біз берген параметр) және D 3. (үлгі кірістерінің саны).
Бұрын айтылғандай, SALib математикалық немесе есептеу моделін бағалаумен айналыспайды. Модель Python тілінде жазылған болса, сіз әдетте әрбір үлгі енгізуі арқылы айналдырасыз және үлгіні бағалайсыз:
Үлгілерді мәтіндік файлға сақтауға болады, егер модель Python-да әзірленбесе:
values.txt параметріндегі әрбір жол бір үлгі енгізуін білдіреді. Модельдің шығысы әр жолда бір шығыспен ұқсас стильде басқа файлға сақталуы керек. Осыдан кейін шығыстарды жүктеуге болады:
Бұл мысалда біз SALib ұсынған Ishigami функциясын қолданамыз. Бұл сынақ функцияларын келесідей бағалауға болады:
4. Талдауды орындаңыз
Модель нәтижелерін Python-ға жүктегеннен кейін біз сезімталдық индекстерін есептей аламыз. Бұл мысалда бірінші, екінші және жалпы реттік индекстерді есептеу үшін sobol.analyze қолданамыз.
Si — «S1», «S2,» «ST,» «S1 conf,» «S2 conf» және «ST conf» пернелері бар Python сөздігі. _conf пернелері әдетте 95 пайызға орнатылған байланысты сенімді аралықтарды ұстайды. Барлық индекстерді шығару үшін console=True үшін print параметрінің кілт сөзін пайдаланыңыз. Сонымен қатар, төменде суреттелгендей, Si-дан жеке мәндерді басып шығаруға болады.
Біз x1 және x2 бірінші ретті сезімталдыққа ие екенін көреміз, бірақ x3 бірінші ретті әсерлерге ие емес сияқты.
Егер жалпы ретті индекстер бірінші ретті индекстерден айтарлықтай үлкен болса, жоғары дәрежелі өзара әрекеттесулер орын алады. Екінші ретті индекстерді қарастыру арқылы біз жоғары дәрежелі өзара әрекеттесулерді көре аламыз:
Біз x1 және x3 маңызды өзара әрекеттесетінін байқаймыз. Осыдан кейін нәтиже одан әрі зерттеу үшін Pandas DataFrame форматына өзгертілуі мүмкін.
5. Сюжетті құру
Сізге ыңғайлы болу үшін негізгі диаграмма құралдары қамтамасыз етілген. plot() функциясы кейінгі манипуляциялар үшін matplotlib осінің нысандарын жасайды.
қорытынды
SALib — сезімталдықты талдаудың күрделі құралы. SALib-тегі басқа әдістерге Фурье амплитудасының сезімталдық сынағы (FAST), Моррис әдісі және дельта-моменттің тәуелсіз өлшемі кіреді. Бұл Python кітапханасы болғанымен, ол кез келген үлгілермен жұмыс істеуге арналған.
SALib үлгісі кірістерін жасау және үлгі шығыстарын бағалау үшін пайдалану оңай пәрмен жолы интерфейсін ұсынады. Шығу SALib құжаттамасы Қосымша ақпарат алу үшін.
пікір қалдыру