Inhaltsverzeechnes[Verstoppen][Show]
Sensibilitéitsanalyse gëtt benotzt fir den Impakt vun enger Sammlung vun onofhängege Faktoren op eng ofhängeg Variabel ënner bestëmmte Konditiounen ze bestëmmen.
Et ass eng staark Approche fir ze bestëmmen wéi den Output vum Modell vun den Inputen vum Modell am allgemengen beaflosst gëtt. An dësem Post ginn ech e séieren Iwwerbléck iwwer d'Sensibilitéitsanalyse mat SALib, e gratis Python Sensibilitéitsanalyse Package.
En numeresche Wäert bekannt als Sensibilitéitsindex, representéiert dacks d'Sensibilitéit vun all Input. Et gi vill Aarte vu Sensibilitéitsindizes:
- Éischt-Uerdnung Indizes: berechent de Bäitrag vun engem eenzege Modell Input zu der Wasserstoff Varianz.
- Second-order Indizes: berechent de Bäitrag vun zwee Modellinputen zur Ausgangsvarianz.
- Gesamtuerdnungsindex: quantifizéiert de Bäitrag vun engem Modellinput zur Ausgangsvarianz, ëmfaasst souwuel éischt Uerdnungseffekter (den Input schwankt eleng) an all méi héijer Uerdnungsinteraktiounen.
Wat ass SALib?
SALib ass e Python-baséiert Open-Source Toolkit fir Sensibilitéitsbewäertungen ze maachen. Et huet en ofgebauten Workflow, dat heescht datt et net direkt mam mathemateschen oder computationalen Modell interagéiert. Amplaz ass SALib verantwortlech fir d'Modelinputen ze produzéieren (duerch eng vun de Probefunktiounen) an d'Sensibilitéitsindizes (iwwer eng vun den Analysefunktiounen) aus de Modellausgaben ze berechnen.
Eng typesch SALib Sensibilitéitsanalyse besteet aus véier Schrëtt:
- Bestëmmt d'Modell-Inputen (Parameteren) an d'Probeberäich fir all.
- Fir Modellinputen ze kreéieren, lafen d'Probefunktioun.
- Evaluéiert de Modell mat den generéierten Inputen a späichert de Modellresultater.
- Fir d'Sensibilitéitsindizes ze berechnen, benotzt d'Analysefunktioun op den Ausgänge.
Sobol, Morris, a FAST si just e puer vun de Empfindlechkeetsanalysemethoden, déi vum SALib geliwwert ginn. Vill Faktoren beaflosse wéi eng Approche am Beschten ass fir eng bestëmmte Applikatioun, wéi mir spéider gesinn. Fir de Moment, bedenkt datt Dir nëmmen zwou Funktiounen benotze musst, probéieren an analyséieren, egal wéi eng Technik Dir benotzt. Mir féieren Iech duerch e Basis Beispill fir ze illustréieren wéi Dir SALib benotzt.
SALib Beispill - Sobol 'Sensibilitéitsanalyse
An dësem Beispill wäerte mir d'Sobol 'Sensibilitéit vun der Ishigami Funktioun ënnersichen, wéi hei ënnendrënner. Wéinst senger héijer Net-Linearitéit an Nonmonotonicitéit gëtt d'Ishigami Funktioun wäit benotzt fir d'Onsécherheets- a Sensibilitéitsanalysemethodologien ze evaluéieren.
D'Schrëtt gi wéi follegt:
1. Import SALib
Den éischte Schrëtt ass déi erfuerderlech Bibliothéiken ze addéieren. D'Probe an d'Analysefunktioune vu SALib ginn a Python Moduler ënnerscheet. D'Sateliteprobe importéieren an d'Sobol analyséieren Funktiounen, zum Beispill, gëtt hei ënnen gewisen.
Mir benotzen och d'Ishigami Funktioun, déi als Testfunktioun am SALib verfügbar ass. Endlech importéiere mir NumPy well SALib et benotzt fir Modellinputen an Ausgänge an enger Matrix ze späicheren.
2. Modell Input
D'Modell-Inputen mussen dann definéiert ginn. D'Ishigami Funktioun akzeptéiert dräi Inputen: x1, x2, an x3. Am SALib konstruéiere mir en Dikt deen d'Zuel vun den Input spezifizéiert, hir Nimm, an d'Limiten op all Input, wéi hei ënnendrënner.
3. Generéiere Echantillon an de Modell
D'Proben ginn dann generéiert. Mir mussen Proben erstellen mam Saltelli Sampler well mir eng Sobol Sensibilitéitsanalyse maachen. An dësem Fall sinn Param Wäerter eng NumPy Matrix. Mir kënnen beobachten datt d'Matrix 8000 x 3 ass andeems Dir Param values.shape laaft. 8000 Proben goufen mam Saltelli Sampler erstallt. De Saltelli Sampler erstellt Echantillon, wou N ass 1024 (de Parameter dee mir geliwwert hunn) an D ass 3. (d'Zuel vun de Modellinput).
Wéi virdru gesot, ass SALib net mat mathematesch oder computational Modell Evaluatioun engagéiert. Wann de Modell am Python geschriwwe gëtt, gitt Dir typesch all Probe-Input duerchschnëtt an de Modell beurteelt:
D'Probe kënnen an eng Textdatei gespäichert ginn wann de Modell net am Python entwéckelt ass:
All Linn an param values.txt stellt ee Modell Input duer. D'Ausgab vum Modell soll op eng aner Datei an engem ähnlechen Stil gespäichert ginn, mat engem Ausgang op all Linn. Duerno kënnen d'Ausgänge geluede ginn mat:
An dësem Beispill wäerte mir d'Ishigami Funktioun aus SALib benotzen. Dës Testfunktioune kënne wéi follegt bewäert ginn:
4. Leeschtunge Analyse
Mir kënnen endlech d'Sensibilitéitsindize berechnen nodeems d'Modellresultater an de Python lued. An dësem Beispill wäerte mir sobol.analyze benotzen fir den éischten, zweeten an Total-Commande Indizes ze berechnen.
Si ass e Python Wierderbuch mat de Schlësselen "S1," "S2," "ST," "S1 conf," "S2 conf," an "ST conf." D'_conf Schlësselen halen déi assoziéiert Vertrauensintervaller, déi allgemeng op 95 Prozent gesat ginn. Fir all Indizes auszeginn, benotzt de Schlësselwuertparameter Drécken fir ze konsolen = Wourecht. Alternativ, wéi hei ënnen illustréiert, kënne mir déi eenzel Wäerter vu Si drécken.
Mir kënne gesinn datt x1 an x2 Empfindlechkeet vun der éischter Uerdnung hunn, awer x3 schéngt keng éischt Uerdnung Auswierkungen ze hunn.
Wann d'Gesamtuerdnungsindexe wesentlech méi grouss sinn wéi d'éischt Uerdnungsindizes, ginn Interaktioune mat héijer Uerdnung sécherlech statt. Mir kënnen dës méi héijer Uerdnungs Interaktiounen gesinn andeems Dir déi zweet Uerdnungsindizes kuckt:
Mir kënne beobachten datt x1 an x3 bedeitend Interaktiounen hunn. Duerno kann d'Resultat an e Pandas DataFrame transforméiert ginn fir weider Studie.
5. Plot
Fir Är Kamoudheet ginn Basis Charting Ariichtungen zur Verfügung gestallt. D'Plot () Funktioun produzéiert matplotlib Achs Objete fir spéider Manipulatioun.
Konklusioun
SALib ass e sophistikéierte Sensibilitéitsanalyse Toolkit. Aner Techniken am SALib enthalen de Fourier Amplitude Sensitivitéitstest (FAST), Morris Method, an Delta-Moment Onofhängeg Moossnam. Och wann et eng Python Bibliothéik ass, ass et geduecht fir mat Modeller vun iergendenger Aart ze bedreiwen.
SALib bitt en einfach ze benotzen Kommandozeileninterface fir Modellinputen ze kreéieren an Modellausgaben ze bewäerten. Ofmellen SALib Dokumentatioun ze léieren méi.
Hannerlooss eng Äntwert