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: 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
51 Les commandes requises générales, disponibles dans l'interface en édition, sont
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*".
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*".
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)`.
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
83 Les options de l'algorithme sont les suivantes:
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.
89 Exemple : ``{"Quantile":0.5}``
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.
97 Exemple : ``{"MaximumNumberOfSteps":100}``
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.
105 Exemple : ``{"CostDecrementTolerance":1.e-7}``
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"].
117 Exemple : ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
119 *Astuce pour cet algorithme :*
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.
127 Informations et variables disponibles à la fin de l'algorithme
128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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`.
138 Les sorties non conditionnelles de l'algorithme sont les suivantes:
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
145 Exemple : ``Xa = ADD.get("Analysis")[-1]``
148 *Liste de valeurs*. Chaque élément est une valeur de fonctionnelle d'écart
151 Exemple : ``J = ADD.get("CostFunctionJ")[:]``
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.
157 Exemple : ``Jb = ADD.get("CostFunctionJb")[:]``
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.
163 Exemple : ``Jo = ADD.get("CostFunctionJo")[:]``
165 Les sorties conditionnelles de l'algorithme sont les suivantes:
168 *Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
169 l'ébauche et l'état optimal.
171 Exemple : ``bma = ADD.get("BMA")[-1]``
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.
177 Exemple : ``Xs = ADD.get("CurrentState")[:]``
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
184 Exemple : ``d = ADD.get("Innovation")[-1]``
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.
190 Exemple : ``oma = ADD.get("OMA")[-1]``
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.
196 Exemple : ``omb = ADD.get("OMB")[-1]``
198 SimulatedObservationAtBackground
199 *Liste de vecteurs*. Chaque élément est un vecteur d'observation simulé à
200 partir de l'ébauche :math:`\mathbf{x}^b`.
202 Exemple : ``hxb = ADD.get("SimulatedObservationAtBackground")[-1]``
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.
208 Exemple : ``Ys = ADD.get("SimulatedObservationAtCurrentState")[-1]``
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`.
214 Exemple : ``hxa = ADD.get("SimulatedObservationAtOptimum")[-1]``
219 Références bibliographiques :