Аналіз адчувальнасці выкарыстоўваецца для вызначэння ўплыву сукупнасці незалежных фактараў на залежную зменную пры пэўных умовах.
Гэта моцны падыход для вызначэння таго, як на выхад мадэлі ўплываюць уваходныя дадзеныя мадэлі ў агульных рысах. У гэтым пасце я дам кароткі агляд аналізу адчувальнасці з дапамогай SALib, бясплатнага пакета аналізу адчувальнасці Python.
Лікавае значэнне, вядомае як індэкс адчувальнасці, часта ўяўляе адчувальнасць кожнага ўваходу. Існуе мноства відаў паказчыкаў адчувальнасці:
- Індэксы першага парадку: вылічвае ўклад адной мадэлі ў дысперсію выхаду.
- Індэксы другога парадку: вылічвае ўклад двух уваходных дадзеных мадэлі ў дысперсію выхаду.
- Індэкс агульнага парадку: колькасна вызначае ўклад уваходных дадзеных мадэлі ў дысперсію выхадных дадзеных, ахопліваючы як эфекты першага парадку (уваходныя ваганні ў адзіночку), так і любыя ўзаемадзеянні вышэйшага парадку.
Што такое SALib?
SALib заснаваны на Python з адкрытым зыходным кодам набор інструментаў для ацэнкі адчувальнасці. Ён мае адасоблены працоўны працэс, што азначае, што ён не ўзаемадзейнічае непасрэдна з матэматычнай або вылічальнай мадэллю. Замест гэтага SALib адказвае за стварэнне ўваходных дадзеных мадэлі (праз адну з функцый выбаркі) і вылічэнне паказчыкаў адчувальнасці (праз адну з функцый аналізу) з выхадных дадзеных мадэлі.
Тыповы аналіз адчувальнасці SALib складаецца з чатырох этапаў:
- Вызначце ўваходныя дадзеныя (параметры) мадэлі і дыяпазон выбаркі для кожнай.
- Каб стварыць уводныя дадзеныя мадэлі, запусціце функцыю ўзору.
- Ацаніце мадэль з дапамогай згенераваных уваходных дадзеных і захавайце вынікі мадэлі.
- Каб вылічыць паказчыкі адчувальнасці, выкарыстоўвайце функцыю аналізу на выхадах.
Sobol, Morris і FAST - гэта толькі некаторыя з метадаў аналізу адчувальнасці, прадстаўленых SALib. Многія фактары ўплываюць на тое, які падыход лепшы для дадзенага прымянення, як мы ўбачым пазней. На дадзены момант майце на ўвазе, што вам трэба выкарыстоўваць толькі дзве функцыі, выбарку і аналіз, незалежна ад таго, якую тэхніку вы выкарыстоўваеце. Мы раскажам вам асноўны прыклад, каб праілюстраваць, як выкарыстоўваць SALib.
Прыклад SALib – аналіз адчувальнасці Собаля
У гэтым прыкладзе мы разгледзім адчувальнасць Собаля функцыі Ісігамі, як паказана ніжэй. З-за высокай нелінейнасці і неманатоннасці функцыя Ісігамі шырока выкарыстоўваецца для ацэнкі нявызначанасці і метадалогій аналізу адчувальнасці.
Крокі ідуць наступным чынам:
1. Імпарт SALib
Першы крок - дадаць неабходныя бібліятэкі. Функцыі выбаркі і аналізу SALib захоўваюцца асобна ў модулях Python. Імпарт спадарожнікавага ўзору і функцыі аналізу Собаля, напрыклад, паказаны ніжэй.
Мы таксама выкарыстоўваем функцыю Ishigami, якая даступная ў якасці тэставай функцыі ў SALib. Нарэшце, мы імпартуем NumPy, паколькі SALib выкарыстоўвае яго для захоўвання ўваходных і выходных дадзеных мадэлі ў матрыцы.
2. Увод мадэлі
Затым павінны быць вызначаны ўваходныя дадзеныя мадэлі. Функцыя Ishigami прымае тры ўводу: x1, x2 і x3. У SALib мы ствараем dict, які вызначае колькасць уводаў, іх імёны і абмежаванні для кожнага ўводу, як паказана ніжэй.
3. Стварыце ўзоры і мадэль
Затым ствараюцца ўзоры. Нам трэба стварыць узоры з дапамогай сэмплера Saltelli, паколькі мы робім аналіз адчувальнасці Собаля. У гэтым выпадку значэнні параметраў з'яўляюцца матрыцай NumPy. Мы можам заўважыць, што матрыца мае памер 8000 на 3, запусціўшы param values.shape. З дапамогай сэмплера Saltelli было створана 8000 узораў. Сэмплер Saltelli стварае ўзоры, дзе N роўна 1024 (пададзены намі параметр), а D роўна 3. (колькасць уводаў мадэлі).
Як было сказана раней, SALib не займаецца ацэнкай матэматычных або вылічальных мадэляў. Калі мадэль напісана на Python, вы звычайна праглядаеце кожны ўзор уводу і ацэньваеце мадэль:
Узоры можна захаваць у тэкставым файле, калі мадэль не распрацавана на Python:
Кожны радок у param values.txt прадстаўляе адзін увод мадэлі. Вывад мадэлі павінен быць захаваны ў іншым файле ў падобным стылі, з адным вынікам у кожным радку. Пасля гэтага выхады могуць быць загружаны з:
У гэтым прыкладзе мы будзем выкарыстоўваць функцыю Ishigami ад SALib. Гэтыя тэставыя функцыі можна ацаніць наступным чынам:
4. Выканайце аналіз
Нарэшце мы можам вылічыць індэксы адчувальнасці пасля загрузкі вынікаў мадэлі ў Python. У гэтым прыкладзе мы будзем выкарыстоўваць sobol.analyze для вылічэння першага, другога індэксаў агульнага парадку.
Si - гэта слоўнік Python, які мае ключы «S1», «S2», «ST», «S1 conf», «S2 conf» і «ST conf». Ключы _conf захоўваюць звязаныя даверныя інтэрвалы, якія звычайна ўсталёўваюцца на 95 працэнтаў. Каб вывесці ўсе індэксы, выкарыстоўвайце ключавы параметр print to console=True. У якасці альтэрнатывы, як паказана ніжэй, мы можам надрукаваць асобныя значэнні з Si.
Мы бачым, што x1 і x2 маюць адчувальнасць першага парадку, але x3, здаецца, не аказвае ўздзеяння першага парадку.
Калі індэксы агульнага парадку значна большыя, чым індэксы першага парадку, то ўзаемадзеянне больш высокага парадку напэўна мае месца. Мы можам убачыць гэтыя ўзаемадзеянні больш высокага парадку, гледзячы на індэксы другога парадку:
Мы можам заўважыць, што x1 і x3 маюць значнае ўзаемадзеянне. Пасля гэтага вынік можа быць ператвораны ў Pandas DataFrame для далейшага вывучэння.
5. Пабудова сюжэтаў
Для вашага зручнасці прадастаўляюцца асноўныя магчымасці для стварэння карт. Функцыя plot() стварае аб'екты восі matplotlib для наступных маніпуляцый.
заключэнне
SALib - гэта складаны набор інструментаў для аналізу адчувальнасці. Іншыя метады ў SALib ўключаюць тэст амплітуднай адчувальнасці Фур'е (FAST), метад Морыса і незалежную меру дэльта-моманту. Хоць гэта бібліятэка Python, яна прызначана для працы з мадэлямі любога роду.
SALib прапануе просты ў выкарыстанні інтэрфейс каманднага радка для стварэння ўваходных дадзеных мадэлі і ацэнкі выхадных дадзеных мадэлі. Выезд Дакументацыя SALib каб даведацца больш.
Пакінуць каментар