Analyse de sensibilité

L’analyse de sensibilité est l'étude de la façon dont l'incertitude de la sortie d'un code ou d'un système (numérique ou autre) peut être attribuée à l'incertitude dans ses entrées[1],[2],[3]. Il s'agit d'estimer des indices de sensibilité qui quantifient l'influence d'une entrée ou d'un groupe d'entrée sur la sortie.

Introduction

Applications

L'analyse de sensibilité peut être utile pour beaucoup d'applications[4]:

  • Tester la robustesse d'un modèle ou d'un système en présence d'incertitude.
  • Une meilleure compréhension des relations entre l'entrée et la sortie des variables dans un système ou d'un modèle.
  • La réduction d'incertitude, à travers l'identification des entrées du modèle qui causent une incertitude importante dans la production et devrait donc être le centre de l'attention.
  • La recherche d'erreurs dans le modèle (par la rencontre inattendue des relations entre les entrées et les sorties).
  • La simplification du modèle, en fixant les entrées qui n'ont pas d'effet sur la sortie, ou en identifiant et en supprimant les parties redondantes de la structure du modèle.
  • L'amélioration de la communication entre modélisateurs et décideurs (par exemple en formulant des recommandations plus crédibles, compréhensibles, irrésistibles ou de persuasion).
  • Trouver des régions dans l'espace des entrées pour lesquelles la sortie du modèle est maximale ou minimale, ou répond à un certain critère d'optimalité (voir optimisation et méthode de Monte Carlo).
  • Pour la calibration des modèles avec un grand nombre de paramètres, une analyse de sensibilité peut faciliter le réglage des paramètres en se concentrant sur les paramètres sensibles. Sans connaitre la sensibilité des paramètres, beaucoup de temps et d'effort peuvent être gaspillés pour régler des paramètres peu sensibles[5].
  • Chercher à identifier les liens importants entre les observations, les entrées du modèle, et des prédictions ou des prévisions, conduisant à l'élaboration de meilleurs modèles[6],[7].

Notations et vocabulaire

L'objet d'étude de l'analyse de sensibilité est une fonction , (appelée "modèle mathématique" ou "code"). Elle peut être vue comme une boîte noire dont on ne connait que sa sortie . Ses entrées sont notées . Il s'agit de paramètres de la boîte noire qui ont un impact sur la sortie du système.

avec .

Problématiques

