Comment évaluer les résultats de la régression linéaire

8

J'ai un problème de régression linéaire. En bref, j'ai un ensemble de données, je l'ai divisé en deux sous-ensembles. Un sous-ensemble est utilisé pour trouver la régression linéaire (sous-ensemble d'apprentissage), un autre est utilisé pour l'évaluer (sous-ensemble d'évaluation). Ma question est de savoir comment évaluer le résultat de cette régression linéaire après l'avoir appliqué au sous-ensemble d'évaluation des données?

Voici les détails:

Dans le sous-ensemble de formation, je fais une régression linéaire: y=ax+b, où y est groundtruth (également connu sous le nom de cible), xest une variable indépendante. Puis j'ai trouvéa et b. (x et y sont donnés dans le sous-ensemble de formation).

Maintenant, en utilisant a et b trouvé ci-dessus à partir du sous-ensemble de formation, les appliquer au sous-ensemble d'évaluation, j'ai trouvé y=ax+b. En d'autres termes, cesy se trouvent à partir de la régression linéaire avec x. Maintenant, en plus dey, J'ai aussi yde l'ensemble d'évaluation. Comment puis-je évaluer mon résultat (combieny différer y)? Un modèle mathématique général pour le faire? Il doit s'agir d'une sorte de modèle / formule mathématique. Je peux penser à différentes façons de le faire, mais elles sont toutes un peu ad-hoc ou simples, mais c'est pour un travail scientifique, donc des choses qui semblent ad-hoc ne peuvent pas être utilisées ici, malheureusement.

Une idée?

Van
la source
6
Je ne pense pas que ce type d'évaluation soit généralement utilisé avec des modèles de régression simples. Que vous dirait-il que vous ne découvririez pas en utilisant l'ensemble de données pour générer vos paramètres de régression? Normalement, la raison d'utiliser un ensemble de données d'évaluation est d'empêcher le sur-ajustement, mais ce n'est pas un problème lorsque vous savez déjà que votre modèle va contenir une seule variable indépendante.
octobre
Pour être clair, @octern parlait de régression linéaire. La répartition des tests de formation est une bonne pratique pour ce faire avec la régression logistique. Cela peut même avoir un sens dans la régression linéaire si l'ensemble de tests a une distribution différente / non stationnaire de la formation, ou s'il provient d'une période différente (par exemple campagne publicitaire, comportement d'achat).
smci

Réponses:

11

Je suis d'accord avec @Octern que l'on voit rarement des gens utiliser des séparations train / test (ou même des choses comme la validation croisée) pour les modèles linéaires. Le sur-ajustement n'est certainement pas un problème avec un modèle très simple comme celui-ci.

Si vous vouliez avoir une idée de la «qualité» de votre modèle, vous souhaiterez peut-être signaler les intervalles de confiance (ou leurs équivalents bayésiens) autour de vos coefficients de régression. Il y a plusieurs moyens de le faire. Si vous savez / pouvez supposer que vos erreurs sont normalement distribuées, il existe une formule simple (et les packages d'analyse de données les plus populaires vous donneront ces valeurs). Une autre alternative populaire consiste à les calculer par rééchantillonnage (par exemple, bootstrap ou jackknifing), ce qui fait moins d'hypothèses sur la distribution des erreurs. Dans les deux cas, j'utiliserais l'ensemble de données complet pour le calcul.

Matt Krause
la source
1
Vous devez également effectuer une analyse résiduelle en traçant.
kjetil b halvorsen
1

si vous êtes vraiment bien avec votre modèle de formation linéaire et que vous voulez savoir dans quelle mesure il prédirait vos données de test, alors tout ce que vous auriez à faire est d'utiliser la formule du modèle linéaire que vous avez déjà et d'inclure les coefficients estimés a (= intercepter) et b (coefficient de régression, également appelé pente) résultant du premier modèle.

devrait ressembler à y = a + b * X ici quelques nombres imaginaires ... y = 2 + 0,5 * X

Quel logiciel utilisez-vous? Utilisez-vous R? si tel est le cas, vous pouvez utiliser la fonction predire.lm () et l'appliquer à votre 2e jeu de données.

Jens
la source
1

Bien que cela dépende en grande partie de vos objectifs, une façon simple et standard de le faire serait de mesurer l' erreur quadratique moyenne (MSE) . Donc, si vous avez votre jeu de données de testD qui se composent de paires d'entrée / sortie, D={(x1,y1),(x2,y2),,(xn,yn)} et vos paramètres a et b, alors le MSE peut être calculé comme

MSEa,b=1ni=1n(yi(axi+b))2.

C'est probablement un moyen judicieux de mesurer votre erreur également, car il s'agit probablement des critères que vous avez utilisés pour trouver les paramètres a et b. Si vous voulez avoir une meilleure idée de la façon dont vos paramètres estimés se généralisent, vous devriez examiner quelque chose comme la validation croisée .

alto
la source