Analiza e ndjeshmërisë përdoret për të përcaktuar ndikimin e një koleksioni faktorësh të pavarur në një variabël të varur në kushte të caktuara.
Është një qasje e fortë për të përcaktuar se si produkti i modelit ndikohet nga inputet e modelit në terma të përgjithshëm. Në këtë postim, unë do të jap një përmbledhje të shpejtë të analizës së ndjeshmërisë duke përdorur SALib, një paketë falas e analizës së ndjeshmërisë Python.
Një vlerë numerike e njohur si indeksi i ndjeshmërisë, shpesh përfaqëson ndjeshmërinë e çdo hyrjeje. Ka shumë lloje të indekseve të ndjeshmërisë:
- Indekset e rendit të parë: llogarit kontributin e një inputi të vetëm modeli në variancën e prodhimit.
- Indekset e rendit të dytë: llogarit kontributin e dy hyrjeve të modelit në variancën e prodhimit.
- Indeksi i rendit total: përcakton kontributin e një modeli të dhënash në variancën e prodhimit, duke përfshirë të dyja efektet e rendit të parë (hyrja që luhatet vetëm) dhe çdo ndërveprim të rendit më të lartë.
Çfarë është SALib?
SAlib është i bazuar në Python burim të hapur paketa e veglave për të bërë vlerësime të ndjeshmërisë. Ai ka një rrjedhë pune të shkëputur, që do të thotë se nuk ndërvepron drejtpërdrejt me modelin matematikor ose llogaritës. Në vend të kësaj, SALib është përgjegjës për prodhimin e inputeve të modelit (përmes një prej funksioneve të mostrës) dhe llogaritjen e indekseve të ndjeshmërisë (nëpërmjet një prej funksioneve të analizës) nga rezultatet e modelit.
Një analizë tipike e ndjeshmërisë SALib përbëhet nga katër hapa:
- Përcaktoni hyrjet e modelit (parametrat) dhe diapazonin e mostrës për secilën.
- Për të krijuar hyrje të modelit, ekzekutoni funksionin e mostrës.
- Vlerësoni modelin duke përdorur inputet e krijuara dhe ruani rezultatet e modelit.
- Për të llogaritur indekset e ndjeshmërisë, përdorni funksionin e analizës në rezultatet.
Sobol, Morris dhe FAST janë vetëm disa nga metodat e analizës së ndjeshmërisë të ofruara nga SALib. Shumë faktorë ndikojnë se cila qasje është më e mira për një aplikim të caktuar, siç do ta shohim më vonë. Për momentin, mbani në mend se ju duhet të përdorni vetëm dy funksione, të mostrës dhe të analizoni, pavarësisht nga cilado teknikë që përdorni. Ne do t'ju udhëzojmë përmes një shembulli bazë për të ilustruar se si të përdorni SALib.
Shembull SALib – Analiza e ndjeshmërisë së Sobolit
Në këtë shembull, ne do të shqyrtojmë ndjeshmërinë Sobol' të funksionit Ishigami, siç tregohet më poshtë. Për shkak të jolinearitetit dhe jomonotonicitetit të tij të lartë, funksioni Ishigami përdoret gjerësisht për të vlerësuar metodologjitë e analizës së pasigurisë dhe ndjeshmërisë.
Hapat shkojnë si më poshtë:
1. Importimi SALib
Hapi i parë është të shtoni bibliotekat e kërkuara. Funksionet e mostrës dhe analizës së SALib mbahen të dallueshme në modulet Python. Importimi i mostrës satelitore dhe funksionet e analizës Sobol, për shembull, tregohet më poshtë.
Ne përdorim gjithashtu funksionin Ishigami, i cili është i disponueshëm si një funksion testimi në SALib. Së fundi, ne importojmë NumPy pasi SALib e përdor atë për të ruajtur hyrjet dhe daljet e modelit në një matricë.
2. Hyrja e modelit
Më pas duhet të përcaktohen inputet e modelit. Funksioni Ishigami pranon tre hyrje: x1, x2 dhe x3. Në SALib, ne ndërtojmë një dikt që specifikon numrin e hyrjeve, emrat e tyre dhe kufijtë në secilën hyrje, siç shihet më poshtë.
3. Gjeneroni mostra dhe model
Mostrat gjenerohen më pas. Ne duhet të krijojmë mostra duke përdorur kampionuesin Saltelli pasi jemi duke bërë një analizë të ndjeshmërisë Sobol. Në këtë rast, vlerat e parametrave janë një matricë NumPy. Mund të vëzhgojmë se matrica është 8000 me 3 duke ekzekutuar vlerat e parametrave.shape. 8000 mostra u krijuan me kampionuesin Saltelli. Mostra Saltelli krijon mostra, ku N është 1024 (parametri që kemi dhënë) dhe D është 3. (numri i hyrjeve të modelit).
Siç u tha më parë, SALib nuk është i angazhuar në vlerësimin e modelit matematikor ose llogaritës. Nëse modeli është shkruar në Python, zakonisht do të kaloni nëpër çdo hyrje të mostrës dhe do të vlerësoni modelin:
Mostrat mund të ruhen në një skedar teksti nëse modeli nuk është zhvilluar në Python:
Çdo rresht në parametrat vlerat.txt përfaqëson një hyrje modeli. Prodhimi i modelit duhet të ruhet në një skedar tjetër në një stil të ngjashëm, me një dalje në çdo rresht. Pas kësaj, rezultatet mund të ngarkohen me:
Në këtë shembull, ne do të përdorim funksionin Ishigami nga SALib. Këto funksione testimi mund të vlerësohen si më poshtë:
4. Kryeni analiza
Më në fund mund të llogarisim indekset e ndjeshmërisë pasi të ngarkojmë rezultatet e modelit në Python. Në këtë shembull, ne do të përdorim sobol.analyze për të llogaritur indeksin e parë, të dytë dhe të rendit total.
Si është një fjalor Python me çelësat "S1", "S2", "ST", "S1 conf", "S2 conf" dhe "ST conf". Tastet _conf mbajnë intervalet e lidhura të besimit, të cilat zakonisht vendosen në 95 përqind. Për të nxjerrë, të gjithë indekset, përdorni parametrin e fjalës kyçe print to console=True. Përndryshe, siç ilustrohet më poshtë, ne mund të printojmë vlerat individuale nga Si.
Mund të shohim se x1 dhe x2 kanë ndjeshmëri të rendit të parë, por x3 nuk duket të ketë ndonjë ndikim të rendit të parë.
Nëse indekset e rendit total janë dukshëm më të mëdha se indekset e rendit të parë, me siguri do të ndodhin ndërveprime të rendit më të lartë. Ne mund t'i shohim këto ndërveprime të rendit më të lartë duke parë indekset e rendit të dytë:
Mund të vërejmë se x1 dhe x3 kanë ndërveprime domethënëse. Pas kësaj, rezultati mund të transformohet në një Pandas DataFrame për studim të mëtejshëm.
5. Komplot
Për lehtësinë tuaj, ofrohen lehtësira bazë të hartimit. Funksioni plot() prodhon objekte të boshtit matplotlib për manipulim të mëvonshëm.
Përfundim
SALib është një mjet i sofistikuar i analizës së ndjeshmërisë. Teknika të tjera në SALib përfshijnë Testin e Ndjeshmërisë së Amplitudës Fourier (FAST), Metoda Morris dhe Matja e Pavarur nga Momenti Delta. Ndërsa është një bibliotekë Python, ajo synohet të funksionojë me modele të çdo lloji.
SALib ofron një ndërfaqe të linjës komanduese të lehtë për t'u përdorur për krijimin e hyrjeve të modelit dhe vlerësimin e rezultateve të modelit. Shikoni Dokumentacioni SALib për të mësuar më shumë.
Lini një Përgjigju