Le choix de la méthode de l'analyse de sensibilité est généralement déterminée pour répondre aux contraintes qu'impose la fonction . Les plus courantes sont

  • Coût de calcul: sauf dans de très rares cas, faire une analyse de sensibilité requiert d'évaluer un grand nombre de fois[8]. Cela devient une barrière quand
    • Une seule exécution du code prend beaucoup de temps (c'est couramment le cas).
    • Le code dispose d'un grand nombre d'entrées. L'espace à explorer devient trop grand (voir "Malédiction de la dimensionnalité").
  • Entrées corrélées: l'hypothèse d'indépendance entre les entrées du modèle simplifie beaucoup l'analyse de sensibilité, mais parfois on ne peut pas négliger que les entrées sont fortement corrélées. Les corrélations entre les entrées doivent alors êtres prises en compte dans l'analyse[9].
  • La non-linéarité: si le code à analyser est linéaire ou non on préfèrera différentes techniques (score derégression linéaire quand il est linéaire, scores basés sur la variance quand il ne l'est pas)[10].
  • Interactions: lorsque les entrées ont seulement des effets additifs, on dit qu'elle ne sont pas en interaction. Certaines techniques simples (nuage de point, OAT) sont alors applicables[11]. Quand ce n'est pas le cas, d'autre techniques sont mieux indiquées (calcul des indices de Sobol simple et totaux).
  • Sorties multiples ou fonctionnelle: généralement introduite pour des codes à une seule sortie, l'analyse de sensibilité s'étend aux cas ou la sortie Y est un vecteur, une fonction[12], une série temporelle ou un champ.
  • A partir de données: il arrive que l'on ait pas la possibilité d'évaluer le code sur les points que l'on veut. On ne dispose de la sortie du code qu'en des points donnés (pour une analyse rétrospective ou une expérience non-reproductible, par exemple). La réponse du code en d'autres points que ceux donnés doit alors être inférée à partir des points connus. On construit alors un modèle statistique du code (ou "méta-modèle"[13]).
  • Code stochastique: un code est dit déterministe lorsque pour plusieurs évaluation du code avec les même entrées, on obtient toujours la même sortie. Lorsque ce n'est pas le cas (la sortie est différente malgré des entrées identiques), le code est dit stochastique. Il faut alors séparer la variabilité de la sortie due à la variabilité sur les entrée et celle due au caractère stochastique[14].

Méthodologies

Il existe un grand nombre d'approches pour faire une analyse de sensibilité, dont beaucoup ont été développées pour répondre à un ou plusieurs des contraintes discutées ci-dessus. Elles se distinguent également par le type de mesure de sensibilité (décomposition de variance, dérivées partielles, effets élémentaires...). En général, on retrouve le plan suivant dans la plupart des procédures:

  1. Quantifier l'incertitude dans chaque entrée (plages de valeurs possibles, distributions de probabilité). Cela peut être un problème en soi car beaucoup de méthodes existent pour obtenir l'incertitude des distributions de données subjectives[15].
  2. Identifier la(les) sortie(s) du modèle qui vont être analysées (la cible d'intérêt devrait idéalement avoir une relation directe avec le problème abordé par le modèle). La seule rationalisation imposée par cette tache est un des bénéfices de l'analyse de sensibilité.
  1. Exécutez le modèle un certain nombre de fois en suivant un plan d'expériences[16] (différent suivant l'approche choisie et l'incertitude des entrées).
  2. Calculer la mesure de sensibilité choisie pour le problème.

Dans certains cas, cette procédure sera répétée, par exemple en haute-dimensions des problèmes où l'utilisateur doit d'abord trier les variables sans importance ("screening") avant d'effectuer une analyse de sensibilité complète[1].

Les différentes méthodologies (voir ci-dessous) se distinguent par les mesures de sensibilité qui sont calculés. Ces méthodologies se chevauchent parfois et d'autres mesures de sensibilité, adaptées contraintes du problème, peuvent être testées.

One-At-a-Time (OAT)

Le moyen le plus simple et le plus commun d'étudier la sensibilité des entrées est de les modifier une par une ("One-At-a-Time" : OAT), les autres restant fixées à une valeur nominale. On voit alors l'effet que cela produit sur la sortie[17],[18],[19]. La méthode OAT  implique habituellement de:

  • Déplacer une variable d'entrée, laissant les autres à une valeur de référence (nominale), puis,
  • Remettre la variable d'entrée à sa valeur nominale, puis à répéter pour chacun des autres entrées de la même manière.

La sensibilité peut ensuite être mesurée par la surveillance des changements dans la sortie, par exemple, par les dérivées partielles ou de régression linéaire. Cela semble logique que tout changement observé dans la sortie peut être attribué sans ambiguïté à la seule variable changé. En outre, en modifiant une variable à la fois, on peut garder toutes les autres variables fixes à leur centrale ou de valeurs de référence. Cela accroît la comparabilité des résultats (tous les "effets" sont calculés en référence au même point "central" dans l'espace des entrées). La méthode OAT est souvent préféré par les modélisateurs pour des raisons pratiques. Lorsque le modèle plante lors d'une analyse OAT, le modélisateur sait immédiatement qui est le paramètre responsable de l'échec.

Cependant, malgré sa simplicité, cette approche ne permet pas d'explorer totalement l'espace des entrées. En effet, elle ne tient pas compte de la variation simultanée de variables d'entrée. Cela signifie que la méthode OAT ne peut pas détecter la présence d'interactions entre les variables d'entrée[20]. De plus, le choix de la valeur nominale et de l'échantillonnage peuvent poser problème. Par exemple, sur le modèle avec la valeur nominale , l'influence de sera invisible par une méthode OAT.

Méthodes locales

Les méthodes locales impliquent de prendre la dérivée partielle de la sortie Y par rapport à une entrée Xi:

où l'indice indique que la dérivée est prise à un point fixe dans l'espace des entrées (d'où l'adjectif "local"). Modélisation adjointe[21],[22] et Différenciation automatisée[23] sont les méthodes de ce type. Semblable à OAT, les méthodes locales n'essaye pas d'explorer l'espace des entrées. Elles examinent seulement les petites perturbations, généralement une variable à la fois.

Les nuages de points

Un outil simple mais utile est de tracer des nuages de points de la variable de sortie en fonction de variables d'entrée, après que le modèle ait été évalué sur un échantillon aléatoire (respectant les distributions des entrées). L'avantage de cette approche est qu'elle s'applique aussi à des données. Elle donne aussi une indication visuelle directe de la sensibilité.

L'analyse par régression

L'analyse par régression, dans le contexte de l'analyse de sensibilité, consiste à utiliser les coefficients de régression standardisés comme des mesures directes de la sensibilité. La régression doit être linéaire par rapport aux données. Sinon il est difficile d'interpréter les coefficients standardisés. Cette méthode est donc plus appropriée lorsque le modèle de réponse est en fait linéaire; la linéarité peut être confirmé, par exemple, si le coefficient de détermination est grand. Les avantages de l'analyse par régression sont qu'elle est simple et a un faible coût de calcul.

Décomposition de variance

Les méthodes basées sur la décomposition de variance[24],[25],[26] considèrent les entrées comme des variables aléatoires et s'intéressent seulement à la variance de la sortie. Celle-ci est décomposée en termes attribuables à une entrée ou à un groupe d'entrées. Les indices de sensibilité calculés sont les indices de Sobol : ils représentent la proportion de variance expliqué par une entrée ou un groupe d'entrées.

Pour l'entrée , l'indice de Sobol simple est donné par

où "" et "" désignent la variance et la moyenne.

L'indice de Sobol simple ne prend pas en compte l'incertitude causée par les interactions de avec les autres variables. Pour inclure toutes les interactions dans lesquelles est impliquée on utilise l'indice de Sobol total:

.

Les méthodes basées sur la décomposition de variance permettent d'explorer complètement l'espace des entrées et de prendre en compte les interactions ainsi que les réponses non linéaires. Pour ces raisons, elles sont largement utilisées. Le calcul des indices de Sobol nécessite de nombreuses évaluations du modèle (de l'ordre du millier). Plusieurs estimateurs existent[27],[28],[29]. On recourt généralement à des méta-modèles (émulateurs) pour rendre possible le calcul.

Screening

Les méthodes de "screening" s'appliquent à des modèles de grande dimension pour lesquels on veut distinguer rapidement quelles entrées sont significatives mais sans chercher l'exhaustivité. Il s'agit d'observer l'effet de perturbations élémentaires des entrées sur les sorties. La méthode de Morris[30] est une des plus connues.

Fourier Amplitude Sensitivity Test (FAST)

Le principe est d'approcher la fonction f par des harmoniques en utilisant la transformation de Fourier. Les indices de Sobol sont alors exprimés analytiquement en fonction des coefficients de la série de Fourier[10].

Polynômes du chaos

Le principe est de projeter la fonction f sur une base de polynômes orthogonaux. Les indices de Sobol sont alors exprimés analytiquement en fonction des coefficients de cette décomposition[31].

Références

  1. a et b (en) Bertrand Iooss et Paul Lemaître, Uncertainty Management in Simulation-Optimization of Complex Systems, Springer, Boston, MA, coll. « Operations Research/Computer Science Interfaces Series », (ISBN 9781489975461 et 9781489975478, DOI 10.1007/978-1-4899-7547-8_5, lire en ligne), p. 101–122
  2. A. Saltelli, « Sensitivity Analysis for Importance Assessment », Risk Analysis, vol. 22, no 3,‎ , p. 1–12
  3. A. Saltelli, M. Ratto, T. Andres, F. Campolongo, J. Cariboni, D. Gatelli, M. Saisana et S. Tarantola, Global Sensitivity Analysis: The Primer, John Wiley & Sons,
  4. D. J. Pannell, « Sensitivity Analysis of Normative Economic Models: Theoretical Framework and Practical Strategies », Agricultural Economics, vol. 16,‎ , p. 139–152 (DOI 10.1016/S0169-5150(96)01217-0)
  5. A. Bahremand et F. De Smedt, « Distributed Hydrological Modeling and Sensitivity Analysis in Torysa Watershed, Slovakia », Water Resources Management, vol. 22, no 3,‎ , p. 293–408 (DOI 10.1007/s11269-007-9168-x)
  6. M. Hill, D. Kavetski, M. Clark, M. Ye, M. Arabi, D. Lu, L. Foglia et S. Mehl, « Practical use of computationally frugal model analysis methods », Groundwater, vol. 54, no 2,‎ , p. 159–170 (DOI 10.1111/gwat.12330)
  7. M. Hill et C. Tiedeman, Effective Groundwater Model Calibration, with Analysis of Data, Sensitivities, Predictions, and Uncertainty, John Wiley & Sons,
  8. J. C. Helton, J. D. Johnson, C. J. Salaberry et C. B. Storlie, « Survey of sampling based methods for uncertainty and sensitivity analysis », Reliability Engineering and System Safety, vol. 91,‎ , p. 1175–1209 (DOI 10.1016/j.ress.2005.11.017)
  9. (en) Gaelle Chastaing, Fabrice Gamboa et Clémentine Prieur, « Generalized Hoeffding-Sobol decomposition for dependent variables - application to sensitivity analysis », Electronic Journal of Statistics, vol. 6,‎ , p. 2420–2448 (ISSN 1935-7524, DOI 10.1214/12-EJS749, lire en ligne, consulté le 20 novembre 2017)
  10. a et b Julien JACQUES, Contributions à l'analyse de sensibilité et à l'analyse discriminante généralisée, Université Joseph-Fourier - Grenoble I, (lire en ligne)
  11. A. Saltelli et P. Annoni, « How to avoid a perfunctory sensitivity analysis », Environmental Modeling and Software, vol. 25,‎ , p. 1508–1517 (DOI 10.1016/j.envsoft.2010.04.012)
  12. (en) Fabrice Gamboa, Alexandre Janon, Thierry Klein et Agnès Lagnoux, « Sensitivity analysis for multidimensional and functional outputs », Electronic Journal of Statistics, vol. 8, no 1,‎ , p. 575–603 (ISSN 1935-7524, DOI 10.1214/14-EJS895, lire en ligne, consulté le 20 novembre 2017)
  13. Amandine Marrel, Bertrand Iooss, François Van Dorpe et Elena Volkova, « An efficient methodology for modeling complex computer codes with Gaussian processes », Computational Statistics & Data Analysis, vol. 52, no 10,‎ , p. 4731–4744 (DOI 10.1016/j.csda.2008.03.026, lire en ligne, consulté le 20 novembre 2017)
  14. (en) Amandine Marrel, Bertrand Iooss, Sébastien Da Veiga et Mathieu Ribatet, « Global sensitivity analysis of stochastic computer models with joint metamodels », Statistics and Computing, vol. 22, no 3,‎ , p. 833–847 (ISSN 0960-3174 et 1573-1375, DOI 10.1007/s11222-011-9274-8, lire en ligne, consulté le 20 novembre 2017)
  15. A. O'Hagan, Uncertain Judgements: Eliciting Experts' Probabilities, Chichester, Wiley, (lire en ligne)
  16. J. Sacks, W. J. Welch, T. J. Mitchell et H. P. Wynn, « Design and Analysis of Computer Experiments », Statistical Science, vol. 4,‎ , p. 409–435
  17. J. Campbell et al., « Photosynthetic Control of Atmospheric Carbonyl Sulfide During the Growing Season », Science, vol. 322, no 5904,‎ , p. 1085–1088 (PMID 19008442, DOI 10.1126/science.1164015, Bibcode 2008Sci...322.1085C)
  18. R. Bailis, M. Ezzati et D. Kammen, « Mortality and Greenhouse Gas Impacts of Biomass and Petroleum Energy Futures in Africa », Science, vol. 308,‎ , p. 98–103 (PMID 15802601, DOI 10.1126/science.1106881, Bibcode 2005Sci...308...98B)
  19. J. Murphy et al., « Quantification of modelling uncertainties in a large ensemble of climate change simulations », Nature, vol. 430,‎ , p. 768–772 (PMID 15306806, DOI 10.1038/nature02771, Bibcode 2004Natur.430..768M)
  20. Czitrom, « One-Factor-at-a-Time Versus Designed Experiments », American Statistician, vol. 53, no 2,‎ (lire en ligne)
  21. Dan G. Cacuci, Sensitivity and Uncertainty Analysis: Theory, vol. I, Chapman & Hall
  22. Dan G. Cacuci, Mihaela Ionescu-Bujor et Michael Navon, Sensitivity and Uncertainty Analysis: Applications to Large-Scale Systems, vol. II, Chapman & Hall,
  23. A. Griewank, Evaluating Derivatives, Principles and Techniques of Algorithmic Differentiation, SIAM,
  24. Sobol', I. (1990). Sensitivity estimates for nonlinear mathematical models. Matematicheskoe Modelirovanie 2, 112–118. in Russian, translated in English in Sobol' , I. (1993). Sensitivity analysis for non-linear mathematical models. Mathematical Modeling & Computational Experiment (Engl. Transl.), 1993, 1, 407–414.
  25. T. Homma et A. Saltelli, « Importance measures in global sensitivity analysis of nonlinear models », Reliability Engineering and System Safety, vol. 52,‎ , p. 1–17 (DOI 10.1016/0951-8320(96)00002-6)
  26. Saltelli, A., K. Chan, and M. Scott (Eds.) (2000). Sensitivity Analysis. Wiley Series in Probability and Statistics. New York: John Wiley and Sons.
  27. Alexandre Janon, Thierry Klein, Agnès Lagnoux et Maëlle Nodet, « Asymptotic normality and efficiency of two Sobol index estimators », ESAIM: Probability and Statistics, vol. 18,‎ , p. 342–364 (ISSN 1292-8100 et 1262-3318, DOI 10.1051/ps/2013040, lire en ligne, consulté le 20 novembre 2017)
  28. Andrea Saltelli, Paola Annoni, Ivano Azzini et Francesca Campolongo, « Variance based sensitivity analysis of model output. Design and estimator for the total sensitivity index », Computer Physics Communications, vol. 181, no 2,‎ , p. 259–270 (DOI 10.1016/j.cpc.2009.09.018, lire en ligne, consulté le 20 novembre 2017)
  29. Art B. Owen, « Better Estimation of Small Sobol' Sensitivity Indices », ACM Trans. Model. Comput. Simul., vol. 23, no 2,‎ , p. 11:1–11:17 (ISSN 1049-3301, DOI 10.1145/2457459.2457460, lire en ligne, consulté le 20 novembre 2017)
  30. Max D. Morris, « Factorial Sampling Plans for Preliminary Computational Experiments », Technometrics, vol. 33, no 2,‎ , p. 161–174 (ISSN 0040-1706, DOI 10.1080/00401706.1991.10484804, lire en ligne, consulté le 20 novembre 2017)
  31. Bruno Sudret, « Global sensitivity analysis using polynomial chaos expansions », Reliability Engineering & System Safety, série Bayesian Networks in Dependability, vol. 93, no 7,‎ , p. 964–979 (DOI 10.1016/j.ress.2007.04.002, lire en ligne, consulté le 20 novembre 2017)

Liens externes

  • Revue internationale de la Cinétique Chimique – septembre 2008 – Numéro Spécial sur l'Analyse de Sensibilité
  • Ingénierie de la fiabilité et de la Sécurité du Système (Volume 91, 2006) – numéro spécial sur l'analyse de sensibilité
  • la page web sur l'analyse de Sensibilité – (Centre Commun de Recherche de la Commission Européenne)
  • SimLab, le logiciel gratuit pour global d'analyse de sensibilité le Centre Commun de Recherche
  • L'Analyse de sensibilité Excel Add-In est un logiciel gratuit (pour l'usage privé et commercial) Excel Add-In qui permet simple de l'échantillon en fonction de l'analyse de sensibilité s'exécute
  • MUCM Projet – de nombreuses ressources de l'incertitude et de l'analyse de sensibilité du calcul exigeant des modèles.
  • GEM-SA – un programme pour la réalisation de l'analyse de sensibilité avec des processus Gaussien.
  • SALib Analyse de Sensibilité de la Bibliothèque en Python (Numpy). Contient Sobol, Morris, Factoriel Fractionnaire et des méthodes FAST.
  • OpenTURNS : initiative open source pour le traitement des incertitudes, des risques et des statistiques. Code multiplateforme (C++, Python) pour faire des méta-modèles.
  • sensitivity : package R contenant de nombreux estimateurs d'indices de Sobol.