Salome HOME
Documentation and source improvements
[modules/adao.git] / doc / fr / ref_algorithm_QuantileRegression.rst
1 ..
2    Copyright (C) 2008-2015 EDF R&D
3
4    This file is part of SALOME ADAO module.
5
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.
10
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.
15
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
19
20    See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21
22    Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
23
24 .. index:: single: QuantileRegression
25 .. _section_ref_algorithm_QuantileRegression:
26
27 Algorithme de calcul "*QuantileRegression*"
28 -------------------------------------------
29
30 Description
31 +++++++++++
32
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.
37
38 Commandes requises et optionnelles
39 ++++++++++++++++++++++++++++++++++
40
41 .. index:: single: AlgorithmParameters
42 .. index:: single: Background
43 .. index:: single: Observation
44 .. index:: single: ObservationOperator
45 .. index:: single: Quantile
46 .. index:: single: Minimizer
47 .. index:: single: MaximumNumberOfSteps
48 .. index:: single: CostDecrementTolerance
49 .. index:: single: StoreSupplementaryCalculations
50
51 Les commandes requises générales, disponibles dans l'interface en édition, sont
52 les suivantes:
53
54   Background
55     *Commande obligatoire*. Elle définit le vecteur d'ébauche ou
56     d'initialisation, noté précédemment :math:`\mathbf{x}^b`. Sa valeur est
57     définie comme un objet de type "*Vector*" ou de type "*VectorSerie*".
58
59   Observation
60     *Commande obligatoire*. Elle définit le vecteur d'observation utilisé en
61     assimilation de données ou en optimisation, et noté précédemment
62     :math:`\mathbf{y}^o`. Sa valeur est définie comme un objet de type "*Vector*"
63     ou de type "*VectorSerie*".
64
65   ObservationOperator
66     *Commande obligatoire*. Elle indique l'opérateur d'observation, noté
67     précédemment :math:`H`, qui transforme les paramètres d'entrée
68     :math:`\mathbf{x}` en résultats :math:`\mathbf{y}` qui sont à comparer aux
69     observations :math:`\mathbf{y}^o`. Sa valeur est définie comme un objet de
70     type "*Function*" ou de type "*Matrix*". Dans le cas du type "*Function*",
71     différentes formes fonctionnelles peuvent être utilisées, comme décrit dans
72     la section :ref:`section_ref_operator_requirements`. Si un contrôle
73     :math:`U` est inclus dans le modèle d'observation, l'opérateur doit être
74     appliqué à une paire :math:`(X,U)`.
75
76 Les commandes optionnelles générales, disponibles dans l'interface en édition,
77 sont indiquées dans la :ref:`section_ref_assimilation_keywords`. De plus, les
78 paramètres de la commande "*AlgorithmParameters*" permettent d'indiquer les options
79 particulières, décrites ci-après, de l'algorithme. On se reportera à la
80 :ref:`section_ref_options_Algorithm_Parameters` pour le bon usage de cette
81 commande.
82
83 Les options de l'algorithme sont les suivantes:
84
85   Quantile
86     Cette clé permet de définir la valeur réelle du quantile recherché, entre 0
87     et 1. La valeur par défaut est 0.5, correspondant à la médiane.
88
89     Exemple : ``{"Quantile":0.5}``
90
91   MaximumNumberOfSteps
92     Cette clé indique le nombre maximum d'itérations possibles en optimisation
93     itérative. Le défaut est 15000, qui est très similaire à une absence de
94     limite sur les itérations. Il est ainsi recommandé d'adapter ce paramètre
95     aux besoins pour des problèmes réels.
96
97     Exemple : ``{"MaximumNumberOfSteps":100}``
98
99   CostDecrementTolerance
100     Cette clé indique une valeur limite, conduisant à arrêter le processus
101     itératif d'optimisation lorsque la fonction coût décroît moins que cette
102     tolérance au dernier pas. Le défaut est de 1.e-6, et il est recommandé de
103     l'adapter aux besoins pour des problèmes réels.
104
105     Exemple : ``{"CostDecrementTolerance":1.e-7}``
106
107   StoreSupplementaryCalculations
108     Cette liste indique les noms des variables supplémentaires qui peuvent être
109     disponibles à la fin de l'algorithme. Cela implique potentiellement des
110     calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
111     aucune de ces variables n'étant calculée et stockée par défaut. Les noms
112     possibles sont dans la liste suivante : ["BMA", "CostFunctionJ",
113     "CurrentState", "OMA", "OMB", "Innovation",
114     "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState",
115     "SimulatedObservationAtOptimum"].
116
117     Exemple : ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
118
119 *Astuce pour cet algorithme :*
120
121     Comme les commandes *"BackgroundError"* et *"ObservationError"* sont
122     requises pour TOUS les algorithmes de calcul dans l'interface, vous devez
123     fournir une valeur, malgré le fait que ces commandes ne sont pas requises
124     pour cet algorithme, et ne seront pas utilisées. La manière la plus simple
125     est de donner "1" comme un STRING pour les deux.
126
127 Informations et variables disponibles à la fin de l'algorithme
128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
129
130 En sortie, après exécution de l'algorithme, on dispose d'informations et de
131 variables issues du calcul. La description des
132 :ref:`section_ref_output_variables` indique la manière de les obtenir par la
133 méthode nommée ``get`` de la variable "*ADD*" du post-processing. Les variables
134 d'entrée, mises à disposition de l'utilisateur en sortie pour faciliter
135 l'écriture des procédures de post-processing, sont décrites dans
136 l':ref:`subsection_r_o_v_Inventaire`.
137
138 Les sorties non conditionnelles de l'algorithme sont les suivantes:
139
140   Analysis
141     *Liste de vecteurs*. Chaque élément est un état optimal :math:`\mathbf{x}*`
142     en optimisation ou une analyse :math:`\mathbf{x}^a` en assimilation de
143     données.
144
145     Exemple : ``Xa = ADD.get("Analysis")[-1]``
146
147   CostFunctionJ
148     *Liste de valeurs*. Chaque élément est une valeur de fonctionnelle d'écart
149     :math:`J`.
150
151     Exemple : ``J = ADD.get("CostFunctionJ")[:]``
152
153   CostFunctionJb
154     *Liste de valeurs*. Chaque élément est une valeur de fonctionnelle d'écart
155     :math:`J^b`, c'est-à-dire de la partie écart à l'ébauche.
156
157     Exemple : ``Jb = ADD.get("CostFunctionJb")[:]``
158
159   CostFunctionJo
160     *Liste de valeurs*. Chaque élément est une valeur de fonctionnelle d'écart
161     :math:`J^o`, c'est-à-dire de la partie écart à l'observation.
162
163     Exemple : ``Jo = ADD.get("CostFunctionJo")[:]``
164
165 Les sorties conditionnelles de l'algorithme sont les suivantes:
166
167   BMA
168     *Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
169     l'ébauche et l'état optimal.
170
171     Exemple : ``bma = ADD.get("BMA")[-1]``
172
173   CurrentState
174     *Liste de vecteurs*. Chaque élément est un vecteur d'état courant utilisé
175     au cours du déroulement de l'algorithme d'optimisation.
176
177     Exemple : ``Xs = ADD.get("CurrentState")[:]``
178
179   Innovation
180     *Liste de vecteurs*. Chaque élément est un vecteur d'innovation, qui est
181     en statique l'écart de l'optimum à l'ébauche, et en dynamique l'incrément
182     d'évolution.
183
184     Exemple : ``d = ADD.get("Innovation")[-1]``
185
186   OMA
187     *Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
188     l'observation et l'état optimal dans l'espace des observations.
189
190     Exemple : ``oma = ADD.get("OMA")[-1]``
191
192   OMB
193     *Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
194     l'observation et l'état d'ébauche dans l'espace des observations.
195
196     Exemple : ``omb = ADD.get("OMB")[-1]``
197
198   SimulatedObservationAtBackground
199     *Liste de vecteurs*. Chaque élément est un vecteur d'observation simulé à
200     partir de l'ébauche :math:`\mathbf{x}^b`.
201
202     Exemple : ``hxb = ADD.get("SimulatedObservationAtBackground")[-1]``
203
204   SimulatedObservationAtCurrentState
205     *Liste de vecteurs*. Chaque élément est un vecteur observé à l'état courant,
206     c'est-à-dire dans l'espace des observations.
207
208     Exemple : ``Ys = ADD.get("SimulatedObservationAtCurrentState")[-1]``
209
210   SimulatedObservationAtOptimum
211     *Liste de vecteurs*. Chaque élément est un vecteur d'observation simulé à
212     partir de l'analyse ou de l'état optimal :math:`\mathbf{x}^a`.
213
214     Exemple : ``hxa = ADD.get("SimulatedObservationAtOptimum")[-1]``
215
216 Voir aussi
217 ++++++++++
218
219 Références bibliographiques :
220   - [Buchinsky98]_
221   - [Cade03]_
222   - [Koenker00]_
223   - [Koenker01]_
224   - [WikipediaQR]_