Choix de variables à inclure dans un modèle de régression linéaire multiple

35

Je travaille actuellement à la construction d'un modèle utilisant une régression linéaire multiple. Après avoir manipulé mon modèle, je ne sais pas comment déterminer au mieux les variables à conserver et celles à supprimer.

Mon modèle a commencé avec 10 prédicteurs pour le DV. Lors de l'utilisation des 10 prédicteurs, quatre ont été considérés comme significatifs. Si je supprime seulement certains des prédicteurs manifestement incorrects, certains de mes prédicteurs qui n'étaient pas initialement significatifs deviennent significatifs. Ce qui m'amène à ma question: comment déterminer les prédicteurs à inclure dans leur modèle? Il m'a semblé que vous devriez exécuter le modèle une fois avec tous les prédicteurs, supprimer ceux qui ne sont pas significatifs, puis les réexécuter. Mais si supprimer seulement certains de ces prédicteurs rend les autres significatifs, je me demande si je prends la mauvaise approche de tout cela.

Je crois que ce fil est semblable à ma question, mais je ne suis pas sûr d’interpréter correctement la discussion. C’est peut-être davantage un sujet de conception expérimentale, mais peut-être que quelqu'un a une expérience à partager.

cryptic_star
la source
La réponse à cette question dépend fortement de vos objectifs et de vos exigences: recherchez-vous une association simple ou prévoyez-vous une prédiction? à quel point êtes-vous interprétable? Avez-vous des informations sur les variables d'autres publications susceptibles d'influencer le processus? Qu'en est-il des interactions ou des versions transformées des variables: pouvez-vous les inclure? etc. Vous devez spécifier plus de détails sur ce que vous essayez de faire pour obtenir une bonne réponse.
Nick Sabbe
Basé sur ce que vous avez demandé, ce sera pour la prédiction. L'influence sur d'autres variables n'offre qu'une association possible. Il n'y a pas d'interactions entre eux. Une seule valeur doit être transformée et cela a été fait.
cryptic_star
1
Y a-t-il une théorie qui dit quels prédicteurs vous devriez inclure? Si vous avez mesuré beaucoup de variables et que vous n’avez pas de théorie, je vous recommanderais de conserver un ensemble d’observations afin que vous puissiez tester votre modèle sur des données qui n’ont pas été utilisées pour le créer. Il n'est pas correct de tester et de valider un modèle sur les mêmes données.
Michelle
La validation croisée (comme le dit Nick Sabbe), les méthodes pénalisées (Dikran Marsupial) ou le choix de variables basées sur une théorie antérieure (Michelle) sont toutes des options. Mais notez que la sélection des variables est intrinsèquement une tâche très difficile. Pour comprendre pourquoi il est si potentiellement dangereux, il peut être utile de lire ma réponse ici: algorithmes de sélection automatique de modèle . Enfin, il convient de reconnaître que le problème réside dans la structure logique de cette activité, et non pas si l'ordinateur le fait automatiquement pour vous ou si vous le faites manuellement vous-même.
Gay - Rétablir Monica
Découvrez également les réponses à ce message: stats.stackexchange.com/questions/34769/…
jokel

Réponses:

19

Basé sur votre réaction à mon commentaire:

Vous recherchez une prédiction Ainsi, vous ne devriez pas vraiment vous fier à la signification (ou non) des coefficients. Tu ferais mieux de

  • Choisissez un critère qui décrit le mieux vos besoins en matière de prévisions (par exemple, taux de classification erronée, AUC du ROC, une forme de ceux-ci avec des poids, ...)
  • Pour chaque modèle d’intérêt , évaluez ce critère. Cela peut être fait, par exemple, en fournissant un jeu de validation (si vous êtes chanceux ou riche), par validation croisée (généralement dix fois), ou par toute autre option que votre critère d'intérêt vous permet. Si possible, trouvez également une estimation de la SE du critère pour chaque modèle (par exemple, en utilisant les valeurs sur les différents plis lors de la validation croisée)
  • Vous pouvez maintenant choisir le modèle avec la meilleure valeur du critère, bien qu'il soit généralement conseillé de choisir le modèle le plus parcimonieux (le moins de variables) situé dans un SE de la meilleure valeur.

