L'analisi di sensibilità hè aduprata per determinà l'impattu di una cullizzioni di fatturi indipendenti nantu à una variabile dipendente in certi cundizioni.
Hè un approcciu forte per determinà cumu l'output di u mudellu hè affettatu da l'inputs di u mudellu in termini generali. In questu post, daraghju una rapida panoramica di l'analisi di sensibilità utilizendu SALib, un pacchettu d'analisi di sensibilità Python gratuitu.
Un valore numericu cunnisciutu cum'è l'indice di sensibilità, rapprisenta spessu a sensibilità di ogni input. Ci sò parechji tipi di indici di sensibilità:
- Indici di primu ordine : calcula a cuntribuzione di un unicu mudellu input à a varianza di output.
- Indici di u sicondu ordine: calcula a cuntribuzione di dui inputs di mudelli à a varianza di output.
- Indice d'ordine tutale: quantifica a cuntribuzione di l'input di mudellu à a varianza di output, cumprende l'effetti di primu ordine (l'input fluttuante solu) è qualsiasi interazzione d'ordine superiore.
Cosa hè SALib?
SALib hè un basatu in Python open-source Toolkit per fà valutazioni di sensibilità. Hà un flussu di travagliu indipendente, chì significa chì ùn interagisce micca direttamente cù u mudellu matematicu o computazionale. Invece, SALib hè incaricatu di pruduce l'inputs di mudelli (per mezu di una di e funzioni di mostra) è di calculà l'indici di sensibilità (via una di e funzioni di analisi) da i risultati di u mudellu.
Una tipica analisi di sensibilità SALib si compone di quattru passi:
- Determina l'inputs di mudellu (parametri) è a gamma di mostra per ognunu.
- Per creà inputs di mudellu, eseguite a funzione di mostra.
- Evaluate u mudellu utilizendu l'input generati è salvà i risultati di u mudellu.
- Per calculà l'indici di sensibilità, aduprate a funzione di analisi nantu à i outputs.
Sobol, Morris è FAST sò solu uni pochi di i metudi di analisi di sensibilità furniti da SALib. Parechji fattori influenzanu quale approcciu hè megliu per una determinata applicazione, cum'è avemu da vede più tardi. Per u mumentu, tenite in mente chì avete solu bisognu di utilizà duie funzioni, campionamentu è analizà, indipendentemente da qualsiasi tecnica chì aduprate. Vi guideremu attraversu un esempiu basicu per illustrà cumu utilizà SALib.
SALib Esempiu - Analisi di Sensibilità Sobol
In questu esempiu, esamineremu a sensibilità Sobol di a funzione Ishigami, cum'è mostra quì sottu. A causa di a so alta non-linearità è a non monotonicità, a funzione Ishigami hè largamente usata per valutà i metudi di analisi di l'incertezza è di a sensibilità.
I passi sò i seguenti:
1. Importà SALib
U primu passu hè di aghjunghje e librerie necessarie. E funzioni di mostra è analisi di SALib sò tenute distinte in moduli Python. L'impurtanza di l'esemplari satellitari è e funzioni di analisi Sobol, per esempiu, hè mostratu quì sottu.
Avemu ancu aduprà a funzione Ishigami, chì hè dispunibule cum'è una funzione di prova in SALib. Infine, impurtate NumPy cum'è SALib l'utiliza per almacenà inputs è outputs di mudelli in una matrice.
2. Input mudellu
L'inputs di u mudellu devenu esse definitu. A funzione Ishigami accetta trè inputs: x1, x2 è x3. In SALib, custruemu un dittu chì specifica u numeru di inputs, i so nomi, è i limiti per ogni input, cum'è vistu quì sottu.
3. Generate Samples è u mudellu
I campioni sò allora generati. Avemu bisognu di creà campioni cù u sampler Saltelli postu chì facemu un analisi di sensibilità Sobol. In questu casu, i valori param sò una matrice NumPy. Pudemu osservà chì a matrice hè 8000 per 3 da eseguisce param values.shape. 8000 campioni sò stati creati cù u sampler Saltelli. U sampler Saltelli crea campioni, induve N hè 1024 (u paràmetru chì avemu furnitu) è D hè 3. (u nùmeru di inputs di mudellu).
Cum'è dichjaratu prima, SALib ùn hè micca impegnatu in a valutazione di mudelli matematichi o computazionali. Se u mudellu hè scrittu in Python, tipicamente fate un ciclu per ogni input di mostra è valutà u mudellu:
I campioni ponu esse salvati in un schedariu di testu se u mudellu ùn hè micca sviluppatu in Python:
Ogni linea in param values.txt rapprisenta un input di mudellu. L'output di u mudellu deve esse salvatu in un altru schedariu in un stilu simili, cù una output in ogni linea. Dopu quì, i outputs ponu esse carricati cù:
In questu esempiu, avemu da aduprà a funzione Ishigami da SALib. Queste funzioni di prova ponu esse valutate cum'è seguente:
4. Eseguite Analisi
Pudemu infine calculà l'indici di sensibilità dopu avè caricatu i risultati di u mudellu in Python. In questu esempiu, avemu aduprà sobol.analyze per calculà u primu, u sicondu è l'indici d'ordine tutale.
Si hè un dizziunariu Python chì hà e chjave "S1", "S2", "ST", "S1 conf", "S2 conf" è "ST conf". I chjavi _conf mantenenu l'intervalli di cunfidenza assuciati, chì sò generalmente stabiliti à 95 per centu. Per fà uscita, tutti l'indici, utilizate u paràmetru keyword print to console=True. In alternativa, cum'è illustratu quì sottu, pudemu stampà i valori individuali da Si.
Pudemu vede chì x1 è x2 anu una sensibilità di primu ordine, ma x3 ùn pare micca avè un impattu di primu ordine.
Sì l'indici di l'ordine tutale sò significativamente più grande di l'indici di u primu ordine, l'interazzioni di l'ordine più altu sò certamenti chì sò stati. Pudemu vede sti interazzioni di ordine superiore fighjendu l'indici di u sicondu ordine:
Pudemu osservà chì x1 è x3 anu interazzione significativa. Dopu questu, u risultatu pò esse trasfurmatu in un Pandas DataFrame per più studiu.
5. Trama
Per a vostra comodità, sò furnite strutture di charting di basa. A funzione plot() produce oggetti matplotlib axis per a manipulazione successiva.
cunchiusioni
SALib hè un kit di strumenti di analisi di sensibilità sofisticatu. Altre tecniche in SALib includenu u Test di Sensibilità di l'Ampiezza di Fourier (FAST), u Metudu Morris è a Misura Indipendente Delta-Moment. Mentre hè una biblioteca di Python, hè destinata à operà cù mudelli di ogni tipu.
SALib offre una interfaccia di linea di cumanda faciule d'utilizà per creà inputs di mudelli è valutà i risultati di mudelli. Cuntrolla Documentazione SALib à amparà di più.
Lascia un Audiolibro