Analisis sensitipitas digunakeun pikeun nangtukeun dampak kumpulan faktor bebas kana variabel terikat dina kaayaan nu tangtu.
Éta mangrupikeun pendekatan anu kuat pikeun nangtoskeun kumaha kaluaran modél dipangaruhan ku input modél sacara umum. Dina tulisan ieu, kuring bakal masihan gambaran gancang ngeunaan analisis sensitipitas nganggo SALib, pakét analisis sensitipitas Python gratis.
Nilai numerik katelah indéks sensitipitas, sering ngagambarkeun sensitipitas unggal input. Aya sababaraha jinis indéks sensitipitas:
- Indéks urutan kahiji: ngitung kontribusi input modél tunggal kana varian kaluaran.
- Indéks orde kadua: ngitung kontribusi dua input modél kana varians kaluaran.
- Indéks urutan total: ngitung kontribusi input model kana varian kaluaran, ngawengku duanana épék urutan kahiji (input fluctuating nyalira) jeung sagala interaksi urutan luhur.
Naon ari SAlib?
SALib mangrupakeun basis Python open-sumber toolkit pikeun ngalakukeun assessments sensitipitas. Mibanda workflow detached, nu hartina teu berinteraksi langsung jeung model matematik atawa komputasi. Sabalikna, SALib tanggung jawab pikeun ngahasilkeun input modél (ngaliwatan salah sahiji fungsi sampel) sareng ngitung indéks sensitipitas (ngaliwatan salah sahiji fungsi analisa) tina kaluaran modél.
Analisis sensitipitas SALib has diwangun ku opat léngkah:
- Nangtukeun model inputs (parameter) jeung rentang sampel pikeun tiap.
- Pikeun nyieun input model, ngajalankeun fungsi sampel.
- Evaluate model ngagunakeun inputs dihasilkeun sarta simpen hasil model.
- Pikeun ngitung indéks sensitipitas, paké fungsi analisa dina kaluaran.
Sobol, Morris, sareng FAST mangrupikeun sababaraha metode analisa sensitipitas anu disayogikeun ku SALib. Seueur faktor mangaruhan pendekatan mana anu pangsaéna pikeun aplikasi anu dipasihkeun, sakumaha anu bakal urang tingali engké. Samentawis waktos, émut yén anjeun ngan ukur kedah ngagunakeun dua fungsi, sampel sareng analisa, henteu paduli téknik naon waé anu anjeun gunakeun. Kami bakal nungtun anjeun kana conto dasar pikeun ngagambarkeun kumaha ngagunakeun SALib.
Conto SALib - Analisis Sensitipitas Sobol
Dina conto ieu, urang bakal nalungtik sensitipitas Sobol 'tina fungsi Ishigami, ditémbongkeun saperti di handap ieu. Kusabab nonlinieritas sareng nonmonotonisitas anu luhur, fungsi Ishigami seueur dianggo pikeun meunteun kateupastian sareng metodologi analisa sensitipitas.
Léngkah-léngkahna sapertos kieu:
1. Ngimpor SAlib
Hambalan munggaran nyaéta pikeun nambahkeun perpustakaan diperlukeun. Sampel sareng analisa fungsi SALib tetep béda dina modul Python. Ngimpor conto satelit sareng fungsi analisa Sobol, contona, dipidangkeun di handap.
Urang ogé ngagunakeun fungsi Ishigami, nu sadia salaku fungsi test dina SALib. Tungtungna, urang ngimpor NumPy sakumaha SALib ngagunakeun eta pikeun nyimpen inputs model jeung outputs dina matrix a.
2. Modél Input
Input modél teras kedah ditetepkeun. Fungsi Ishigami nampi tilu input: x1, x2, sareng x3. Dina SALib, urang ngawangun dict nu nangtukeun jumlah inputs, ngaran maranéhanana, jeung wates dina unggal input, sakumaha katingal di handap.
3. Ngahasilkeun Sampel sareng Modél
Sampel lajeng dihasilkeun. Urang kudu nyieun sampel ngagunakeun Saltelli sampler saprak urang ngalakukeun analisis sensitipitas Sobol. Dina hal ieu, nilai param nyaéta matriks NumPy. Urang bisa niténan yén matrix nyaéta 8000 ku 3 ku ngajalankeun nilai param.shape. 8000 sampel dijieun kalawan Saltelli sampler. Saltelli sampler nyiptakeun sampel, dimana N nyaéta 1024 (parameter kami disadiakeun) jeung D nyaeta 3. (jumlah inputs modél).
Sakumaha didadarkeun saméméhna, SALib henteu kalibet dina évaluasi modél matematika atanapi komputasi. Upami modélna ditulis dina Python, anjeun biasana bakal ngurilingan unggal input sampel sareng meunteun modél:
Sampelna tiasa disimpen kana file téks upami modélna henteu dikembangkeun dina Python:
Unggal garis dina param values.txt ngagambarkeun hiji input model. Kaluaran modél kedah disimpen kana file sanés dina gaya anu sami, kalayan hiji kaluaran dina unggal jalur. Sanggeus éta, outputs bisa dieusian ku:
Dina conto ieu, urang bade nganggo fungsi Ishigami ti SALib. Fungsi tés ieu tiasa dievaluasi sapertos kieu:
4. Ngalaksanakeun Analisis
Urang tungtungna tiasa ngitung indéks sensitipitas saatos ngamuat hasil modél kana Python. Dina conto ieu, urang bakal ngagunakeun sobol.analyze pikeun ngitung indéks kahiji, kadua, jeung total-urutan.
Si mangrupikeun kamus Python anu gaduh konci "S1," "S2," "ST," "S1 conf," "S2 conf," sareng "ST conf." Kenop _conf nahan interval kapercayaan nu pakait, nu umumna disetel ka 95 persen. Pikeun kaluaran, sadaya indéks, nganggo print parameter keyword pikeun konsol = Leres. Alternatipna, sakumaha digambarkeun di handap, urang bisa nyitak nilai individu ti Si.
Urang tiasa ningali yén x1 sareng x2 gaduh sensitipitas urutan kahiji, tapi x3 sigana henteu gaduh pangaruh urutan kahiji.
Lamun indéks total-urutan nyata leuwih badag batan indéks urutan kahiji, interaksi-urutan luhur pasti lumangsung. Urang tiasa ningali interaksi tingkat luhur ieu ku ningali indéks orde kadua:
Urang bisa niténan yén x1 jeung x3 boga interaksi signifikan. Sanggeus éta, hasilna bisa dirobah jadi Pandas DataFrame pikeun ulikan salajengna.
5. Plot
Pikeun genah anjeun, fasilitas charting dasar disadiakeun. Plot () fungsi ngahasilkeun objék sumbu matplotlib pikeun manipulasi saterusna.
kacindekan
SALib mangrupikeun toolkit analisis sensitipitas canggih. Téhnik séjén dina SALib kalebet Uji Sensitipitas Amplitudo Fourier (FAST), Métode Morris, sareng Ukur Independen Delta-Momen. Bari eta mangrupakeun perpustakaan Python, eta dimaksudkeun pikeun beroperasi kalawan model nanaon.
SALib nawiskeun antarbeungeut paréntah-garis anu gampang dianggo pikeun nyiptakeun input modél sareng nganilai kaluaran modél. Parios dokuméntasi SAlib diajar leuwih.
Leave a Reply