Choisir le bon modèle de régression

Les moindres-carrés

a marqué ce sujet comme résolu.

Bonjour,

Je dois faire une regression d’une courbe de saturation (style ceci). Mes points suivent globalement cette tendance mais je cherche à le faire le plus proprement possible. J’ai lu sur Internet et des PDF "sérieux" qu’une méthode connue existait: la méthode des moindres carrés. Comment savoir que cette approche est la bonne ? Je suppose qu’il existe pleins de modèles différents… Un intervalle de confiance suffit-il ?

Merci!

Bonjour,

Je crois qu’il vaut mieux commencer par les bases pour expliquer "une" méthode. Ce que vous possédez, ce sont des observations $y_{i}$, vous avez mesuré vos points mais ils sont entachés d’une certaine erreur. On décrit généralement ce genre de phénomènes par une forme analogue à:

$$ y = f(x) + \epsilon $$

$f(x)$ est la fonction qui décrit le processus réel (qu’on ignore généralement) et $\epsilon$ est votre erreur de mesure qu’on suppose indépendante et identiquement distribuée (parfois vous avez arrondi au nombre supérieur, parfois inférieur, par exemple). Vous, ce que vous cherchez à faire, c’est trouver une fonction $g(x)$ qui correspond le mieux à votre problématique. C’est ce point qui est crucial, que veut dire "correspondre au mieux" dans ce contexte ? Vous pouvez imaginer une fonction très complexe qui passe par chacune des observations que vous avez récoltées, seulement, il est fort probable qu’elle ait une forme peu naturelle, on parle d’overfitting:

Overfitting

Ce que vous essayez donc de faire, c’est de trouver une courbe, ni trop compliquée, ni trop simple, qui permet d’expliquer vos données. Pour cela, il faut définir une notion qui permet de dire si une courbe est meilleure qu’une autre. Généralement, on essaye de réduire l’erreur quadratique moyenne:

$$ MSE = \frac{1}{N} \sum_{i=0}^{N} (y_{i} - g(x_{i}))^{2} $$

Remarquez que faire de l’overfitting a tendance à réduire cette mesure puisque la fonction passe par tous ces points. Donc, comment éviter ce phénomène ? Il suffit d’entraîner notre modèle sur un sous-ensemble des points et de voir à quel point il se généralise sur les autres et de tenter de minimiser l’erreur sur les observations qui ne font pas partie de notre entraînement, dites de test. C’est l’idée derrière la "méthode des moindres carrés".

Si tout ceci est suffisamment clair, il faut construire ce modèle. Ici, j’imagine que vous devez vous restreindre à des modèles "physiques", donc on cherche une fonction classique des mathématiques qui explique nos données. Prenons, par le plus grand des hasards, $g(x) = a * ln(x) + b$ et on cherche à minimiser le MSE (défini plus haut). Qui dit minimisation, dit dérivation (partielle) pour trouver quels sont les meilleurs paramètres $a$ et $b$ pour notre problème. Le plus simple est d’employer un logiciel qui les trouvent pour nous :magicien: .

Voilà, en résumé, le processus qu’il suffit de suivre:

  • Pour tous les ensembles (une centaine, ça dépend du nombre de vos observations) d’entraînements et de tests (on prend 90% d’entraînement, 10% de test généralement - cela s’appelle de la "10-fold cross validation"):
    • On crée un modèle sur base des données d’entraînement, on trouve les bons coefficients pour notre fonction. On les stocke.
    • On évalue notre modèle avec ces coefficients sur les données de test, on mesure son erreur moyenne. On la garde.

Lorsque c’est fini, on prend la moyenne de toutes nos erreurs moyennes, cela définit une mesure de notre capacité prédictive et qui permet de classer notre modèle si on veut comparer avec d’autres fonctions théoriques. Ensuite, on peut calculer les intervalles de confiance pour nos paramètres pour se donner un côté sérieux ^^ Notre modèle final sera donc identifié par notre fonction et la moyenne des paramètres d’entraînement.

Merci beaucoup ! C’est super clair. Pour minimiser les MSE, par exemple avec mon $g(x)$ c’est simplement

$\frac{d}{{d{\beta _1}}}\sum\limits_i {({y_i} - \frac{{{\beta _1}{x_i}}}{{{x_i} + {\beta _2}}}} {)^2} = \sum\limits_i {({y_i} - \frac{{{\beta _1}{x_i}}}{{{x_i} + {\beta _2}}}} )\frac{{{x_i}}}{{{x_i} + {\beta _2}}} = 0$

$\frac{d}{{d{\beta _2}}}\sum\limits_i {({y_i} - \frac{{{\beta _1}{x_i}}}{{{x_i} + {\beta _2}}}} {)^2} = \sum\limits_i {2({y_i} - \frac{{{\beta _1}{x_i}}}{{{x_i} + {\beta _2}}}} )\frac{{{x_i}}}{{{{({x_i} + {\beta _2})}^2}}} = 0$

Et d’ailleurs avec ça je peux trouver des intervalles de confiance, non? :)

+0 -0

Ca me perturbe un peu le "2" qui a été simplifié au dessus mais pas en bas ainsi que le "-" absent en bas mais oui, c’est ça.

J’ai du mal à comprendre de quels intervalles de confiance vous parlez. Personnellement, j’en vois au niveau:

  • des valeurs des paramètres
  • de l’espérance sur l’erreur du modèle
  • de l’espérance sur la valeur prédite
  • de la "distance" entre la valeur prédite et l’observation potentielle

Toutes ces questions répondent à la "statistique t" et donc à un test de Student. Autant pour les deux premières, on peut l’appliquer de manière bête et méchante, autant pour les dernières, cela me paraît plus obscur. Je dois admettre que je ne suis pas statisticien; je vous renvoie donc à des outils qui calculent des ces bornes théoriques automatiquement ne pouvant vous en dire plus.

+1 -0

Il suffit d’entraîner notre modèle sur un sous-ensemble des points et de voir à quel point il se généralise sur les autres et de tenter de minimiser l’erreur sur les observations qui ne font pas partie de notre entraînement, dites de test. C’est l’idée derrière la "méthode des moindres carrés".

La méthode des moindres carrés implique simplement une minimisation du carré des erreurs (on pourrait aussi utiliser d’autres méthodes équivalentes comme le maximum de vraisemblance ou la méthode des moments), pas de diviser ses données en ensemble d’entrainement et ensemble de validation (qui est plutôt un concept de machin learning que de statistiques).

Je ne crois pas qu’il cherche à sélectionner un modèle afin de fournir des prédictions mais plutôt a avoir une estimation d’une fonction (linéaire ou polynome à priori ?) qui approche le plus possible son ensemble de données.

La question première que je me poserai est celle de la forme fonctionnelle que tu vas utiliser pour ta régression. Si aucune forme ne se dégage d’une visualisation graphique, tu peux partir sur une régression linéaire simple en premier lieu. Si tu débutes en régression c’est peut-être plus simple que d’aller vers des polynômes et les questions que ça entraine sur le degré du polynôme à choisir.

Sinon je pense qu’il parle de l’intervalle de confiance pour les paramétrés, même si à ma connaissance c’est une donnée qui est rarement calculée. Ce qu’on calcul c’est plutôt la significativité des paramètres. Tu peux aussi calculer le R² de ta régression, qui est la part de la variance expliquée par ton modèle. Si il débute en régression linéaire, ça sera un bon début.

+2 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte