Estimation paramètres modèle non linéaire
Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
-
remi92000
- Messages: 2
- Enregistré le: 20 Aoû 2012, 23:02
-
par remi92000 » 20 Aoû 2012, 23:19
Bonjour,
Mon objectif est d'estimer les paramètres A et B d'un modèle. Celui ci est non linéaire et de la forme suivante :
y(x)=k.exp(Ax+B)
Je passe donc au ln afin d'estimer A et B par une régression linéaire, jusque là pas de problème.
Mais si j'estime A et B en utilisant un solveur (par exemple le solveur d'Excel) par la méthode des moindres carrés, lorsque je minimise la somme :
(ymesuré-k.exp(Ax+B))^2
en ajustant les paramètres A et B, je trouve des valeurs différentes de ceux de la régression linéaire. Cela me semble normal mais mon problème étant que je veux la meilleure estimation je souhaiterait savoir qu'elle est la plus juste ?
La regression linéaire me semble plus rigoureuse mais j'ai de moins bons résultats or mon objectif est quand même de prédire au mieux mes y mesurés.
Merci.
-
Skullkid
- Habitué(e)
- Messages: 3075
- Enregistré le: 08 Aoû 2007, 19:08
-
par Skullkid » 21 Aoû 2012, 06:42
Bonjour, c'est normal d'obtenir des résultats différents, puisque minimiser la somme des (ln(y) - ln(k) - Ax - B)² ça n'est pas la même chose que minimiser la somme des (y - k*exp(Ax + B))². Puisque ce que tu cherches à approcher c'est y, ce que tu cherches à minimiser pour faire des moindres carrés c'est la somme des (y - k*exp(Ax + B))². Regarde donc la valeur de cette somme avec tes deux jeux de paramètres (A,B) et choisit le jeu qui te fournit la valeur la plus petite. Si Excel a bien fait son boulot, les meilleures valeurs seront celles obtenues sans passer par la régression linéaire.
-
remi92000
- Messages: 2
- Enregistré le: 20 Aoû 2012, 23:02
-
par remi92000 » 21 Aoû 2012, 08:19
Ok merci pour la reponse.
Mais j'ai du mal a saisir quand est ce qu il faut utiliser la regression lineaire. Il me semble que generelement on utilise la forme log pour estimer des parametres lorsqu on a une exponentielle.
-
Skullkid
- Habitué(e)
- Messages: 3075
- Enregistré le: 08 Aoû 2007, 19:08
-
par Skullkid » 21 Aoû 2012, 08:55
Tout dépend de ce que tu veux obtenir et des moyens que tu as à disposition.
Pour un problème linéaire, on sait comment trouver LE meilleur jeu de paramètres au sens des moindres carrés. Dans ton cas, tu sais trouver A et B qui minimisent la somme des (ln(y) - ln(k) - Ax - B)². Mais ce jeu de paramètres n'a aucune raison de minimiser la somme des (y - k*exp(Ax+B))², donc la linéarisation du problème et l'utilisation des moindres carrés linéaires ne te fournit qu'une estimation parmi d'autres, sans aucune propriété d'optimalité. Il arrive souvent qu'on soit satisfait de cette estimation non optimale, notamment parce qu'on se dit que si x n'est pas très loin de y alors exp(x) ne doit pas être très loin de exp(y).
Pour les problèmes non linéaires, on ne sait pas en général trouver le meilleur jeu de paramètres au sens des moindres carrés (d'ailleurs un tel jeu n'existe pas forcément), cependant il y a des algorithmes (Gauss-Newton, descente du gradient, Levenberg-Marquardt, ... je ne sais pas ce qu'utilise Excel) qui permettent de traiter le problème. Ces algorithmes demandent souvent qu'on leur donne une estimation de départ qu'ils vont ensuite "raffiner" pour chercher le minimum, donc il est fréquent d'utiliser l'estimation obtenue par linéarisation comme estimation de départ. Le principal souci c'est que ces algorithmes sont en général plus longs à exécuter.
-
ghozlanib
- Messages: 5
- Enregistré le: 04 Juin 2013, 01:08
-
par ghozlanib » 04 Juin 2013, 01:09
Bonjour
Jai un petit souci qui je pense à plus sa place dans le forum mathématiques quinformatique.
Jessaye actuellement de réaliser une régression non linéaire multiple. on doit établir une relation de la forme: Y=C*X1^a1*X2^a2*X3^a3*X4^a4
on applique la fonction log pour linéariser la relation précédente. Selon l'auteur d'un article que j'utilise pour valider mes résultats
il a introduit un variable intermédiaire X=X1^b1*X2^b2*X3^b3*X4^b4 et je ne vois pas comment il a déterminé b1, b2 , b3 et b4 et puis il a
présenté Y en fonction de X (Y=f(X)) et le problème se se ramène à une simple régression. il a établit que Y=C*X^m et donc on faisont le produit il a déterminé a1,a2, a3 et a4.
Ma question est donc : comment et avec quel moyen je peux adopter cette démarche? (avec l'Excel n'abouti à rien)
En espérant que mon sujet passionne
Merci à tous
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 04 Juin 2013, 11:13
Bonjour,
La forme Y=C*X1^a1*X2^a2*X3^a3*X4^a4 est tout à fait classique et se transforme en ln(Y) = ln(C)+ a1 ln(X1) + a2 ln(X2) + etc.
On applique la méthode des moindres carrés, et on abouti à un système linéaire de 5 équations à 5 inconnues.
Comme les calculs sont assez long il vaut mieux écrire un petit module une fois pour toutes.
L'auteur de votre article a dû vouloir parler de changement de variable et non de variables intermédiaires, et d'ailleurs je ne comprends pas la suite.
-
ghozlanib
- Messages: 5
- Enregistré le: 04 Juin 2013, 01:08
-
par ghozlanib » 04 Juin 2013, 12:06
Dlzlogic a écrit:Bonjour,
La forme Y=C*X1^a1*X2^a2*X3^a3*X4^a4 est tout à fait classique et se transforme en ln(Y) = ln(C)+ a1 ln(X1) + a2 ln(X2) + etc.
On applique la méthode des moindres carrés, et on abouti à un système linéaire de 5 équations à 5 inconnues.
Comme les calculs sont assez long il vaut mieux écrire un petit module une fois pour toutes.
L'auteur de votre article a dû vouloir parler de changement de variable et non de variables intermédiaires, et d'ailleurs je ne comprends pas la suite.
Bonjour
Oui exactement j'ai suivi la méthode des moindres carrés pour avoir les calculs pour les valeurs de a1,a2,a3 et a4 et j'ai fait d'abord ln(y) qui m'a donnée une relation linéaire et tout ça c'est évident mais j'arrive pas à voir les même coefficients que ceux obtenus par l'auteur ( trois articles différents) et donc je doute fort que je puisse trouver la belle corrélation.
De plus la question qui se pose pourquoi il n'a pas choisi d'appliquer la focntion log au début çad directement sur y ce qui ramène au cas de la régression linéaire?? mais il a introduit le variable X et il a déja déterminé au premier lieu les coefficients b1 ,b2,b3 et b4 et non a1, a2,a3 et a4!!
et puis en deuxième étape il fasse l'ajustement par y=C*X^m afin d'avoir a1, a2,a3 et a4
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 04 Juin 2013, 12:39
Je comprends pas très bien votre question
- Soit vous avez un ensemble de données et vous voulez faire une régression.
- Soit vous cherchez à comprendre la méthode pour pouvoir réaliser un module ou tout simplement calculer vous-même une certaine régression.
- Soit vous cherchez à vérifier ou comparer avec d'autres choses (trois articles)
Si vous tenez à un certaine discrétion (auteur des articles par exemple) vous pouvez toujours me faire un MP.
Mais comprenez bien que je ne vais pas donner 2 pages d'explications en réponse à un question qui n'est pas claire.
-
Sylviel
- Membre Transcendant
- Messages: 6466
- Enregistré le: 20 Jan 2010, 12:00
-
par Sylviel » 04 Juin 2013, 12:51
Bonjour,
de ce que je comprends du problème :
1) la démarche la plus naturelle consiste effectivement à prendre le log pour se ramener à une estimation linéaire.
2) Ce n'est pas tout à fait ce qu'à fait l'auteur des articles qui a préféré passer par une première variable (forçant donc un lien entre les différentes puissances) et effectuer une regression sur cette variable.
3) La seule explication que je voie (mais il y en a peut-être d'autres que je ne voie pas) c'est qu'il y a une raison "physique" (i.e extérieure au problème de math) pour établire ce lien entre les puissances. Par exemple un raisonnement par analyse dimensionnelle en physique peut amener ce genre de contraintes.
Merci de répondre aux questions posées, ce sont des indications pour vous aider à résoudre vos exercices.
-
ghozlanib
- Messages: 5
- Enregistré le: 04 Juin 2013, 01:08
-
par ghozlanib » 04 Juin 2013, 16:09
Sylviel a écrit:Bonjour,
de ce que je comprends du problème :
1) la démarche la plus naturelle consiste effectivement à prendre le log pour se ramener à une estimation linéaire.
2) Ce n'est pas tout à fait ce qu'à fait l'auteur des articles qui a préféré passer par une première variable (forçant donc un lien entre les différentes puissances) et effectuer une regression sur cette variable.
3) La seule explication que je voie (mais il y en a peut-être d'autres que je ne voie pas) c'est qu'il y a une raison "physique" (i.e extérieure au problème de math) pour établire ce lien entre les puissances. Par exemple un raisonnement par analyse dimensionnelle en physique peut amener ce genre de contraintes.
oui j'ai suivi une démarche normale on appliquant la fonction logy mais j'arrive pas à trouver les mêmes coefficients déjà présentés dans l'article ''Numerical modeling of submarine mass-movement generated waves using RANS model, Yuk D. , Computer & Geosciences 32 (2006) dans l'équation 6, 7 et figure 8''
et dès le début j'ai essayé de trouver une sorte de contrainte sur les variables indépendantes qui conduise à adopter cette démarche (introduire un variable intermédiaire X) et je peux confirmer qu'il n'exciste aucune contrainte sur ces variables en terme de dimensions puisques ces variables sont adimensionnelles (sans dimension) et peut-être la seule contrainte que je vois de point de vue physique que la variable dépendante (Y) doit être égal à zero si l'une des variables indépendantes (X1,X2,X3,X4) est null. donc est ce possible que cette condition peut changer tout???
-
ghozlanib
- Messages: 5
- Enregistré le: 04 Juin 2013, 01:08
-
par ghozlanib » 04 Juin 2013, 16:27
Dlzlogic a écrit:Je comprends pas très bien votre question
- Soit vous avez un ensemble de données et vous voulez faire une régression.
- Soit vous cherchez à comprendre la méthode pour pouvoir réaliser un module ou tout simplement calculer vous-même une certaine régression.
- Soit vous cherchez à vérifier ou comparer avec d'autres choses (trois articles)
Si vous tenez à un certaine discrétion (auteur des articles par exemple) vous pouvez toujours me faire un MP.
Mais comprenez bien que je ne vais pas donner 2 pages d'explications en réponse à un question qui n'est pas claire.
1) L'article de base que je dois le suivre est le suivant: Numerical modeling of submarine mass-movement
generated waves using RANS mode Computers & Geosciences 32 (2006) 927935 éqution 6,7 et figure 8
2) oui j'ai un ensembe de données ( 4 variables indépendantes: X1,X2,X3 etX4) et cherche une relations de la forme Y=C*X1^a1*X2^a2*X3^a3*X4^a4
sachant que la linéarisation linéarisation m'a donné des résultats un peu juste et quand je vois le gens comment ils ont fait je trouve cette démarche déjà présentée qui consiste à introduire X=X1^b1*X2^b2*X3^b3*X4^b4
Est-ce que c'est clair maintenant??
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 04 Juin 2013, 18:11
Non, c'est pas plus clair.
J'ai bien vu le titre de l'article, mais pas ce qu'il dit.
Si on a une formule telle que Y= ... la résolution n'est pas simple, mais la solution est unique et précise, naturellement avec les conditions qu'il n'y ait pas de faute, pas d'invraisemblance etc.
Je ne vois pas du tout ni l'intérêt ni même la justification de l'autre formule X=.. à partir de la précédente.
Pardon si je me répète.
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 30 invités