Sentsibilitate-analisia faktore independenteen bilduma batek baldintza jakin batzuetan menpeko aldagai batean duen eragina zehazteko erabiltzen da.
Ikuspegi sendoa da ereduaren irteeran ereduaren sarrerak termino orokorrean nola eragiten dion zehazteko. Argitalpen honetan, sentsibilitatearen analisiaren ikuspegi orokorra emango dut SALib erabiliz, doako Python sentsibilitatearen analisi paketea.
Sentsibilitate indizea izenez ezagutzen den zenbakizko balio batek maiz adierazten du sarrera bakoitzaren sentikortasuna. Sentsibilitate-indize mota ugari daude:
- Lehen mailako indizeak: eredu bakarreko sarrera-irteeraren bariantzaren ekarpena kalkulatzen du.
- Bigarren mailako indizeak: bi eredu-sarrerak irteerako bariantzaren ekarpena kalkulatzen du.
- Ordena totalaren indizea: eredu-sarrerak irteerako bariantzari egiten dion ekarpena kuantifikatzen du, lehen mailako efektuak (sarrerak bakarrik aldatzen du) eta maila altuagoko elkarrekintzak hartzen ditu barne.
Zer da SALib?
SALib Python-en oinarritutako bat da Kode irekiko sentikortasun-ebaluazioak egiteko tresna-kutxa. Lan-fluxu bereizia du, hau da, ez du zuzenean elkarreragin eredu matematiko edo konputazionalarekin. Horren ordez, SALib ereduaren sarrerak ekoizteaz arduratzen da (lagin-funtzioetako baten bidez) eta modeloaren irteeratik sentsibilitate-indizeak kalkulatzeaz (analisi-funtzioetako baten bidez).
SALib sentsibilitate-analisi tipiko batek lau urrats ditu:
- Zehaztu ereduaren sarrerak (parametroak) eta bakoitzaren lagin-barrutia.
- Ereduaren sarrerak sortzeko, exekutatu lagin funtzioa.
- Ebaluatu eredua sortutako sarrerak erabiliz eta gorde ereduaren emaitzak.
- Sentsibilitate-indizeak kalkulatzeko, erabili irteerako analisi funtzioa.
Sobol, Morris eta FAST SALib-ek eskaintzen dituen sentsibilitatea aztertzeko metodoetako batzuk dira. Faktore askok eragina dute aplikazio jakin baterako zein den egokiena den ikuspegia, geroago ikusiko dugunez. Momentuz, kontuan izan bi funtzio soilik erabili behar dituzula, lagintzea eta analizatzea, erabiltzen duzun edozein teknika edozein dela ere. Oinarrizko adibide baten bidez gidatuko zaitugu SALib nola erabili ilustratzeko.
SALib Adibidea - Sobol 'sentsibilitatearen analisia
Adibide honetan, Ishigami funtzioaren Sobol-en sentsibilitatea aztertuko dugu, behean erakusten den moduan. Ez-linealtasun eta ez-monotonikotasun handia dela eta, Ishigami funtzioa oso erabilia da ziurgabetasuna eta sentikortasuna aztertzeko metodologiak ebaluatzeko.
Urratsak honela doaz:
1. SALib inportatzea
Lehen urratsa beharrezko liburutegiak gehitzea da. SALib-en lagin eta analisi funtzioak bereizten dira Python moduluetan. Satelitearen lagina eta Sobol aztertzeko funtzioak inportatzea, adibidez, behean erakusten da.
Ishigami funtzioa ere erabiltzen dugu, SALib-en proba funtzio gisa eskuragarri dagoena. Azkenik, NumPy inportatzen dugu SALib-ek ereduko sarrerak eta irteerak matrize batean gordetzeko erabiltzen duen heinean.
2. Ereduaren Sarrera
Ondoren, ereduaren sarrerak definitu behar dira. Ishigami funtzioak hiru sarrera onartzen ditu: x1, x2 eta x3. SALib-en, sarrera-kopurua, haien izenak eta sarrera bakoitzaren mugak zehazten dituen dikta eraikitzen dugu, behean ikusten den moduan.
3. Sortu Laginak eta Eredua
Ondoren, laginak sortzen dira. Laginak sortu behar ditugu Saltelli lagingailua erabiliz, Sobol sentsibilitate-analisia egiten ari garenez. Kasu honetan, parametroen balioak NumPy matrizea dira. Matrizea 8000 x 3 dela ikus dezakegu parametro-balioak exekutatzen.forma. 8000 lagin sortu ziren Saltelli samplerarekin. Saltelli lagingailuak laginak sortzen ditu, non N 1024 den (eman dugun parametroa) eta D 3. (ereduaren sarrera kopurua).
Lehen esan bezala, SALib ez da eredu matematiko edo konputazionalaren ebaluazioan aritzen. Eredua Python-en idatzita badago, normalean lagin-sarrera bakoitzean begiratuko duzu eta eredua ebaluatuko duzu:
Laginak testu-fitxategi batean gorde daitezke eredua Python-en garatzen ez bada:
Param values.txt-ko lerro bakoitzak eredu-sarrera bat adierazten du. Ereduaren irteera beste fitxategi batean gorde behar da antzeko estilo batean, lerro bakoitzean irteera bana jarrita. Horren ondoren, irteerak hauekin kargatu daitezke:
Adibide honetan, SALib-eko Ishigami funtzioa erabiliko dugu. Proba-funtzio hauek honela ebaluatu daitezke:
4. Egin Analisia
Azkenean, sentikortasun-indizeak kalkula ditzakegu ereduaren emaitzak Python-en kargatu ondoren. Adibide honetan, sobol.analyze erabiliko dugu lehen, bigarren eta ordena osoaren indizeak kalkulatzeko.
Si "S1", "S2", "ST", "S1 conf", "S2 conf" eta "ST conf" gakoak dituen Python hiztegi bat da. _conf teklak erlazionatutako konfiantza-tarteei eusten diete, orokorrean ehuneko 95ean ezartzen direnak. Indize guztiak ateratzeko, erabili gako-parametroa print to console=True. Bestela, behean azaltzen den bezala, Si-tik banakako balioak inprima ditzakegu.
Ikus dezakegu x1 eta x2 lehen mailako sentsibilitatea dutela, baina x3-k ez dirudi lehen mailako eraginik duenik.
Ordena osoaren indizeak lehen mailako indizeak baino nabarmen handiagoak badira, ziur aski maila altuagoko elkarrekintzak gertatzen ari dira. Goi mailako interakzio hauek bigarren mailako indizeei begiratuz ikus ditzakegu:
x1 eta x3 interakzio esanguratsuak dituztela ikus dezakegu. Horren ondoren, emaitza Pandas DataFrame batera eraldatu daiteke gehiago aztertzeko.
5. Lursaila egitea
Zure erosotasunerako, oinarrizko diagramen instalazioak eskaintzen dira. plot() funtzioak matplotlib ardatzeko objektuak sortzen ditu ondorengo manipulaziorako.
Ondorioa
SALib sentsibilitatea aztertzeko tresna sofistikatua da. SALib-en beste teknika batzuk Fourier-en anplitudearen sentikortasunaren proba (FAST), Morris metodoa eta Delta-Moment Independent Measure dira. Python liburutegia den arren, edozein motatako ereduekin funtzionatzeko pentsatuta dago.
SALib-ek komando lerroko interfaze erabilerraza eskaintzen du ereduen sarrerak sortzeko eta ereduaren irteerak ebaluatzeko. Errebisatu SALib dokumentazioa gehiago jakiteko.
Utzi erantzun bat