« Analyse de sensibilité » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Bouliech (discuter | contributions)
Ce n'est pas de la psychologie ni de la sociologie.
Bouliech (discuter | contributions)
m Ajout d'une reference vers Iooss et Lemaitre
Ligne 1 : Ligne 1 :
'''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<ref name="Risk Analysis">{{cite journal|last=Saltelli|first=A.|year=2002|title=Sensitivity Analysis for Importance Assessment|journal=Risk Analysis|volume=22|issue=3|pages=1–12}}</ref><ref name="Primer">{{cite book|last=Saltelli|first=A.|last2=Ratto|first2=M.|last3=Andres|first3=T.|last4=Campolongo|first4=F.|last5=Cariboni|first5=J.|last6=Gatelli|first6=D.|last7=Saisana|first7=M.|last8=Tarantola|first8=S.|year=2008|title=Global Sensitivity Analysis: The Primer|location=|publisher=John Wiley & Sons}}</ref>. Une pratique est l'analyse de l'incertitude, qui met davantage l'accent sur la quantification de l'incertitude et de [[Propagation des incertitudes|la propagation de l'incertitude]]; idéalement, l'incertitude et l'analyse de sensibilité vont de paire.
'''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<ref name=":0">{{Ouvrage|langue=en|prénom1=Bertrand|nom1=Iooss|prénom2=Paul|nom2=Lemaître|titre=Uncertainty Management in Simulation-Optimization of Complex Systems|passage=101–122|éditeur=Springer, Boston, MA|collection=Operations Research/Computer Science Interfaces Series|date=2015|isbn=9781489975461|isbn2=9781489975478|doi=10.1007/978-1-4899-7547-8_5|lire en ligne=https://link.springer.com/chapter/10.1007/978-1-4899-7547-8_5|consulté le=2017-11-20}}</ref><ref name="Risk Analysis">{{cite journal|last=Saltelli|first=A.|year=2002|title=Sensitivity Analysis for Importance Assessment|journal=Risk Analysis|volume=22|issue=3|pages=1–12}}</ref><ref name="Primer">{{cite book|last=Saltelli|first=A.|last2=Ratto|first2=M.|last3=Andres|first3=T.|last4=Campolongo|first4=F.|last5=Cariboni|first5=J.|last6=Gatelli|first6=D.|last7=Saisana|first7=M.|last8=Tarantola|first8=S.|year=2008|title=Global Sensitivity Analysis: The Primer|location=|publisher=John Wiley & Sons}}</ref>


L'analyse de sensibilité peut être utile pour beaucoup d'applications<ref name="Examples">{{cite journal|last=Pannell|first=D. J.|year=1997|title=Sensitivity Analysis of Normative Economic Models: Theoretical Framework and Practical Strategies|journal=Agricultural Economics|volume=16|issue=|pages=139–152|doi=10.1016/S0169-5150(96)01217-0}}</ref>:
L'analyse de sensibilité peut être utile pour beaucoup d'applications<ref name="Examples">{{cite journal|last=Pannell|first=D. J.|year=1997|title=Sensitivity Analysis of Normative Economic Models: Theoretical Framework and Practical Strategies|journal=Agricultural Economics|volume=16|issue=|pages=139–152|doi=10.1016/S0169-5150(96)01217-0}}</ref>:
Ligne 38 : Ligne 38 :
# Exécutez le modèle un certain nombre de fois en suivant un[[ plan d'expériences]]<ref>{{cite journal|last=Sacks|first=J.|first2=W. J.|last2=Welch|first3=T. J.|last3=Mitchell|first4=H. P.|last4=Wynn|year=1989|title=Design and Analysis of Computer Experiments|journal=Statistical Science|volume=4|issue=|pages=409–435|doi=}}</ref> (différent suivant l'approche choisie et l'incertitude des entrées).
# Exécutez le modèle un certain nombre de fois en suivant un[[ plan d'expériences]]<ref>{{cite journal|last=Sacks|first=J.|first2=W. J.|last2=Welch|first3=T. J.|last3=Mitchell|first4=H. P.|last4=Wynn|year=1989|title=Design and Analysis of Computer Experiments|journal=Statistical Science|volume=4|issue=|pages=409–435|doi=}}</ref> (différent suivant l'approche choisie et l'incertitude des entrées).
# Calculer la mesure de sensibilité choisie pour le problème.
# 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.
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<ref name=":0" />.


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.
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.

Version du 20 novembre 2017 à 16:22

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]

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 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édible, compréhensible, irrésistible 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ètre 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 f, (appelée "modèle mathématique" ou "code"). Elle peut être vue comme une boîte noire dont on ne connait que sa sortie Y. Ses entrées sont notées X_1,...,X_p. Il s'agit de paramètres de la boîte noire qui ont un impact sur la sortie du système.

Y=f(X) avec X=(X_1,...,X_p)


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 f. Les plus courantes sont

  • Coût de calcul: sauf dans de très rares cas, faire une analyse de sensibilité requiert d'évaluer f 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 la 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.
  • 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).
  • 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[9]. 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 ou une série temporelle.
  • 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").
  • 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.

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.[10]
  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é.
  3. Exécutez le modèle un certain nombre de fois en suivant unplan d'expériences[11] (différent suivant l'approche choisie et l'incertitude des entrées).
  4. 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 et 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[12][13][14]. 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. Lorque 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[15]. De plus, le choix de la valeur nominale et de l'échantillonnage peuvent poser problème. Par exemple, sur le modèle Y= sin(X_1)cos(X_2) avec la valeur nominale (0,0), l'influence de X_2 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 X0 indique que la dérivée est pris à un point fixe dans l'espace des entrées (d'où l'adjectif "local"). Modélisation adjointe[16][17] et Différenciation automatisée[18] 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 grande. 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[19][20][21] considèrent les entrées comme des variable aléatoires et s'intéressent seulement à la variance de la sortie. Celle-ci est décomposée en termes attribuable à une entrée ou à un groupe d'entrées. La sensibilité de la sortie d'une variable d'entrée est donc mesurée par la somme de la variance de la production causée par une entrée. Ceux-ci peuvent être exprimées sous forme d'attentes, c'est à dire en considérant un modèle Y=f(X) pour X={X1, X2, ... Xk}, une mesure de la sensibilité de la ième variable Xi est donné comme,

où "Var" et "E" désignent la variance et de la valeur attendue des opérateurs respectivement, et X~i désigne l'ensemble de toutes les variables d'entrée à l'exception de Xi. Ce terme mesure la contribution de Xi seul. Il est connu comme l'indice de Sobol simple de premier ordre. Surtout, il ne permet pas de mesurer l'incertitude causée par les interactions avec les autres variables. Une autre mesure, connu comme l'indice de Sobol total de premier ordre, donne la variance totale de Y causée par Xi et de ses interactions avec les autres variables d'entrée. Les deux quantités sont généralement normalisées en les divisant par Var(Y).

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). 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 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.

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.

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. (en) 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. (en) 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. 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)
  10. (en) A. O'Hagan, Uncertain Judgements: Eliciting Experts' Probabilities, Chichester, Wiley, (lire en ligne)
  11. 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
  12. J. Campbell, « 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)
  13. 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)
  14. J. Murphy, « 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)
  15. Czitrom, « One-Factor-at-a-Time Versus Designed Experiments », American Statistician, vol. 53, no 2,‎ (lire en ligne)
  16. (en) Dan G. Cacuci, Sensitivity and Uncertainty Analysis: Theory, vol. I, Chapman & Hall
  17. (en) Dan G. Cacuci, Mihaela Ionescu-Bujor et Michael Navon, Sensitivity and Uncertainty Analysis: Applications to Large-Scale Systems, vol. II, Chapman & Hall,
  18. (en) A. Griewank, Evaluating Derivatives, Principles and Techniques of Algorithmic Differentiation, SIAM,
  19. 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.
  20. 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)
  21. Saltelli, A., K. Chan, and M. Scott (Eds.) (2000). Sensitivity Analysis. Wiley Series in Probability and Statistics. New York: John Wiley and Sons.

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.