ניתוח רגישות

ניתוח רגישות (באנגלית: Sensitivity analysis) היא שיטת מחקר של מודלים מתמטיים בה אי ודאות הקיימת בפלט מחולקת ומסווגת לאי וודאות הקיימת בנתונים השונים שניתנו למודל כקלט. באמצעות ניתוח רגישות ניתן להבין לעומק את הקשרים בין משתני הקלט והפלט במערכת או במודל.

ניתן להשתמש בתוצאות ניתוח הרגישות למספר מטרות, כגון: בחינת התוצאות של מודל או מערכת בנוכחות אי ודאות, פישוט המודל המתמטי על ידי זיהוי והסרה של קלט שאין לו השפעה על הפלט של המודל, והבנה מעמיקה יותר של הקשרים בין הפלט לקלט ובכך לזהות שגיאות אפשריות במודל.

== סקירה כללית ==
מודל מתמטי יכול להיות מורכב מאוד, לדוגמה, מודלים של מערכות ביולוגיות או מודלים קינטיים בכימיה, ולכן ההשפעה של הקלט על הפלט אינה ליניארית ואינה טריוויאלית. ניתן לומר במקרים כאלו שהמודל הוא מעין קופסה שחורה אשר מקבלת קלט ומבצעת עליו מניפולציות לא ידועות עד להוצאת הפלט. לעיתים קרובות חלק מהקלט של המודל נתון למקורות של אי-ודאות, כולל שגיאות מדידה, חוסר מידע והבנה לקויה או חלקית של הכוחות והמנגנונים המניעים. אי-ודאות זו משפיעה על מהימנות תוצאות המודל.

== שיטות לניתוח רגישות ==
ישנן מספר רב של גישות לביצוע ניתוח רגישות. רבות מהן פותחו כדי לתת מענה לאילוצים נפוצים, כגון עלות חישובית, תלות בפרמטרי הקלט, אי ליניאריות בתוצאות המודל ונתוני פלט מרובים. הם גם נבדלים על ידי סוג מדד הרגישות, למשל ניתוח רגישות מבוסס שונות, או נגזרות חלקיות. עם זאת, באופן כללי, רוב ההליכים תואמים את המתווה הבא:
* כימות אי הוודאות בכל קלט (למשל טווחים, התפלגויות הסתברות)<ref></ref>.
* זיהוי של פלט המודל שיש לנתח (צריך להיות קשר ישיר בין הפרמטר הנבחן לבעיה שהמודל מתמודד איתה).
* הפעלת המודל מספר פעמים תוך שימוש בתכנון כלשהו של ניסויים<ref></ref>, המוכתב על ידי שיטת הניתוח שנבחרה ואי הוודאות בקלט.
* חישוב מדדי הרגישות הרלוונטיים באמצעות פלטי המודל המתקבלים.

במקרים מסוימים הליך זה יחזור על עצמו, למשל בבעיות רב ממדיות שבהן נדרש סינון משתנים לא חשובים לפני ביצוע ניתוח רגישויות מלא.

=== אחד-בכל-פעם ===
אחת הגישות הפשוטות והנפוצות ביותר היא שינוי של גורם אחד בכל פעם , כדי להעריך את ההשפעה על הפלט. השיטה כוללת שינוי קטן בערך של משתנה קלט אחד בכל איטרציה, תוך כדי שמירה על שאר המשתנים בערכים הנומינליים. לאחר מכן, ניתן למדוד את הרגישות על ידי ניטור שינויים בתוצאות המודל.

שיטה זו מאפשרת שכל שינוי שנצפה בפלט יהיה חד משמעי בגלל המשתנה הבודד שהשתנה. יתר על כן, על ידי שינוי משתנה אחד בכל פעם, ושמירת שאר המשתנים קבועים, מתאפשרת השוואת התוצאות המתקבלות, שכן כל השפעות מחושבות בהתייחסות לאותה נקודה מרכזית במרחב.

גישה זו אינה חוקרת במלואה את מרחב הקלט, מכיוון שאינה לוקחת בחשבון את השונות הבו-זמנית של משתני הקלט. משמעות הדבר היא ששיטה זו אינה יכולה לזהות נוכחות של אינטראקציות בין משתני קלט.

=== שיטות מקומיות המבוססות על נגזרות ===
שיטות המבוססות על נגזרות מקומיות<ref></ref> כוללות חישוב הנגזרות החלקיות של הפלט <math> Y </math> ביחס לגורם קלט <math> X_i </math>:<math display="block"> \left|\frac{\partial Y}{\partial X_i}\right|_{x_0} </math>