Pour chaque modèle d’intérêt, c’est là un piège. Avec 10 prédicteurs potentiels, il s’agit d’un chargement de modèles potentiels. Si vous avez le temps ou les processeurs pour cela (ou si vos données sont suffisamment petites pour que les modèles soient bien ajustés et évalués assez rapidement): prenez les choses en main. Si ce n'est pas le cas, vous pouvez y parvenir par des suppositions éclairées, une modélisation en amont ou en aval (mais en utilisant le critère plutôt que l'importance), ou mieux encore: utilisez un algorithme qui sélectionne un ensemble raisonnable de modèles. Un algorithme qui fait cela est la régression pénalisée, en particulier la régression de Lasso. Si vous utilisez R, branchez simplement le paquet glmnet et vous êtes prêt à partir.

Nick Sabbe
la source
+1, mais pourriez-vous expliquer pourquoi exactement vous "choisiriez le modèle le plus parcimonieux (moins de variables) qui se situe dans un SE de la meilleure valeur"?
rolando2
La parcimonie est, dans la plupart des situations, une propriété recherchée: elle améliore l’interprétabilité et réduit le nombre de mesures à effectuer pour qu'un nouveau sujet puisse utiliser le modèle. L’autre côté de l’histoire est que ce que vous obtenez pour votre critère n’est qu’une estimation, avec appariement SE: j’ai vu pas mal de courbes montrant les estimations de critère par rapport à un paramètre d’ajustement, où la «meilleure» valeur était simplement exceptionnelle. de pointe. En tant que telle, la règle 1 SE (qui est arbitraire, mais une pratique acceptée) vous protège de cela avec la valeur ajoutée de fournir davantage de parcimonie.
Nick Sabbe
13

Il n'y a pas de réponse simple à cela. Lorsque vous supprimez certaines des variables explicatives non significatives, d'autres corrélées à celles-ci peuvent devenir significatives. Il n’ya rien de mal à cela, mais cela rend la sélection des modèles au moins en partie plus artistique que scientifique. C'est pourquoi les expériences visent à garder les variables explicatives orthogonales les unes aux autres, afin d'éviter ce problème.

Traditionnellement, les analystes ajoutaient et soustrayaient des variables au modèle, une par une (comme ce que vous aviez fait) et les testaient individuellement ou en petits groupes avec des tests t ou F. Le problème avec ceci est que vous pouvez manquer une combinaison de variables à sous-extraire (ou ajouter) lorsque leur effet combiné (ou non-effet) est masqué par la colinéarité.

Avec la puissance de calcul moderne, il est possible d’adapter toutes les 2 ^ 10 = 1024 combinaisons possibles de variables explicatives et de choisir le meilleur modèle selon l’un des critères possibles, par exemple AIC, BIC ou la puissance prédictive (par exemple, capacité à prédire les valeurs). d’un sous-ensemble de test des données que vous avez séparées de l’ensemble que vous utilisez pour l’adapter à votre modèle). Toutefois, si vous testez (implicitement ou explicitement) des modèles 1024, vous devrez repenser vos valeurs p par rapport à l'approche classique - faites preuve de prudence ...

Peter Ellis
la source
Merci pour la grande expérience des avantages et inconvénients des deux côtés. Cela a confirmé beaucoup de ce que je soupçonnais.
cryptic_star
11

Si vous ne vous intéressez qu'aux performances prédictives, il est probablement préférable d'utiliser toutes les fonctions et d'utiliser la régression par crête pour éviter de surcharger l'échantillon d'apprentissage. C’est essentiellement le conseil donné dans l’annexe de la monographie de Millar sur la "sélection de sous-ensembles dans la régression" , ce qui donne un pedigree raisonnable!

La raison en est que si vous choisissez un sous-ensemble basé sur une estimation de performance basée sur un échantillon fixe de données (par exemple, AIC, BIC, validation croisée, etc.), le critère de sélection aura une variance finie et permettra donc surajustement du critère de sélection lui-même. En d’autres termes, pour commencer par minimiser le critère de sélection, les performances de généralisation s’amélioreront. Toutefois, à un moment donné, plus le critère de sélection sera réduit, plus la généralisation deviendra pire. Si vous êtes malchanceux, vous pouvez facilement vous retrouver avec un modèle de régression moins performant que celui avec lequel vous avez commencé (un modèle avec tous les attributs).

Cela est particulièrement probable lorsque le jeu de données est petit (le critère de sélection a donc une variance élevée) et lorsqu'il existe de nombreux choix de modèle possibles (par exemple, le choix de combinaisons d'éléments). La régularisation semble moins encline à la sur-adaptation car il s’agit d’un paramètre scalaire qui doit être ajusté, ce qui donne une vision plus restreinte de la complexité du modèle, c’est-à-dire moins de degrés de liberté effectifs permettant de sur-ajuster le critère de sélection .

Dikran Marsupial
la source
0

