Yo itilize analiz sansiblite pou detèmine enpak yon koleksyon faktè endepandan sou yon varyab depandan nan sèten kondisyon.
Li se yon apwòch solid pou detèmine kijan pwodiksyon modèl la afekte pa entrées modèl la an tèm jeneral. Nan pòs sa a, mwen pral bay yon apèsi rapid sou analiz sansiblite lè l sèvi avèk SALib, yon pake analiz sansiblite Python gratis.
Yon valè nimerik ke yo rekonèt kòm endèks sansiblite a, souvan reprezante sansiblite chak opinyon. Gen plizyè kalite endis sansiblite:
- Endis premye lòd: kalkile kontribisyon yon sèl opinyon modèl nan divèjans pwodiksyon an.
- Endis dezyèm lòd: kalkile kontribisyon de entrées modèl nan divèjans pwodiksyon an.
- Endèks total-lòd: quantifies kontribisyon yon D' modèl pou divèjans pèsistans yap ogmante jiska, ki anglobe tou de efè premye lòd (entrée a fluctue pou kont li) ak nenpòt entèraksyon pi wo lòd.
ki sa ki SALib?
SALib se yon ki baze sou Python louvri-sous zouti pou fè evalyasyon sansiblite. Li gen yon workflow detache, ki vle di li pa kominike dirèkteman ak modèl matematik oswa enfòmatik la. Olye de sa, SALib se an chaj nan pwodwi entrées modèl yo (atravè youn nan fonksyon yo echantiyon) ak kalkile endis yo sansiblite (atravè youn nan fonksyon yo analize) soti nan rezilta yo modèl.
Yon analiz sansiblite tipik SALib konsiste de kat etap:
- Detèmine antre modèl yo (paramèt) ak seri echantiyon pou chak.
- Pou kreye antre modèl, kouri fonksyon echantiyon an.
- Evalye modèl la lè l sèvi avèk antre yo pwodwi epi sove rezilta modèl yo.
- Pou kalkile endis sansiblite yo, sèvi ak fonksyon analize sou rezilta yo.
Sobol, Morris, ak FAST se jis kèk nan metòd analiz sansiblite ki ofri pa SALib. Anpil faktè enfliyanse ki apwòch ki pi bon pou yon aplikasyon, jan nou pral wè pita. Pou lemoman, kenbe nan tèt ou ke ou sèlman bezwen itilize de fonksyon, echantiyon ak analize, kèlkeswa teknik ou anplwaye. Nou pral gide ou atravè yon egzanp debaz pou ilistre kijan pou itilize SALib.
Egzanp SALib - Analiz sansiblite Sobol
Nan egzanp sa a, nou pral egzamine sansiblite Sobol la nan fonksyon Ishigami, jan yo montre anba a. Akòz segondè nonlinearity li yo ak nonmonotonicity, fonksyon Ishigami lajman itilize pou evalye metodoloji analiz ensètitid ak sansiblite.
Etap yo ale jan sa a:
1. Enpòte SALib
Premye etap la se ajoute bibliyotèk ki nesesè yo. Echantiyon ak analiz fonksyon SALib yo kenbe diferan nan modil Python. Enpòte echantiyon satelit la ak fonksyon analiz Sobol, pou egzanp, yo montre anba a.
Nou itilize tou fonksyon Ishigami, ki disponib kòm yon fonksyon tès nan SALib. Finalman, nou enpòte NumPy kòm SALib sèvi ak li nan magazen antre ak rezilta modèl nan yon matris.
2. Modèl Antre
Lè sa a, antre modèl yo dwe defini. Fonksyon Ishigami aksepte twa entrées: x1, x2, ak x3. Nan SALib, nou konstwi yon dict ki espesifye kantite antre, non yo, ak limit yo sou chak antre, jan yo wè pi ba a.
3. Jenere Echantiyon ak Modèl la
Lè sa a, echantiyon yo pwodwi. Nou bezwen kreye echantiyon lè l sèvi avèk echantiyon Saltelli la depi n ap fè yon analiz sansiblite Sobol. Nan ka sa a, valè param yo se yon matris NumPy. Nou ka obsève ke matris la se 8000 pa 3 lè nou kouri param values.shape. 8000 echantiyon yo te kreye ak echantiyon Saltelli a. Echantiyon Saltelli a kreye echantiyon, kote N se 1024 (paramèt nou bay la) ak D se 3. (kantite entrée modèl).
Jan sa te di deja, SALib pa angaje nan evalyasyon modèl matematik oswa enfòmatik. Si modèl la ekri nan Python, anjeneral ou pral boukle nan chak opinyon echantiyon epi evalye modèl la:
Echantiyon yo ka sove nan yon dosye tèks si modèl la pa devlope nan Python:
Chak liy nan param values.txt reprezante yon opinyon modèl. Pwodiksyon modèl la ta dwe sove nan yon lòt dosye nan yon style menm jan an, ak yon pwodiksyon sou chak liy. Apre sa, rezilta yo ka chaje ak:
Nan egzanp sa a, nou pral sèvi ak fonksyon Ishigami ki soti nan SALib. Yo ka evalye fonksyon tès sa yo jan sa a:
4. Fè analiz
Nou ka finalman kalkile endis sansiblite yo apre yo fin chaje rezilta modèl yo nan Python. Nan egzanp sa a, nou pral sèvi ak sobol.analyze pou kalkile premye, dezyèm, ak endis total-lòd yo.
Si se yon diksyonè Python ki gen kle yo "S1," "S2," "ST", "S1 conf," "S2 conf," ak "ST conf." Kle _conf yo kenbe entèval konfyans ki asosye yo, ki jeneralman mete sou 95 pousan. Pou pwodiksyon, tout endis, sèvi ak enprime paramèt mo kle a pou konsole = Vrè. Altènativman, jan sa montre pi ba a, nou ka enprime valè endividyèl yo soti nan Si.
Nou ka wè ke x1 ak x2 gen sansiblite premye lòd, men x3 pa sanble gen okenn enpak premye lòd.
Si endis total-lòd yo siyifikativman pi gwo pase endis premye lòd yo, entèraksyon pi wo-lòd yo pi sètènman pran plas. Nou ka wè entèraksyon pi wo lòd sa yo lè w gade endis dezyèm lòd yo:
Nou ka obsève ke x1 ak x3 gen entèraksyon enpòtan. Apre sa, rezilta a ka transfòme nan yon Pandas DataFrame pou plis etid.
5. Trase
Pou konvenyans ou, yo bay enstalasyon grafik debaz yo. Fonksyon plot() pwodui objè matplotlib aks pou manipilasyon ki vin apre.
konklizyon
SALib se yon zouti analiz sansiblite sofistike. Lòt teknik nan SALib gen ladan tès sansiblite Fourier anplitid (FAST), Metòd Morris, ak Mezi endepandan Delta-Moment. Pandan ke li se yon bibliyotèk Python, li gen entansyon opere ak modèl nenpòt kalite.
SALib ofri yon koòdone liy kòmand ki fasil pou itilize pou kreye antre modèl ak evalye rezilta modèl yo. Tcheke Dokiman SALib yo aprann plis.
Kite yon Reply