כאשר <math> x_0 </math> מציין שהנגזרת נלקחת בנקודה קבועה כלשהי במרחב הקלט. שיטות מקומיות אינן מנסות לחקור את מרחב הקלט במלואו, מכיוון שהן בוחנות הפרעות קטנות, בדרך כלל משתנה אחד בכל פעם.

ניתן לבחור דגימות דומות מתוך רגישות מבוססת נגזרות דרך רשתות עצביות מלאכותיות ולבצע כימות אי ודאות.

יתרון אחד של השיטות המקומיות הוא שניתן ליצור מטריצה שתייצג את כל הרגישויות במערכת, ובכך לספק סקירה שלא ניתן להשיג בשיטות גלובליות אם יש מספר רב של משתני קלט ופלט.

=== מדדי רגישות גלובליים מבוססי נגזרות ===
מדדי רגישות גלובליים מבוססי נגזרות<ref></ref> היא שיטה המבוססת על הטכניקה לניתוח כל מרחב הפרמטרים בבת אחת ומבוססת על ממוצע של נגזרות מקומיות באמצעות שיטות דגימה של מונטה קרלו. שיטת מדדי רגישות גלובליים מבוססי נגזרות מעריכה נגזרות מקומיות על ידי חישוב הנגזרות בנקודות שנבחרו באופן אקראי או בטווח המלא של אי הוודאות, ולא בנקודות מרשת קבועה. כתוצאה מכך, מדדי רגישות גלובליים מבוססי נגזרות היא טכניקה מדויקת יותר.

=== שיטות נוספות לניתוח רגישות ===
* ניתוח רגרסיה - השיטה כוללת התאמת רגרסיה ליניארית לתגובת המודל ושימוש במקדמי רגרסיה סטנדרטיים כמדדים ישירים של הרגישות. היתרונות של ניתוח רגרסיה הם בכך שהוא פשוט ובעל עלות חישובית נמוכה.
* שיטות מבוססות שונות (באנגלית: Variance-based sensitivity analysis) - שיטות מבוססות שונות הן מחלקה של גישות הסתברותיות שמכמתות את אי הוודאות בקלט ובפלט כהתפלגות הסתברות, ומפרקות את שונות הפלט לחלקים המיוחסים למשתני קלט ולשילובים של משתנים. לכן הרגישות של הפלט למשתנה קלט נמדדת לפי כמות השונות בפלט הנגרמת מאותו קלט.

== דוגמה לרגישות תגובה כימית במודל קינטי ==
בתהליך בניית מודלים בקינטיקה כימית, נבדקים מנגנוני תגובות כימיות מגוונות, כגון בעירה או פירוליזה. במקרים רבים, תהליכים אלו מורכבים, וכוללים יצירה של מגוון רחב של חומרים שונים, אשר היחסים הכמותיים ביניהם משתנים בהתאם לתנאי הניסוי (כגון טמפרטורה, לחץ, נוכחות זרזים, וריכוזים שונים של חומרים מגיבים). המודל המוצע מכיל תגובות כימיות אפשריות בין צורונים כימיים שונים. לכל תגובה מקדם קצב אשר נמדד, חושב, או שוערך עבורה, ולכן מכיל שגיאת מדידה, חישוב, או הערכה. אמינות הפלט של המודל, אם כן, תלויה באמינותם של קבועי הקצב.

על אף שהמודל המדויק ביותר יתקבל עבור ערכי קבועי קצב מדויקים ככול האפשר, מורכבותו של המודל עשויה להקשות על חישוב מדויק של כל הערכים הנדרשים. באמצעות אנליזת רגישות ניתן להעריך את חשיבות קבועי הקצב השונים, וכך להתמקד בשיפורן של מדידות אשר מוערכות כחשובות יותר.

להלן דוגמה למציאת רגישות מבוססת נגזרת עבור קבוע קצב בתגובה כימית:

נניח שקיימת תגובה כימית מהצורה:

<math display="block"> R \leftrightarrow P </math>ידוע שמתקיים:<math display="block"> \frac{d C_R}{dt} = -kC_R </math> עם תנאי התחלה:<math display="block"> C_R (0) = C_0 </math>

ונרצה לדעת מה הוא הערך לאחר דקה.

המשוואה היא משוואה דיפרנציאלית מסדר ראשון שפתרונה:<math display="block"> C_R (t)=C_0 e^{-kt} </math>ולכן הערך לאחר דקה הוא:<math display="block"> C_R (t=1 min)=C_0 e^{-k} </math>

