J'ai 6 variables ( ) que j'utilise pour prédire . Lors de l'analyse de mes données, j'ai d'abord essayé une régression linéaire multiple. De là, seules deux variables étaient significatives. Cependant, lorsque j'ai effectué une régression linéaire comparant chaque variable individuellement à , toutes sauf une étaient significatives ( allant de moins de 0,01 à moins de 0,001). Il a été suggéré que cela était dû à la multicolinéarité.
Ma recherche initiale à ce sujet suggère de vérifier la multicolinéarité en utilisant des VIF . J'ai téléchargé le package approprié à partir de R et je me suis retrouvé avec les VIF résultants: 3,35, 3,59, 2,64, 2,24 et 5,56. Selon diverses sources en ligne, le point que vous devriez vous inquiéter de la multicolinéarité avec vos VIF est à 4 ou 5.
Je suis maintenant perplexe quant à ce que cela signifie pour mes données. Ai-je ou non un problème de multicolinéarité? Si je le fais, comment dois-je procéder? (Je ne peux pas collecter plus de données, et les variables sont des parties d'un modèle qui ne sont pas évidemment liées) Si je n'ai pas ce problème, alors que dois-je prendre de mes données, en particulier le fait que ces variables sont très importantes individuellement, mais pas du tout significatif lorsqu'ils sont combinés.
Edit: Certaines questions ont été posées concernant l'ensemble de données, et je voudrais donc développer ...
Dans ce cas particulier, nous cherchons à comprendre comment des signaux sociaux spécifiques (geste, regard, etc.) affectent la probabilité qu'une personne produise un autre signal. Nous aimerions que notre modèle inclue tous les attributs importants, donc je suis mal à l'aise d'en supprimer certains qui semblent redondants.
Il n'y a aucune hypothèse à ce sujet en ce moment. Au contraire, le problème n'est pas étudié et nous cherchons à mieux comprendre quels attributs sont importants. Pour autant que je sache, ces attributs devraient être relativement indépendants les uns des autres (vous ne pouvez pas simplement dire que le regard et les gestes sont les mêmes, ou l'un le sous-ensemble d'un autre). Ce serait bien de pouvoir rapporter des valeurs de p pour tout, car nous aimerions que d'autres chercheurs comprennent ce qui a été examiné.
Edit 2: Depuis qu'il est apparu quelque part en dessous, mon est 24.
la source
Réponses:
Pour comprendre ce qui peut se passer, il est instructif de générer (et d'analyser) des données qui se comportent de la manière décrite.
Pour simplifier, oublions cette sixième variable indépendante. Ainsi, la question décrit les régressions d'une variable dépendante contre cinq variables indépendantes x 1 , x 2 , x 3 , x 4 , x 5 , dans lesquellesy x1,x2,x3,x4,x5
Chaque régression ordinaire est significative à des niveaux de 0,01 à moins de 0,001 .y∼xi 0.01 0.001
La régression multiple donne des coefficients significatifs uniquement pour x 1 et x 2 .y∼x1+⋯+x5 x1 x2
Tous les facteurs d'inflation de la variance (VIF) sont faibles, ce qui indique un bon conditionnement dans la matrice de conception (c'est-à-dire un manque de colinéarité entre les ).xi
Faisons en sorte que cela se produise comme suit:
Générez valeurs normalement distribuées pour x 1 et x 2 . (Nous choisirons n plus tard.)n x1 x2 n
Soit où ε est une erreur normale indépendante de la moyenne 0 . Quelques essais et erreurs sont nécessaires pour trouver un écart-type approprié pour ε ; 1 / 100 fonctionne très bien (et est assez spectaculaire: y est très bien corrélé avec x 1 et x 2 , même si elle est modérément corrélée avec x 1 et x 2 individuellement).y=x1+x2+ε ε 0 ε 1/100 y x1 x2 x1 x2
Soit = x une / 5 + δ , j = 3 , 4 , 5 , où δ est l' erreur normale norme indépendante. Cela fait que x 3 , x 4 , x 5 ne dépendent que légèrement de x 1 . Cependant, via la corrélation étroite entre x 1 et y , cela induit une minuscule corrélation entre y et ces x j .xj x1/5+δ j=3,4,5 δ x3,x4,x5 x1 x1 y y xj
Voici le hic: si nous faisons assez grand, ces légères corrélations se traduiront par des coefficients significatifs, même si y est presque entièrement "expliqué" par seulement les deux premières variables.n y
J'ai trouvé que fonctionne très bien pour reproduire les valeurs de p rapportées. Voici une matrice de nuage de points des six variables:n=500
En inspectant la colonne de droite (ou la ligne du bas), vous pouvez voir que a une bonne corrélation (positive) avec x 1 et x 2 mais peu de corrélation apparente avec les autres variables. En inspectant le reste de cette matrice, vous pouvez voir que les variables indépendantes x 1 , … , x 5 semblent être non corrélées mutuellement (le δ aléatoirey x1 x2 x1,…,x5 δ masquer les minuscules dépendances que nous savons être là.) Il n'y a pas de données exceptionnelles - rien de très éloigné ou de fort effet de levier. Soit dit en passant, les histogrammes montrent que les six variables sont réparties approximativement normalement: ces données sont aussi ordinaires et "banales que l'on pourrait souhaiter".
Dans la régression de contre x 1 et x 2 , les valeurs de p sont essentiellement de 0. Dans les régressions individuelles de y contre x 3 , puis de y contre x 4 et de y contre x 5 , les valeurs de p sont 0,0024, 0,0083 et 0,00064, respectivement: c'est-à-dire qu'ils sont "hautement significatifs". Mais dans la régression multiple complète, les valeurs de p correspondantes gonflent respectivement à 0,46, 0,36 et 0,52: pas du tout significatives. La raison en est qu'une fois que y a été régressé contre x 1 et xy x1 x2 y x3 y x4 y x5 y x1 , la seule chose qui reste à "expliquer" est la petite quantité d'erreur dans les résidus, qui se rapprochera de ε , et cette erreur est presque complètement indépendante des x i restants. ("Presque" est correct: il y a une très petite relation induite par le fait que les résidus ont été calculés en partie à partir des valeurs de x 1 et x 2 et les x i , i = 3 , 4 , 5 , ont quelques faibles relation à x 1 et x 2. Cette relation résiduelle est cependant pratiquement indétectable, comme nous l'avons vu.)x2 ε xi x1 x2 xi i=3,4,5 x1 x2
Le nombre de conditionnement de la matrice de conception n'est que de 2,17: c'est très faible, ne montrant aucune indication de multicolinéarité élevée. (Un manque parfait de colinéarité se refléterait dans un nombre de conditionnement de 1, mais dans la pratique, cela n'est vu qu'avec des données artificielles et des expériences conçues. Ceci termine la simulation: il a réussi à reproduire tous les aspects du problème.
Les informations importantes que cette analyse offre incluent
Les valeurs de p ne nous disent rien directement sur la colinéarité. Ils dépendent fortement de la quantité de données.
Les relations entre les valeurs de p dans les régressions multiples et les valeurs de p dans les régressions connexes (impliquant des sous-ensembles de la variable indépendante) sont complexes et généralement imprévisibles.
Par conséquent, comme d'autres l'ont fait valoir, les valeurs de p ne devraient pas être votre seul guide (ou même votre principal guide) pour la sélection du modèle.
Éditer
Il n'est pas nécessaire que soit aussi grand que 500 pour que ces phénomènes apparaissent.n 500 Inspiré par des informations supplémentaires dans la question, ce qui suit est un ensemble de données construit de manière similaire avec (dans ce cas, x j = 0,4 x 1 + 0,4 x 2 + δ pour jn=24 xj=0.4x1+0.4x2+δ ). Cela crée des corrélations de 0,38 à 0,73 entre x 1 - 2 et x 3 - 5j=3,4,5 x1−2 x3−5 . Le nombre de conditions de la matrice de conception est de 9,05: un peu élevé, mais pas terrible. (Certaines règles empiriques disent que des nombres de condition aussi élevés que 10 sont corrects.) Les valeurs de p des régressions individuelles contre sont 0,002, 0,015 et 0,008: significatif à très significatif. Ainsi, une certaine multicolinéarité est impliquée, mais elle n'est pas si grande que l'on pourrait travailler pour la changer. La vision de base reste la mêmex3,x4,x5 : la signification et la multicolinéarité sont des choses différentes; seules de légères contraintes mathématiques y tiennent; et il est possible que l'inclusion ou l'exclusion même d'une seule variable ait des effets profonds sur toutes les valeurs de p même sans qu'une multicolinéarité sévère ne soit un problème.
la source
Ce n'est pas une situation ou. Et je suis sceptique quant à la directive "4 ou 5". Pour chacun de vos prédicteurs, l'erreur-type du coefficient est comprise entre 2,2 et 5,6 fois plus grande qu'elle le serait si le prédicteur n'était pas corrélé avec les autres. Et la partie d'un prédicteur donné qui ne peut pas être expliquée par les autres varie de 1 / 2,2 à 1 / 5,6, soit 18% à 45%. Dans l'ensemble, cela semble une assez grande colinéarité.
Mais reculons un instant. Essayez-vous vraiment de prédire * Y *, plutôt que de l' expliquer ? Dans le premier cas, je ne suppose pas que vous ayez besoin de savoir si le niveau de signification d'une variable donnée change lorsque d'autres sont présentes dans le modèle. Votre travail est vraiment beaucoup plus facile qu'il ne le serait si une véritable explication était nécessaire.
Si l'explication est votre objectif, vous devrez considérer la façon dont ces variables interagissent - quelque chose qui nécessite plus que des informations statistiques. De toute évidence , ils se chevauchent dans la façon dont ils se rapportent à Y , et ce colinéarité , il sera difficile d'établir, par exemple, leur ordre de rang d'importance en ce qui représente Y . Dans cette situation, il n'y a pas de chemin clair à suivre.
En tout cas, j'espère que vous envisagez des méthodes de validation croisée.
la source
Vous avez la multicolinéarité. Votre analyse initiale l'a démontré. En ce qui concerne le problème, c'est une autre question qui semble avoir de nombreuses réponses dans votre cas.
Peut-être que si vous amélioriez le problème de base, il serait plus évident de savoir quoi faire? ...
Avec la multicolinéarité, vos coefficients de régression concernent les contributions uniques (bien plus proches de l'unique) de chaque variable à votre modèle. Si certains sont corrélés entre eux, alors la contribution unique de chacun est corrélée. C'est probablement en partie pourquoi aucun n'est significatif lorsqu'ils sont tous là ensemble, mais lorsqu'ils sont utilisés seuls, ils peuvent l'être.
La première chose que vous devrez probablement faire est de réfléchir à la signification de l'intercorrélation entre vos variables. Par exemple, avez-vous un tas de variables qui représentent simplement la même chose? Vous est-il arrivé de mesurer vos prédicteurs sur une mauvaise échelle et d'obtenir des corrélations fortuites? N'essayez pas de corriger la régression, essayez de comprendre vos variables.
Considérons X1 et X2 avec une très forte corrélation entre eux, disons r = 0,90. Si vous mettez X1 dans le modèle et que c'est un prédicteur significatif, alors un autre modèle avec X2 seul sera très probablement significatif aussi parce que c'est presque la même chose. Si vous les mettez ensemble dans le modèle, au moins l'un d'entre eux doit souffrir car la régression multiple va résoudre leurs contributions uniques. Ils peuvent tous deux être non significatifs. Mais ce n'est pas le but, le fait est de reconnaître pourquoi ils se chevauchent tellement et s'ils disent même quelque chose de différent les uns des autres et si vous en avez besoin ou non? Peut-être que l'un exprime une idée de manière plus significative et plus liée à votre variable de réponse que l'autre. Peut-être conclurez-vous qu'il s'agit de la même chose avec différents niveaux de variabilité.
De plus, lorsque vous regardez des modèles de toute sorte, mais surtout avec des prédicteurs intercorrélés, les valeurs de p sont un terrible moyen de savoir si un nouveau prédicteur apporte une contribution significative (si c'est ce que vous essayez de faire ... vous ne savez pas ce que vous essayez de faire, car il semble que vous essayez simplement de rendre la régression soit A) simple, soit B) comme vous le souhaitez ... aucun des deux n'est faisable). Vous feriez probablement mieux de consulter AIC pour vous aider à déterminer quels prédicteurs vous devez conserver et lesquels ne contribuent pas.
la source
Personnellement, j'utiliserais des indices de condition et le tableau d'explication de la variance pour analyser la colinéarité.
Je n'utiliserais pas non plus les valeurs de p comme critère pour la construction de modèles, et lorsque je comparais des modèles avec 6 IV à des modèles avec 1, j'examinais les changements dans la taille d'effet du paramètre pour la variable qui est à la fois.
Mais vous pouvez certainement obtenir les résultats que vous mentionnez sans colinéarité. La colinéarité concerne uniquement les variables X et leur relation. Mais deux variables pourraient toutes deux être fortement liées à Y sans être étroitement liées l'une à l'autre.
la source
En ce qui concerne la multicolinéarité, il existe plusieurs seuils mentionnés qui convergent généralement autour d'un VIF de 10 correspondant à une valeur R Square sous-jacente de 0,90 entre la variable testée et les autres variables indépendantes. Les VIF de vos variables semblent passables et vous pouvez techniquement les conserver dans un modèle.
Pourtant, j'utiliserais une méthode de régression pas à pas pour voir quelle est la meilleure combinaison de variables et combien d'explications supplémentaires (augmentation incrémentielle de R Square) vous obtenez en ajoutant des variables. La référence d'arbitrage doit être la valeur R carré ajusté qui ajuste la valeur R carré vers le bas en pénalisant le modèle pour l'ajout de variables.
Vos variables sont quelque peu corrélées entre elles. C'est inévitable, c'est juste une question de degré. Compte tenu des VIF que vous mentionnez, je soupçonne intuitivement que vous obtiendrez la grande majorité des informations / bits d'explication de la meilleure combinaison de 2 variables. Et, que l'ajout de variables peut ajouter seulement une valeur incrémentielle marginale.
Lorsque j'examine la combinaison de variables sélectionnées par le processus de régression pas à pas, j'examine également les variables sélectionnées et si leurs signes de coefficient de régression sont cohérents avec leur corrélation avec y. Si ce n'est pas le cas, cela peut être dû à une interaction légitime entre les variables. Mais, cela pourrait également être le résultat d'un surajustement du modèle et du fait que les coefficients de régression sont faux. Ils reflètent un ajustement mathématique, mais n'ont aucun sens en termes de causalité sous-jacente.
Une autre façon de sélectionner vos variables est de décider d'un point de vue logique quelles sont les 2 ou 3 variables principales qui devraient être dans le modèle. Commencez par ceux-ci, puis vérifiez combien d'informations supplémentaires obtenez-vous en ajoutant une variable. Vérifiez le carré R ajusté, la cohérence du coefficient de régression par rapport à la régression d'origine, et évidemment testez tous les modèles avec période d'attente. Bientôt, il sera évident quel est votre meilleur modèle.
la source
fortune(224)
: no troll here, just want to highlight that you don't necessarily need to trust what software automagically gives (or offers) you as an option.If your explanatory variables are count data, and it is not unreasonable to assume that they are normally distributed, you can transform them into standard normal variates using the R
scale
command. Doing this can reduce the collinearity. But that will probably not solve the whole problem.A useful batch of R commands for analyzing and dealing with collinearity are found on Florian Jaeger's blog, including:
La
z.
fonction convertit un vecteur en une variable normale standard. Lar.
fonction renvoie des résidus standardisés pour régresser un prédicteur contre un autre. Vous pouvez l'utiliser pour diviser efficacement la déviance du modèle en différentes tranches afin que seules certaines variables aient accès à la tranche la plus ancienne, la tranche suivante sera alors proposée aux variables résiduelles. (Désolé pour ma terminologie homepun) Donc, si un modèle du formulaireY ~ A + B
souffre de multicolinéarité, vous pouvez alors exécuter
Y ~ A + r.(B)
Y ~ r.(A) + B
de sorte que seuls les résidus de la variable "tranche junior" (en régression par rapport à la variable "tranche senior") sont ajustés au modèle. De cette façon, vous êtes protégé de la multicolinéarité, mais vous avez un ensemble de paramètres plus compliqué à signaler.
la source