Jutīguma analīzi izmanto, lai noteiktu neatkarīgu faktoru kopas ietekmi uz atkarīgo mainīgo noteiktos apstākļos.
Tā ir spēcīga pieeja, lai noteiktu, kā modeļa izvadi kopumā ietekmē modeļa ievade. Šajā ziņojumā es sniegšu ātru pārskatu par jutīguma analīzi, izmantojot SALib, bezmaksas Python jutīguma analīzes pakotni.
Skaitliskā vērtība, kas pazīstama kā jutīguma indekss, bieži atspoguļo katras ievades jutīgumu. Ir vairāki jutīguma indeksu veidi:
- Pirmās kārtas indeksi: aprēķina viena modeļa ievades devumu izvades dispersijā.
- Otrās kārtas indeksi: aprēķina divu modeļa ievades devumu izvades dispersijā.
- Kopējā secības indekss: kvantitatīvi nosaka modeļa ievades ieguldījumu izvades dispersijā, aptverot gan pirmās kārtas efektus (ievade svārstās atsevišķi), gan visas augstākas kārtas mijiedarbības.
Kas ir SALib?
SALib ir uz Python bāzes atvērtais avots instrumentu kopums jutīguma novērtējuma veikšanai. Tam ir atdalīta darbplūsma, kas nozīmē, ka tā tieši nesadarbojas ar matemātisko vai skaitļošanas modeli. Tā vietā SALib ir atbildīgs par modeļa ievades izveidi (izmantojot vienu no izlases funkcijām) un jutīguma indeksu aprēķināšanu (izmantojot vienu no analīzes funkcijām) no modeļa izvadiem.
Tipiska SALib jutīguma analīze sastāv no četrām darbībām:
- Katram nosakiet modeļa ievades (parametrus) un izlases diapazonu.
- Lai izveidotu modeļa ievadi, palaidiet parauga funkciju.
- Novērtējiet modeli, izmantojot ģenerētos ievades datus, un saglabājiet modeļa rezultātus.
- Lai aprēķinātu jutīguma indeksus, izmantojiet izvados esošo analīzes funkciju.
Sobol, Morris un FAST ir tikai dažas no SALib piedāvātajām jutīguma analīzes metodēm. Daudzi faktori ietekmē to, kura pieeja ir vislabākā konkrētajai lietojumprogrammai, kā mēs to redzēsim vēlāk. Pagaidām paturiet prātā, ka jums ir jāizmanto tikai divas funkcijas — paraugs un analīze, neatkarīgi no izmantotās tehnikas. Mēs sniegsim jums vienkāršu piemēru, lai ilustrētu, kā izmantot SALib.
SALib piemērs – Sobola jutības analīze
Šajā piemērā mēs pārbaudīsim Ishigami funkcijas Sobola jutību, kā parādīts zemāk. Augstās nelinearitātes un nemonotonitātes dēļ Ishigami funkcija tiek plaši izmantota, lai novērtētu nenoteiktības un jutīguma analīzes metodoloģijas.
Darbības notiek šādi:
1. SALib importēšana
Pirmais solis ir pievienot vajadzīgās bibliotēkas. SALib parauga un analīzes funkcijas Python moduļos ir atšķirīgas. Tālāk ir parādīts, piemēram, satelīta parauga un Sobol analīzes funkciju importēšana.
Mēs izmantojam arī Ishigami funkciju, kas ir pieejama kā SALib testa funkcija. Visbeidzot, mēs importējam NumPy, jo SALib to izmanto, lai saglabātu modeļa ievades un izvades matricā.
2. Modeļa ievade
Pēc tam ir jādefinē modeļa ievades. Ishigami funkcija pieņem trīs ievades: x1, x2 un x3. Programmā SALib mēs izveidojam diktātu, kas norāda ievades skaitu, to nosaukumus un katras ievades ierobežojumus, kā parādīts tālāk.
3. Izveidojiet paraugus un modeli
Pēc tam tiek ģenerēti paraugi. Mums ir jāizveido paraugi, izmantojot Saltelli paraugu ņēmēju, jo mēs veicam Sobol jutīguma analīzi. Šajā gadījumā parametru vērtības ir NumPy matrica. Varam novērot, ka matrica ir 8000x3, izpildot parametru vērtības.shape. Ar Saltelli paraugu ņemšanas ierīci tika izveidoti 8000 paraugu. Saltelli paraugu ņēmējs izveido paraugus, kur N ir 1024 (mūsu nodrošinātais parametrs) un D ir 3. (modeļa ievades skaits).
Kā minēts iepriekš, SALib nenodarbojas ar matemātisko vai skaitļošanas modeļu novērtēšanu. Ja modelis ir rakstīts Python valodā, parasti tiek veikta katra parauga ievade un jānovērtē modelis:
Ja modelis nav izstrādāts programmā Python, paraugus var saglabāt teksta failā:
Katra rindiņa parametrā vērtības.txt apzīmē vienu modeļa ievadi. Modeļa izvade jāsaglabā citā failā līdzīgā stilā ar vienu izvadi katrā rindā. Pēc tam izvadi var tikt ielādēti ar:
Šajā piemērā mēs izmantosim Ishigami funkciju no SALib. Šīs testa funkcijas var novērtēt šādi:
4. Veiciet analīzi
Beidzot mēs varam aprēķināt jutīguma indeksus pēc modeļa rezultātu ielādes Python. Šajā piemērā mēs izmantosim sobol.analyze, lai aprēķinātu pirmās, otrās un kopējās kārtas indeksus.
Si ir Python vārdnīca ar taustiņiem “S1”, “S2”, “ST”, “S1 conf”, “S2 conf” un “ST conf”. Taustiņi _conf satur saistītos ticamības intervālus, kas parasti ir iestatīti uz 95 procentiem. Lai izvadītu visus indeksus, izmantojiet atslēgvārda parametru print to console=True. Alternatīvi, kā parādīts tālāk, mēs varam izdrukāt atsevišķās vērtības no Si.
Mēs redzam, ka x1 un x2 ir pirmās kārtas jutība, bet x3, šķiet, nav pirmās kārtas ietekmes.
Ja kopējie indeksi ir ievērojami lielāki nekā pirmās kārtas indeksi, tad noteikti notiek augstākas kārtas mijiedarbības. Mēs varam redzēt šīs augstākās kārtas mijiedarbības, aplūkojot otrās kārtas indeksus:
Mēs varam novērot, ka x1 un x3 ir nozīmīga mijiedarbība. Pēc tam rezultātu var pārveidot par Pandas DataFrame turpmākai izpētei.
5. Plotēšana
Jūsu ērtībām tiek nodrošinātas pamata kartēšanas iespējas. Funkcija plot() rada matplotlib ass objektus turpmākām manipulācijām.
Secinājumi
SALib ir izsmalcināts jutīguma analīzes rīku komplekts. Citas SALib metodes ietver Furjē amplitūdas jutības testu (FAST), Morisa metodi un Delta-Moment Independent Measure. Lai gan tā ir Python bibliotēka, tā ir paredzēta darbam ar jebkāda veida modeļiem.
SALib piedāvā ērti lietojamu komandrindas interfeisu, lai izveidotu modeļa ievades un novērtētu modeļa izejas. Pārbaudiet SALib dokumentācija , lai uzzinātu vairāk.
Atstāj atbildi