Calculer courbe de régression non-linéaire

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Géom
Messages: 5
Enregistré le: 09 Juil 2022, 11:32

Calculer courbe de régression non-linéaire

par Géom » 20 Juil 2022, 00:34

Bonjour

J'ai 2 questions en lien avec la régression non-linéaire.

1) est-ce que l'un d'entre vous peut me dire comment calculer la courbe de régression d'un nuage de points dessinant une fonction de type arc tangente ? Voici un exemple avec des données fictives, dont la courbe et l'indice R² ont été calculés par le site :
https://www.desmos.com/calculator/qebf08fvdz

Mon but est de calculer ça moi-même.

2) y a-t-il un autre type de fonction plus facilement calculable qui me donnerait la même physionomie de courbe ?

D'avance merci pour vos avis éclairés



Mateo_13
Membre Relatif
Messages: 360
Enregistré le: 30 Oct 2013, 04:08

Re: Calculer courbe de régression non-linéaire

par Mateo_13 » 20 Juil 2022, 09:08

Bonjour,

il faudrait prendre les tangentes d'une des deux colonnes, (celle des abscisses je pense),
et les deux nouvelles colonnes sont en régression linéaire.

Cordialement,

lyceen95
Membre Complexe
Messages: 2263
Enregistré le: 14 Juin 2019, 23:42

Re: Calculer courbe de régression non-linéaire

par lyceen95 » 20 Juil 2022, 09:54

Je pense qu'une méthode classique est la méthode du gradient.
Ici, on cherche une courbe sous la forme y=a atan(dx-b)-c

On peut trouver une première estimation de certains paramètres:
a : La fonction atan va de -1 à 1 ; ici, nos données vont de 0.1 à 0.5 donc il nous faut une valeur de a proche de 0.2
c : Les données y vont de 0.1 à 0.5 ; la valeur au milieu entre ces 2 extrêmes est 0.3, donc c sera proche de 0.3.
b et d : Les valeurs x vont de 0.2 à 2, leur moyenne est environ 1.2 ; on peut donc considérer dans un premier temps que le point d'inflexion sera proche de 1.2 ; donc 1.2d-b=0
Et l'amplitude sur l'axe des x est de 2-0.2= 1.8, on va donc prendre d proche de 1.8 * 1.5 pour avoir déjà la forme caractéristique de cette courbe.

On a donc un premier jeu de valeurs (a=0.2, c=0.3, d=2.7, b=3.24)
On sait calculer les écarts entre les points et la courbe obtenue, et donc calculer le r².
Ensuite on tâtonne.
On prend e=0.1, et on teste les points voisins, en ajoutant ou retranchant e à chacune des valeurs a,b,c,d. Donc 81-1=80 points voisins à tester. Et on garde le point le meilleur
Et on recommence avec e=0.05 (on divise par 2 à chaque fois).

On peut utiliser aussi une procédure 'monte-carlo' : on prend des valeurs au hasard, proche de ce point initial, et on regarde pour chaque jeu de coefficients si ça améliore le r²
On a probablement besoin d'utiliser cette méthode de monte-carlo, parce que j'ai peur qu'on arrive à un minimum local (et non absolu) par la méthode du gradient.

Autrement dit : tâtonnement, dans les 2 scénarios. Mais l'étape initiale, pour trouver des valeurs plausibles pour a,b,c,d, elle reste valable dans les grandes lignes.

Je ne crois pas que des méthodes déterministes aboutissent (=on calcule telle dérivée, et on arrive à tel système...mais malheureusement, on ne sait pas résoudre le système)

lyceen95
Membre Complexe
Messages: 2263
Enregistré le: 14 Juin 2019, 23:42

Re: Calculer courbe de régression non-linéaire

par lyceen95 » 20 Juil 2022, 09:56

Mateo propose de prendre les tangentes des abscisses.
Mais malheureusement, on ne sait pas s'il faut commencer par tan(x), ou tan(x-1.5) ... ou tan(2.82x-3.38) !
Et c'est le calcul complet qui va nous donner cette réponse.

Géom
Messages: 5
Enregistré le: 09 Juil 2022, 11:32

Re: Calculer courbe de régression non-linéaire

par Géom » 21 Juil 2022, 13:09

Merci, je vais tenter ces solutions

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 85 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite