2 Copyright (C) 2008-2015 EDF R&D
4 This file is part of SALOME ADAO module.
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with this library; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
24 .. index:: single: QuantileRegression
25 .. _section_ref_algorithm_QuantileRegression:
27 Algorithme de calcul "*QuantileRegression*"
28 -------------------------------------------
33 Cet algorithme permet d'estimer les quantiles conditionnels de la distribution
34 des paramètres d'état, exprimés à l'aide d'un modèle des variables observées. Ce
35 sont donc les quantiles sur les variables observées qui vont permettre de
36 déterminer les paramètres de modèles satisfaisant aux conditions de quantiles.
38 Commandes requises et optionnelles
39 ++++++++++++++++++++++++++++++++++
41 .. index:: single: Background
42 .. index:: single: Observation
43 .. index:: single: ObservationOperator
44 .. index:: single: Quantile
45 .. index:: single: Minimizer
46 .. index:: single: MaximumNumberOfSteps
47 .. index:: single: CostDecrementTolerance
48 .. index:: single: StoreSupplementaryCalculations
50 Les commandes requises générales, disponibles dans l'interface en édition, sont
54 *Commande obligatoire*. Elle définit le vecteur d'ébauche ou
55 d'initialisation, noté précédemment :math:`\mathbf{x}^b`. Sa valeur est
56 définie comme un objet de type "*Vector*" ou de type "*VectorSerie*".
59 *Commande obligatoire*. Elle définit le vecteur d'observation utilisé en
60 assimilation de données ou en optimisation, et noté précédemment
61 :math:`\mathbf{y}^o`. Sa valeur est définie comme un objet de type "*Vector*"
62 ou de type "*VectorSerie*".
65 *Commande obligatoire*. Elle indique l'opérateur d'observation, noté
66 précédemment :math:`H`, qui transforme les paramètres d'entrée
67 :math:`\mathbf{x}` en résultats :math:`\mathbf{y}` qui sont à comparer aux
68 observations :math:`\mathbf{y}^o`. Sa valeur est définie comme un objet de
69 type "*Function*" ou de type "*Matrix*". Dans le cas du type "*Function*",
70 différentes formes fonctionnelles peuvent être utilisées, comme décrit dans
71 la section :ref:`section_ref_operator_requirements`. Si un contrôle
72 :math:`U` est inclus dans le modèle d'observation, l'opérateur doit être
73 appliqué à une paire :math:`(X,U)`.
75 Les commandes optionnelles générales, disponibles dans l'interface en édition,
76 sont indiquées dans la :ref:`section_ref_assimilation_keywords`. En particulier,
77 la commande optionnelle "*AlgorithmParameters*" permet d'indiquer les options
78 particulières, décrites ci-après, de l'algorithme. On se reportera à la
79 :ref:`section_ref_options_AlgorithmParameters` pour le bon usage de cette
82 Les options de l'algorithme sont les suivantes:
85 Cette clé permet de définir la valeur réelle du quantile recherché, entre 0
86 et 1. La valeur par défaut est 0.5, correspondant à la médiane.
88 Exemple : ``{"Quantile":0.5}``
91 Cette clé indique le nombre maximum d'itérations possibles en optimisation
92 itérative. Le défaut est 15000, qui est très similaire à une absence de
93 limite sur les itérations. Il est ainsi recommandé d'adapter ce paramètre
94 aux besoins pour des problèmes réels.
96 Exemple : ``{"MaximumNumberOfSteps":100}``
98 CostDecrementTolerance
99 Cette clé indique une valeur limite, conduisant à arrêter le processus
100 itératif d'optimisation lorsque la fonction coût décroît moins que cette
101 tolérance au dernier pas. Le défaut est de 1.e-6, et il est recommandé de
102 l'adapter aux besoins pour des problèmes réels.
104 Exemple : ``{"CostDecrementTolerance":1.e-7}``
106 StoreSupplementaryCalculations
107 Cette liste indique les noms des variables supplémentaires qui peuvent être
108 disponibles à la fin de l'algorithme. Cela implique potentiellement des
109 calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
110 aucune de ces variables n'étant calculée et stockée par défaut. Les noms
111 possibles sont dans la liste suivante : ["BMA", "CostFunctionJ",
112 "CurrentState", "OMA", "OMB", "Innovation",
113 "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState",
114 "SimulatedObservationAtOptimum"].
116 Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
118 *Astuce pour cet algorithme :*
120 Comme les commandes *"BackgroundError"* et *"ObservationError"* sont
121 requises pour TOUS les algorithmes de calcul dans l'interface, vous devez
122 fournir une valeur, malgré le fait que ces commandes ne sont pas requises
123 pour cet algorithme, et ne seront pas utilisées. La manière la plus simple
124 est de donner "1" comme un STRING pour les deux.
126 Informations et variables disponibles à la fin de l'algorithme
127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
129 En sortie, après exécution de l'algorithme, on dispose d'informations et de
130 variables issues du calcul. La description des
131 :ref:`section_ref_output_variables` indique la manière de les obtenir par la
132 méthode nommée ``get`` de la variable "*ADD*" du post-processing. Les variables
133 d'entrée, mises à disposition de l'utilisateur en sortie pour faciliter
134 l'écriture des procédures de post-processing, sont décrites dans
135 l':ref:`subsection_r_o_v_Inventaire`.
137 Les sorties non conditionnelles de l'algorithme sont les suivantes:
140 *Liste de vecteurs*. Chaque élément est un état optimal :math:`\mathbf{x}*`
141 en optimisation ou une analyse :math:`\mathbf{x}^a` en assimilation de
144 Exemple : ``Xa = ADD.get("Analysis")[-1]``
147 *Liste de valeurs*. Chaque élément est une valeur de fonctionnelle d'écart
150 Exemple : ``J = ADD.get("CostFunctionJ")[:]``
153 *Liste de valeurs*. Chaque élément est une valeur de fonctionnelle d'écart
154 :math:`J^b`, c'est-à-dire de la partie écart à l'ébauche.
156 Exemple : ``Jb = ADD.get("CostFunctionJb")[:]``
159 *Liste de valeurs*. Chaque élément est une valeur de fonctionnelle d'écart
160 :math:`J^o`, c'est-à-dire de la partie écart à l'observation.
162 Exemple : ``Jo = ADD.get("CostFunctionJo")[:]``
164 Les sorties conditionnelles de l'algorithme sont les suivantes:
167 *Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
168 l'ébauche et l'état optimal.
170 Exemple : ``bma = ADD.get("BMA")[-1]``
173 *Liste de vecteurs*. Chaque élément est un vecteur d'état courant utilisé
174 au cours du déroulement de l'algorithme d'optimisation.
176 Exemple : ``Xs = ADD.get("CurrentState")[:]``
179 *Liste de vecteurs*. Chaque élément est un vecteur d'innovation, qui est
180 en statique l'écart de l'optimum à l'ébauche, et en dynamique l'incrément
183 Exemple : ``d = ADD.get("Innovation")[-1]``
186 *Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
187 l'observation et l'état optimal dans l'espace des observations.
189 Exemple : ``oma = ADD.get("OMA")[-1]``
192 *Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
193 l'observation et l'état d'ébauche dans l'espace des observations.
195 Exemple : ``omb = ADD.get("OMB")[-1]``
197 SimulatedObservationAtBackground
198 *Liste de vecteurs*. Chaque élément est un vecteur d'observation simulé à
199 partir de l'ébauche :math:`\mathbf{x}^b`.
201 Exemple : ``hxb = ADD.get("SimulatedObservationAtBackground")[-1]``
203 SimulatedObservationAtCurrentState
204 *Liste de vecteurs*. Chaque élément est un vecteur observé à l'état courant,
205 c'est-à-dire dans l'espace des observations.
207 Exemple : ``Ys = ADD.get("SimulatedObservationAtCurrentState")[-1]``
209 SimulatedObservationAtOptimum
210 *Liste de vecteurs*. Chaque élément est un vecteur d'observation simulé à
211 partir de l'analyse ou de l'état optimal :math:`\mathbf{x}^a`.
213 Exemple : ``hxa = ADD.get("SimulatedObservationAtOptimum")[-1]``
218 Références bibliographiques :