Defnyddir dadansoddiad sensitifrwydd i bennu effaith casgliad o ffactorau annibynnol ar newidyn dibynnol o dan amodau penodol.
Mae'n ddull cryf o benderfynu sut mae mewnbwn y model yn effeithio ar allbwn y model yn gyffredinol. Yn y swydd hon, byddaf yn rhoi trosolwg cyflym o ddadansoddiad sensitifrwydd gan ddefnyddio SALib, pecyn dadansoddi sensitifrwydd Python am ddim.
Mae gwerth rhifiadol a elwir yn fynegai sensitifrwydd, yn aml yn cynrychioli sensitifrwydd pob mewnbwn. Mae yna nifer o fathau o fynegeion sensitifrwydd:
- Mynegeion trefn gyntaf: yn cyfrifo cyfraniad mewnbwn model sengl i'r amrywiant allbwn.
- Mynegeion ail drefn: yn cyfrifo cyfraniad dau fewnbwn model i amrywiant allbwn.
- Mynegai trefn gyfan: meintioli cyfraniad mewnbwn model at amrywiant allbwn, gan gwmpasu effeithiau gradd gyntaf (y mewnbwn yn amrywio yn unig) ac unrhyw ryngweithiadau lefel uwch.
Beth yw SALib?
SALib yn seiliedig ar Python ffynhonnell agored pecyn cymorth ar gyfer cynnal asesiadau sensitifrwydd. Mae ganddo lif gwaith ar wahân, sy'n golygu nad yw'n rhyngweithio'n uniongyrchol â'r model mathemategol neu gyfrifiadol. Yn lle hynny, mae SALib yn gyfrifol am gynhyrchu'r mewnbynnau model (trwy un o'r ffwythiannau sampl) a chyfrifo'r mynegeion sensitifrwydd (drwy un o'r ffwythiannau dadansoddi) o'r allbynnau model.
Mae dadansoddiad sensitifrwydd SALib nodweddiadol yn cynnwys pedwar cam:
- Darganfyddwch fewnbynnau'r model (paramedrau) a'r amrediad sampl ar gyfer pob un.
- I greu mewnbynnau model, rhedeg y swyddogaeth sampl.
- Gwerthuswch y model gan ddefnyddio'r mewnbynnau a gynhyrchir ac arbedwch ganlyniadau'r model.
- I gyfrifo'r mynegeion sensitifrwydd, defnyddiwch y swyddogaeth dadansoddi ar yr allbynnau.
Dim ond rhai o'r dulliau dadansoddi sensitifrwydd a ddarperir gan SALib yw Sobol, Morris, a FAST. Mae llawer o ffactorau'n dylanwadu ar ba ddull sydd orau ar gyfer cais penodol, fel y gwelwn yn nes ymlaen. Am y tro, cofiwch mai dim ond dwy swyddogaeth sydd angen i chi eu defnyddio, samplu a dadansoddi, waeth pa dechneg rydych chi'n ei defnyddio. Byddwn yn eich arwain trwy enghraifft sylfaenol i ddangos sut i ddefnyddio SALib.
Enghraifft SALib – Dadansoddiad Sensitifrwydd Sobol
Yn yr enghraifft hon, byddwn yn archwilio sensitifrwydd Sobol o swyddogaeth Ishigami, fel y dangosir isod. Oherwydd ei aflinoledd uchel a'i nonmonotonicity, defnyddir swyddogaeth Ishigami yn eang i werthuso methodolegau dadansoddi ansicrwydd a sensitifrwydd.
Mae'r camau'n mynd fel a ganlyn:
1. Mewnforio SALib
Y cam cyntaf yw ychwanegu'r llyfrgelloedd gofynnol. Mae swyddogaethau samplu a dadansoddi SALib yn cael eu cadw ar wahân mewn modiwlau Python. Mae mewnforio'r sampl lloeren a swyddogaethau dadansoddi Sobol, er enghraifft, i'w gweld isod.
Rydym hefyd yn defnyddio swyddogaeth Ishigami, sydd ar gael fel swyddogaeth brawf yn SALib. Yn olaf, rydym yn mewnforio NumPy gan fod SALib yn ei ddefnyddio i storio mewnbynnau ac allbynnau model mewn matrics.
2. Mewnbwn Model
Rhaid diffinio mewnbynnau'r model wedyn. Mae swyddogaeth Ishigami yn derbyn tri mewnbwn: x1, x2, a x3. Yn SALib, rydyn ni'n llunio dict sy'n nodi nifer y mewnbynnau, eu henwau, a'r terfynau ar bob mewnbwn, fel y gwelir isod.
3. Cynhyrchu Samplau a'r Model
Yna caiff y samplau eu cynhyrchu. Mae angen i ni greu samplau gan ddefnyddio samplwr Saltelli gan ein bod yn gwneud dadansoddiad sensitifrwydd Sobol. Yn yr achos hwn, matrics NumPy yw gwerthoedd param. Gallwn arsylwi bod y matrics yn 8000 gan 3 trwy redeg param values.shape. Crëwyd 8000 o samplau gyda samplwr Saltelli. Mae'r samplwr Saltelli yn creu samplau, lle mae N yn 1024 (y paramedr a ddarparwyd gennym) a D yw 3. (nifer y mewnbynnau model).
Fel y dywedwyd yn flaenorol, nid yw SALib yn ymwneud â gwerthuso model mathemategol na chyfrifiannol. Os yw'r model wedi'i ysgrifennu yn Python, byddwch fel arfer yn dolennu trwy bob mewnbwn sampl ac yn asesu'r model:
Gellir cadw'r samplau i ffeil testun os na chaiff y model ei ddatblygu yn Python:
Mae pob llinell yn param values.txt yn cynrychioli un mewnbwn model. Dylid cadw allbwn y model i ffeil arall mewn arddull debyg, gydag un allbwn ar bob llinell. Ar ôl hynny, gellir llwytho'r allbynnau gyda:
Yn yr enghraifft hon, rydyn ni'n mynd i ddefnyddio'r swyddogaeth Ishigami o SALib. Gellir gwerthuso'r swyddogaethau prawf hyn fel a ganlyn:
4. Perfformio Dadansoddiad
O'r diwedd gallwn gyfrifo'r mynegeion sensitifrwydd ar ôl llwytho canlyniadau'r model i Python. Yn yr enghraifft hon, byddwn yn defnyddio sobol.analyze i gyfrifo'r mynegeion cyntaf, ail, a chyfanswm trefn.
Geiriadur Python yw Si gyda’r allweddi “S1,” “S2,” “ST,” “S1 conf,” “S2 conf,” a “ST conf.” Mae'r bysellau _conf yn dal y cyfyngau hyder cysylltiedig, sydd wedi'u gosod yn gyffredinol i 95 y cant. I allbynnu, pob indecs, defnyddiwch y print paramedr allweddair i consol=Gwir. Fel arall, fel y dangosir isod, gallwn argraffu'r gwerthoedd unigol o Si.
Gallwn weld bod gan x1 a x2 sensitifrwydd trefn gyntaf, ond nid yw'n ymddangos bod x3 yn cael unrhyw effeithiau trefn gyntaf.
Os yw'r mynegeion cyfanswm trefn yn sylweddol fwy na'r mynegeion trefn gyntaf, mae rhyngweithiadau lefel uwch yn sicr yn digwydd. Gallwn weld y rhyngweithiadau lefel uwch hyn trwy edrych ar y mynegeion ail radd:
Gallwn arsylwi bod gan x1 a x3 ryngweithiadau arwyddocaol. Ar ôl hynny, efallai y bydd y canlyniad yn cael ei drawsnewid i Ffrâm Data Pandas ar gyfer astudiaeth bellach.
5. Cynllwynio
Er hwylustod i chi, darperir cyfleusterau siartio sylfaenol. Mae'r ffwythiant plot() yn cynhyrchu gwrthrychau echelin matplotlib i'w trin wedyn.
Casgliad
Mae SALib yn becyn cymorth dadansoddi sensitifrwydd soffistigedig. Mae technegau eraill yn SALib yn cynnwys y Prawf Sensitifrwydd Osgled Fourier (FAST), Dull Morris, a Mesur Annibynnol Delta-Moment. Er ei bod yn llyfrgell Python, bwriedir gweithredu gyda modelau o unrhyw fath.
Mae SALib yn cynnig rhyngwyneb llinell orchymyn hawdd ei ddefnyddio ar gyfer creu mewnbynnau model ac asesu allbynnau model. Gwiriwch allan Dogfennaeth SALib i ddysgu mwy.
Gadael ymateb