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ées 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 devraient 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 connaître 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 connaît 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 soient fortement corrélées. Les corrélations entre les entrées doivent alors être prises en compte dans l'analyse[9].
- La non-linéarité : selon que le code à analyser est linéaire ou non, on préférera différentes techniques (score de régression linéaire quand il est linéaire, scores fondés sur la variance quand il ne l'est pas)[10].
- Interactions : lorsque les entrées ont seulement des effets additifs, on dit qu'elles ne sont pas en interaction. Certaines techniques simples (nuage de point, OAT) sont alors applicables[11]. Quand ce n'est pas le cas, d'autres techniques sont plus indiquées (calcul des indices de Sobol simples et totaux).
- Sorties multiples ou fonctionnelle : généralement introduite pour des codes à une seule sortie, l'analyse de sensibilité s'étend aux cas où la sortie Y est un vecteur, une fonction[12], une série temporelle ou un champ.
- À partir de données : il arrive que l'on n'ait pas la possibilité d'évaluer le code sur tous les points désirés. 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 évaluations du code avec les mêmes 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ées de 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 à une 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 :
- 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].
- 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 tâche est un des bénéfices de l'analyse de sensibilité.
- Exécuter le modèle un certain nombre de fois en suivant un plan d'expérience[16] (différent suivant l'approche choisie et l'incertitude des entrées).
- Calculer la mesure de sensibilité choisie pour le problème.
Dans certains cas, cette procédure sera répétée, par exemple en hautes-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ées. Ces méthodologies se chevauchent parfois et d'autres mesures de sensibilité, adaptées aux 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 à faire ainsi pour chacune 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ée. 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ée par les modélisateurs pour des raisons pratiques. Lorsque le modèle ne converge pas 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. Semblables à OAT, les méthodes locales n'essaient 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 a é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ée, 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ée 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 l'espérance (ou moyenne pondérée).
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 :où .
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, 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 une fonction 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 d'intérêt 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
- ↑ 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 978-1-4899-7546-1 et 9781489975478, DOI 10.1007/978-1-4899-7547-8_5, lire en ligne), p. 101–122
- ↑ A. Saltelli, « Sensitivity Analysis for Importance Assessment », Risk Analysis, vol. 22, no 3, , p. 1–12
- ↑ 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,
- ↑ 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)
- ↑ 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)
- ↑ 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)
- ↑ M. Hill et C. Tiedeman, Effective Groundwater Model Calibration, with Analysis of Data, Sensitivities, Predictions, and Uncertainty, John Wiley & Sons,
- ↑ 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)
- ↑ (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 )
- ↑ 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)
- ↑ 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)
- ↑ (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 )
- ↑ 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 )
- ↑ (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 )
- ↑ A. O'Hagan et al., Uncertain Judgements : Eliciting Experts' Probabilities, Chichester, Wiley, (lire en ligne)
- ↑ 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
- ↑ 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)
- ↑ 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)
- ↑ 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)
- ↑ Czitrom, « One-Factor-at-a-Time Versus Designed Experiments », American Statistician, vol. 53, no 2, (lire en ligne)
- ↑ Dan G. Cacuci, Sensitivity and Uncertainty Analysis : Theory, vol. I, Chapman & Hall
- ↑
- ↑ A. Griewank, Evaluating Derivatives, Principles and Techniques of Algorithmic Differentiation, SIAM,
- ↑ 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.
- ↑ 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)
- ↑ Saltelli, A., K. Chan, and M. Scott (Eds.) (2000). Sensitivity Analysis. Wiley Series in Probability and Statistics. New York: John Wiley and Sons.
- ↑ 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 )
- ↑ 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 )
- ↑ 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 )
- ↑ 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 )
- ↑ Bruno Sudret, « Global sensitivity analysis using polynomial chaos expansions », Reliability Engineering & System Safety, bayesian Networks in Dependability, vol. 93, no 7, , p. 964–979 (DOI 10.1016/j.ress.2007.04.002, lire en ligne, consulté le )
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.
Portail des probabilités et de la statistique