נניח לשם הפשטות כי <math> C_0 </math> ו-<math> k </math> הם קבועים חיוביים כלשהם, ושהערך של הקבוע <math> k </math> שוערך בדרך כלשהי, וכעת מכיל שגיאה לא ידועה. על מנת לאמוד את השפעת השגיאה על התוצאה נרצה לבדוק את רגישות ריכוז המגיב <math> C_R </math> לערכו של קבוע הקצב <math> k </math>. בשביל לעשות כן, נוכל לשנות את בפקטור קטן (אשר יסומן ב-<math> \Delta k </math>), ונבדוק את השינוי בערך הריכוז החדש, לעומת השינוי שביצענו ב-<math> k </math>. מבחינת יכולת ההשוואה, יהיה עדיף אם נסתכל על שינויים של <math> k </math> ושל <math> C_R </math> באופן יחסי לגודלם ההתחלתי. הביטוי המתמטי אותו נרצה לפתח הוא, אם כן:<math display="block"> \Big({\frac{C_R(k+\Delta k) - C_R(k)}{C_R}}\Big)\Big / \Big ({\frac{\Delta k}{k}}\Big) \sim \Big (\frac{k}{C_R}\Big) \frac{dC_R}{dk}
 </math>

ניתן לראות שקיבלנו כחלק מהביטוי בו אנו מעוניינים, את הנגזרת של הריכוז לפי <math>k</math>. בדוגמה פשוטה זו הפונקציה האנליטית המתארת את הריכוז ידועה, כמו גם הנגזרת שלה. נציב אותם בביטוי:<math display="block"> \Big (\frac{k}{C_R}\Big) \frac{dC_R}{dk}=\Big (\frac{k}{C_0 e^{-kt}}\Big) \cdot (-C_0t e^{-kt})=-kt </math>

כלומר, רגישות התגובה, כפי שחושבה בדוגמה זו, מושפעת מהזמן שבו היא מתרחשת ומקבוע הקצב שלה ביחס ישר. לאחר דקה, ועבור הערך <math display="inline"> k = 1 \left[\frac{1}{min}\right] </math>, תתקבל רגישות של 1.

בנוסף, ניתן לשים לב כי קיימת השקילות בין הביטויים הבאים:<math display="block"> \Big (\frac{k}{C_R}\Big){dC_R \over dk}={d\ln(C_R) \over d\ln(k)} </math>

משמעות הרגישות באופן בו היא מוצגת בדוגמה להלן היא שאם יתברר כי ערכו של <math> k </math> שונה מהערך בו השתמשנו במודל, וההבדל (הקטן) ביניהם הוא <math> \Delta k </math>, ניתן להעריך שההשפעה על הריכוז תהיה בקירוב:<math display="block"> C_R(k + \Delta k) \sim C_R(k)+\frac{C_R}{k}{d\ln(C_R) \over d\ln(k)}\Delta k=C_R+
\Big ({C_R \over k}\Big)\cdot (-kt)\cdot\Delta k=C_R(k,t)(1-t\Delta k) </math>

לאחר דקה יהיה הריכוז החדש <math> C_R(k+\Delta k,t=1 min) \sim C_R(k, t=1 min)\cdot(1-\Delta k) </math>

בדוגמה פשוטה זו, ניתן היה לחשב את הנגזרת האנליטית של פונקציית הריכוז. במקרים אחרים לא ניתן לעשות כן, והגדלים הרלוונטיים מחושבים באופן נומרי.

== יישומים ==
דוגמאות לניתוחי רגישות ניתן למצוא בתחומי יישום שונים, כגון:
* מדעי החברה
* כִּימִיָה
* הַנדָסָה
* אֶפִּידֶמִיוֹלוֹגִיָה
* מטא-אנליזה
* קבלת החלטות מרובות קריטריונים
* קבלת החלטות קריטית לזמן
* כיול דגם
* כימות אי ודאות
* תורת הכאוס

== תוכנות ==
מספר תוכנות לניתוח רגישות פותחו מאז 1989, תוכנות אלו מכסות את כל שפות התכנות הפופולריות ביותר: מהפיתוחים המוקדמים ב-++Fortran/C ועד לאלו עדכניות יותר בפייתון, R ,MATLAB ,Julia<ref></ref>.

בתחום הקינטיקה הכימית, קיימות תוכנות ליצירת וניתוח מודלים אשר מסוגלות לבצע אנליזת רגישות עבור המודל המוצע<ref></ref><ref></ref>.

== הערות שוליים ==

קטגוריה:סימולציה