Sentecanalizo estas uzata por determini la efikon de kolekto de sendependaj faktoroj sur dependa variablo sub certaj kondiĉoj.
Ĝi estas forta aliro por determini kiel la produktaĵo de la modelo estas trafita per la enigaĵoj de la modelo ĝenerale. En ĉi tiu afiŝo, mi donos rapidan superrigardon pri sentema analizo uzante SALib, senpagan Python-sentema analizo.
Nombra valoro konata kiel la sentemeco, ofte reprezentas la sentemon de ĉiu enigaĵo. Estas multaj specoj de sentemaj indicoj:
- Unuordaj indeksoj: kalkulas la kontribuon de ununura modelenigaĵo al la produktaĵvarianco.
- Duaordaj indeksoj: kalkulas la kontribuon de du modelenigaĵoj al produktaĵvarianco.
- Total-orda indekso: kvantigas la kontribuon de modelenigaĵo al produktaĵvarianco, ampleksante kaj unuaordajn efikojn (la enigaĵo fluktuanta sole) kaj iujn ajn pli alt-ordaj interagoj.
Kio estas SALib?
SALib estas Python-bazita malfermfonto ilaro por fari sentemajn taksojn. Ĝi havas dekroĉitan laborfluon, kio signifas, ke ĝi ne interagas rekte kun la matematika aŭ komputila modelo. Anstataŭe, SALib estas en pagendaĵo de produktado de la modelenigaĵoj (tra unu el la specimenaj funkcioj) kaj komputado de la sentemaj indeksoj (per unu el la analizaj funkcioj) de la modelproduktaĵoj.
Tipa SALib-sentemeca analizo konsistas el kvar ŝtupoj:
- Determinu la modelajn enigojn (parametrojn) kaj la specimenan gamon por ĉiu.
- Por krei modelajn enigojn, rulu la ekzemplan funkcion.
- Taksi la modelon uzante la generitajn enigojn kaj konservu la modelrezultojn.
- Por komputi la sentemajn indeksojn, uzu la analizan funkcion sur la eliroj.
Sobol, Morris kaj FAST estas nur kelkaj el la sentemaj analizmetodoj provizitaj de SALib. Multaj faktoroj influas, kiu aliro estas plej bona por difinita aplikaĵo, kiel ni vidos poste. Nuntempe, memoru, ke vi nur bezonas uzi du funkciojn, specimeni kaj analizi, sendepende de kia ajn tekniko vi uzas. Ni gvidos vin tra baza ekzemplo por ilustri kiel uzi SALib.
Ekzemplo SALib - Analizo de Sentemo de Sobol
En ĉi tiu ekzemplo, ni ekzamenos la sentemon de Sobol de la Ishigami-funkcio, kiel montrite sube. Pro ĝia alta nelineareco kaj nemonotoneco, la Ishigami-funkcio estas vaste uzata por taksi necertecon kaj sentemajn analizmetodarojn.
La paŝoj iras jene:
1. Importi SALib
La unua paŝo estas aldoni la bezonatajn bibliotekojn. La specimenaj kaj analizaj funkcioj de SALib estas konservitaj klaraj en Python-moduloj. Importi la satelitan specimenon kaj analizajn funkciojn de Sobol, ekzemple, estas montritaj malsupre.
Ni ankaŭ uzas la Ishigami-funkcion, kiu disponeblas kiel testa funkcio en SALib. Fine, ni importas NumPy ĉar SALib uzas ĝin por stoki modelajn enigojn kaj elirojn en matrico.
2. Modela Enigo
La modelenigaĵoj tiam devas esti difinitaj. La Ishigami-funkcio akceptas tri enigojn: x1, x2 kaj x3. En SALib, ni konstruas dikto kiu specifas la nombron da enigaĵoj, iliaj nomoj, kaj la limoj por ĉiu enigo, kiel vidite malsupre.
3. Generu Specimenojn kaj la Modelon
La specimenoj tiam estas generitaj. Ni devas krei specimenojn uzante la samplilon Saltelli ĉar ni faras analizon de sentemo de Sobol. En ĉi tiu kazo, param-valoroj estas NumPy-matrico. Ni povas observi, ke la matrico estas 8000 per 3 rulante param-valorojn.formo. 8000 provaĵoj estis kreitaj per la Saltelli samplilo. La samplilo de Saltelli kreas specimenojn, kie N estas 1024 (la parametro, kiun ni disponigis) kaj D estas 3. (la nombro da modelaj enigaĵoj).
Kiel antaŭe deklarite, SALib ne okupiĝas pri matematika aŭ komputila modeltakso. Se la modelo estas skribita en Python, vi kutime trapasos ĉiun specimenan enigaĵon kaj taksos la modelon:
La specimenoj povas esti konservitaj al tekstdosiero se la modelo ne estas evoluigita en Python:
Ĉiu linio en param values.txt reprezentas unu modelenigaĵon. La eligo de la modelo estu konservita al alia dosiero en simila stilo, kun unu eligo sur ĉiu linio. Post tio, la eliroj povas esti ŝarĝitaj per:
En ĉi tiu ekzemplo, ni uzos la Ishigami-funkcion de SALib. Ĉi tiuj testaj funkcioj povas esti taksitaj jene:
4. Faru Analizon
Ni povas finfine kalkuli la sentemajn indeksojn post ŝarĝo de la modelrezultoj en Python. En ĉi tiu ekzemplo, ni uzos sobol.analyze por komputi la unuan, duan kaj total-ordajn indeksojn.
Si estas Python-vortaro kun la klavoj "S1", "S2", "ST", "S1 conf", "S2 conf" kaj "ST conf." La _conf-klavoj tenas la rilatajn konfidajn intervalojn, kiuj ĝenerale estas agordita al 95 procentoj. Por eligi ĉiujn indeksojn, uzu la ŝlosilvorto-parametro print to console=True. Alternative, kiel ilustrite malsupre, ni povas presi la individuajn valorojn de Si.
Ni povas vidi ke x1 kaj x2 havas unuaordan sentemon, sed x3 ŝajnas ne havi iujn ajn unuaordan efikojn.
Se la total-ordaj indeksoj estas signife pli grandaj ol la unuaordaj indeksoj, plej certe okazas pli alta-ordaj interagoj. Ni povas vidi ĉi tiujn alt-ordajn interagojn rigardante la duordajn indeksojn:
Ni povas observi ke x1 kaj x3 havas signifajn interagojn. Post tio, la rezulto povas esti transformita al Pandas DataFrame por plia studo.
5. Intrigo
Por via komforto, bazaj mapaj instalaĵoj estas provizitaj. La plot() funkcio produktas matplotlib aksobjektojn por posta manipulado.
konkludo
SALib estas kompleksa ilaro pri sentema analizo. Aliaj teknikoj en SALib inkludas la Fourier Amplitude Sensitivity Test (RAPIDE), Morris Method, kaj Delta-Moment Independent Measure. Dum ĝi estas Python-biblioteko, ĝi estas celita funkcii kun modeloj de ajna speco.
SALib ofertas facile uzeblan komandlinian interfacon por krei modelenigaĵojn kaj taksi modelproduktaĵojn. Kontrolu SALib-dokumentado lerni pli.
Lasi Respondon