Utilisez la bibliothèque de sauts. Lorsque vous tracez les variables, l’axe des ordonnées indique R ^ 2 ajusté. Vous regardez où les cases sont noires au plus haut R ^ 2. Cela montrera les variables que vous devriez utiliser pour votre régression linéaire multiple.

Exemple de vin ci-dessous:

library(leaps)
regsubsets.out <-
  regsubsets(Price ~ Year + WinterRain + AGST + HarvestRain + Age + FrancePop,
         data = wine,
         nbest = 1,       # 1 best model for each number of predictors
         nvmax = NULL,    # NULL for no limit on number of variables
         force.in = NULL, force.out = NULL,
         method = "exhaustive")
regsubsets.out

#----When you plot wherever R^2 is the highest with black boxes,
#so in our case AGST + HarvestRain + WinterRain + Age and the dependent var.is Price----#
summary.out <- summary(regsubsets.out)
as.data.frame(summary.out$outmat)
plot(regsubsets.out, scale = "adjr2", main = "Adjusted R^2")
zschleien
la source
Cela ne semble pas très distinct de la sélection dite des «meilleurs sous-ensembles», qui connaît des problèmes.
gung - Réintégrer Monica
leaps calcule explicitement les "meilleurs sous-ensembles", bien qu'il ne vous conseille pas de sélectionner des sous-ensembles de tailles différentes. (C'est un problème entre vous et votre clergé statistique.)
steveo'america
Assez drôle, leapsest basé sur "le code FORTRAN77 de Alan Miller [...] qui est décrit plus en détail dans son livre 'Subset Selection in Regression'", un livre mentionné par Dikran dans une autre réponse à cette question :-)
jorijnsmit le
-2

Pourquoi ne pas faire l'analyse de corrélation Tout d'abord, puis inclure dans la régression uniquement ceux qui sont en corrélation avec Dv?

Anna
la source
2
C’est généralement une mauvaise façon de choisir les variables à sélectionner, voir par exemple, l’ utilisation de la matrice de corrélation pour sélectionner les prédicteurs de régression est-elle correcte? Une analyse de corrélation est assez différente de la régression multiple, car dans ce dernier cas, nous devons penser à "décomposer en partie" (les pentes de régression montrent la relation une fois que les autres variables sont prises en compte ), mais une matrice de corrélation ne le montre pas.
Silverfish
Cela ne fournit pas de réponse à la question. Une fois que vous avez suffisamment de réputation, vous pourrez commenter n'importe quel message . au lieu de cela, fournissez des réponses qui ne nécessitent pas de clarification de la part du demandeur . - De l'avis
Sycorax dit Réintégrer Monica
1
@ GeneralAbrial Il me semble que c'est une réponse à la question, même brève. Ce n'est pas une bonne solution au problème, mais c'est à cela que servent les votes à la hausse ou à la baisse. (Je pense que le "pourquoi pas" est destiné à être une question rhétorique, plutôt qu'une demande de clarification de la part de l'auteur.)
Silverfish
-4

Mon conseiller m'a proposé une autre façon de s'y prendre. Exécutez toutes vos variables une fois, puis supprimez celles qui ne respectent pas certains seuils (nous avons défini notre seuil sur p <0,25). Continuez à itérer de cette façon jusqu'à ce que toutes les variables tombent en dessous de cette valeur de 0,25, puis signalez les valeurs qui sont significatives.

cryptic_star
la source
1
Bonjour allie, c'est ce que @ Peter Ellis a mentionné dans le deuxième paragraphe de sa réponse. Sa deuxième phrase traite du problème que cette technique introduit. Avez-vous une théorie qui vous dit quels prédicteurs mettre dans votre modèle?
Michelle
Oui, @ Michelle a raison de souligner la responsabilité de cette approche. Cela peut produire des résultats très arbitraires.
rolando2
Oui, il y a une théorie derrière tout cela, que nous espérons développer. En particulier, nous examinons la manière dont certains signaux sociaux (tels que la parole) interagissent. Nous savons quels sont ceux qui ont ou non déjà du poids. Cependant, nous essayons de fournir des versions plus détaillées. Ainsi, le discours peut être décomposé en question, opinion, évaluation, etc.
cryptic_star
2
Bon, alors vous faites une analyse exploratoire. :) Vous pouvez essayer différentes combinaisons, mais vous devrez tester le modèle avec lequel vous vous retrouvez avec de nouvelles données. Par définition, avec ce que vous faites, vous aurez le "meilleur" modèle pour vos données, mais cela risque de ne pas fonctionner si vous collectez un autre ensemble de données.
Michelle