Həssaslıq təhlili müstəqil amillər toplusunun müəyyən şərtlər altında asılı dəyişənə təsirini müəyyən etmək üçün istifadə olunur.
Bu, ümumi mənada modelin girişlərinin modelin çıxışına necə təsir etdiyini müəyyən etmək üçün güclü bir yanaşmadır. Bu yazıda mən pulsuz Python həssaslıq analiz paketi olan SALib-dən istifadə edərək həssaslıq təhlili haqqında qısa məlumat verəcəyəm.
Həssaslıq indeksi kimi tanınan ədədi dəyər tez-tez hər bir girişin həssaslığını təmsil edir. Həssaslıq indekslərinin bir çox növləri var:
- Birinci dərəcəli indekslər: tək model girişinin çıxış dispersiyasına töhfəsini hesablayır.
- İkinci dərəcəli indekslər: iki model girişinin çıxış dispersiyasına töhfəsini hesablayır.
- Ümumi sıra indeksi: həm birinci dərəcəli təsirləri (təkcə dəyişən giriş) və həm də hər hansı daha yüksək səviyyəli qarşılıqlı əlaqəni əhatə edərək, model girişinin çıxış dispersiyasına töhfəsini kəmiyyətlə müəyyən edir.
SALib nədir?
SALib Python əsaslıdır açıq mənbə həssaslığın qiymətləndirilməsi üçün alətlər dəsti. O, ayrılmış iş axınına malikdir, yəni riyazi və ya hesablama modeli ilə birbaşa əlaqə saxlamır. Əvəzində, SALib model girişlərinin (nümunə funksiyalarından biri vasitəsilə) istehsalına və model çıxışlarından həssaslıq indekslərinin (təhlil funksiyalarından biri vasitəsilə) hesablanmasına cavabdehdir.
Tipik SALib həssaslıq təhlili dörd addımdan ibarətdir:
- Model girişlərini (parametrlərini) və hər biri üçün nümunə diapazonunu müəyyən edin.
- Model daxiletmələri yaratmaq üçün nümunə funksiyasını işə salın.
- Yaradılmış girişlərdən istifadə edərək modeli qiymətləndirin və model nəticələrini yadda saxlayın.
- Həssaslıq indekslərini hesablamaq üçün çıxışlarda təhlil funksiyasından istifadə edin.
Sobol, Morris və FAST SALib tərəfindən təqdim edilən həssaslıq təhlili metodlarından yalnız bir neçəsidir. Daha sonra görəcəyimiz kimi, müəyyən bir tətbiq üçün hansı yanaşmanın daha yaxşı olduğuna bir çox amillər təsir edir. Hələlik nəzərə alın ki, hansı texnikadan istifadə etməyinizdən asılı olmayaraq, yalnız iki funksiyadan, nümunə və təhlildən istifadə etməlisiniz. SALib-dən necə istifadə edəcəyinizi göstərmək üçün sizə əsas nümunə ilə rəhbərlik edəcəyik.
SALib Nümunəsi – Sobol Həssaslıq Təhlili
Bu nümunədə, aşağıda göstərildiyi kimi, Ishigami funksiyasının Sobol həssaslığını araşdıracağıq. İşigami funksiyası yüksək qeyri-xətti və qeyri-monotonik olduğuna görə qeyri-müəyyənlik və həssaslıq təhlili metodologiyalarını qiymətləndirmək üçün geniş istifadə olunur.
Addımlar aşağıdakı kimi gedir:
1. SALib-in idxalı
İlk addım tələb olunan kitabxanaları əlavə etməkdir. SALib-in nümunə və təhlil funksiyaları Python modullarında fərqli saxlanılır. Məsələn, peyk nümunəsinin idxalı və Sobol analiz funksiyaları aşağıda göstərilmişdir.
SALib-də test funksiyası kimi mövcud olan Ishigami funksiyasından da istifadə edirik. Nəhayət, biz NumPy-ni idxal edirik, çünki SALib ondan model giriş və çıxışlarını matrisdə saxlamaq üçün istifadə edir.
2. Model daxiletməsi
Daha sonra model girişləri müəyyən edilməlidir. Ishigami funksiyası üç girişi qəbul edir: x1, x2 və x3. SALib-də, aşağıda göründüyü kimi, girişlərin sayını, adlarını və hər bir giriş üzrə məhdudiyyətləri təyin edən bir dikt qururuq.
3. Nümunələr və Model yaradın
Sonra nümunələr yaradılır. Sobol həssaslıq analizi apardığımız üçün Saltelli seçicisindən istifadə edərək nümunələr yaratmalıyıq. Bu halda param dəyərləri NumPy matrisidir. Param values.shape işlətməklə matrisin 8000-ə 3 olduğunu müşahidə edə bilərik. Saltelli seçicisi ilə 8000 nümunə yaradılmışdır. Saltelli seçicisi nümunələr yaradır, burada N 1024 (təqdim etdiyimiz parametr) və D 3-dür (model daxiletmələrinin sayı).
Daha əvvəl qeyd edildiyi kimi, SALib riyazi və ya hesablama modelinin qiymətləndirilməsi ilə məşğul deyil. Model Python-da yazılıbsa, siz adətən hər bir nümunə daxiletməsi arasında dövr edəcək və modeli qiymətləndirəcəksiniz:
Model Python-da işlənməyibsə, nümunələr mətn faylında saxlanıla bilər:
Param values.txt-dəki hər bir sətir bir model daxiletməsini təmsil edir. Modelin çıxışı hər sətirdə bir çıxış olmaqla oxşar üslubda başqa bir faylda saxlanmalıdır. Bundan sonra çıxışlar aşağıdakılarla yüklənə bilər:
Bu nümunədə biz SALib-dən Ishigami funksiyasından istifadə edəcəyik. Bu test funksiyaları aşağıdakı kimi qiymətləndirilə bilər:
4. Təhlil aparın
Model nəticələrini Python-a yüklədikdən sonra nəhayət həssaslıq indekslərini hesablaya bilərik. Bu nümunədə birinci, ikinci və ümumi sıra indekslərini hesablamaq üçün sobol.analyze-dən istifadə edəcəyik.
Si “S1”, “S2,” “ST,” “S1 conf,” “S2 conf” və “ST conf” düymələri olan Python lüğətidir. _conf düymələri ümumiyyətlə 95 faizə təyin edilmiş əlaqəli etimad intervallarını saxlayır. Bütün indeksləri çıxarmaq üçün console=True açar sözü parametrindən istifadə edin print. Alternativ olaraq, aşağıda göstərildiyi kimi, Si-dən fərdi dəyərləri çap edə bilərik.
Biz görə bilərik ki, x1 və x2 birinci dərəcəli həssaslığa malikdir, lakin x3 heç bir birinci dərəcəli təsirə malik deyil.
Əgər ümumi sıra indeksləri birinci dərəcəli indekslərdən əhəmiyyətli dərəcədə böyükdürsə, daha yüksək səviyyəli qarşılıqlı təsirlər mütləq baş verir. İkinci dərəcəli indekslərə baxaraq bu yüksək səviyyəli qarşılıqlı əlaqəni görə bilərik:
Biz müşahidə edə bilərik ki, x1 və x3 əhəmiyyətli qarşılıqlı təsirlərə malikdir. Bundan sonra nəticə əlavə tədqiqat üçün Pandas DataFrame-ə çevrilə bilər.
5. Planlaşdırma
Sizin rahatlığınız üçün əsas diaqram vasitələri təmin edilmişdir. Plot() funksiyası sonrakı manipulyasiya üçün matplotlib ox obyektləri yaradır.
Nəticə
SALib mürəkkəb həssaslıq təhlili alət dəstidir. SALib-də digər üsullara Furye Amplituda Həssaslıq Testi (FAST), Morris Metodunu və Delta-Moment Müstəqil Ölçüsü daxildir. Python kitabxanası olsa da, istənilən növ modellərlə işləmək üçün nəzərdə tutulub.
SALib model daxilolmaları yaratmaq və model çıxışlarını qiymətləndirmək üçün istifadəsi asan komanda xətti interfeysi təklif edir. Yoxla SALib sənədləri daha ətraflı məlumat üçün.
Cavab yaz