J'essaie d'effectuer une régression multiple dans R
. Cependant, ma variable dépendante a le tracé suivant:
Voici une matrice de nuage de points avec toutes mes variables ( WAR
est la variable dépendante):
Je sais que je dois effectuer une transformation sur cette variable (et éventuellement les variables indépendantes?) Mais je ne suis pas sûr de la transformation exacte requise. Quelqu'un peut me diriger dans la bonne direction? Je suis heureux de fournir des informations supplémentaires sur la relation entre les variables indépendantes et dépendantes.
Les graphiques de diagnostic de ma régression se présentent comme suit:
MODIFIER
Après avoir transformé les variables dépendantes et indépendantes à l'aide de transformations Yeo-Johnson, les tracés de diagnostic ressemblent à ceci:
Si j'utilise un GLM avec un lien de journal, les graphiques de diagnostic sont:
R
avec la commandepairs(my.data, lower.panel = panel.smooth)
oùmy.data
serait votre jeu de données.lm
utilisant les variables non transformées. 2. Utilisez la fonctionboxcox(my.lm.model)
duMASS
package pour estimer . La commande produit également un graphique que vous pouvez télécharger pour notre commodité.Réponses:
Le livre de John Fox Un compagnon R de la régression appliquée est une excellente ressource sur la modélisation de régression appliquée avec
R
. Le packagecar
que j'utilise tout au long de cette réponse est le package d'accompagnement. Le livre a également comme site Web des chapitres supplémentaires.Transformer la réponse (aka variable dépendante, résultat)
R
lm
boxCox
car
family="yjPower"
Cela produit un tracé comme le suivant:
Pour transformer votre variable dépendante maintenant, utilisez la fonction
yjPower
ducar
package:lambda
boxCox
Important: Plutôt que de simplement transformer en journal la variable dépendante, vous devriez envisager d'adapter un GLM avec un lien de journal. Voici quelques références qui fournissent des informations supplémentaires: première , deuxième , troisième . Pour ce faire
R
, utilisezglm
:où
y
est votre variable dépendante etx1
,x2
etc. sont vos variables indépendantes.Transformations des prédicteurs
Les transformations de prédicteurs strictement positifs peuvent être estimées par maximum de vraisemblance après la transformation de la variable dépendante. Pour ce faire, utilisez la fonction
boxTidwell
ducar
package (pour le papier d'origine voir ici ). Utilisez - le comme ça:boxTidwell(y~x1+x2, other.x=~x3+x4)
. L'important ici est que cette optionother.x
indique les termes de la régression qui ne doivent pas être transformés. Ce serait toutes vos variables catégorielles. La fonction produit une sortie de la forme suivante:income
income
Un autre article très intéressant sur le site sur la transformation des variables indépendantes est celui-ci .
Inconvénients des transformations
Modélisation de relations non linéaires
Les polynômes fractionnaires et les splines sont deux méthodes assez flexibles pour ajuster les relations non linéaires . Ces trois articles offrent une très bonne introduction aux deux méthodes: première , deuxième et troisième . Il y a aussi un livre entier sur les polynômes fractionnaires et
R
. LeR
packagemfp
implémente des polynômes fractionnaires multivariables. Cette présentation pourrait être informative concernant les polynômes fractionnaires. Pour adapter les splines, vous pouvez utiliser la fonctiongam
(modèles additifs généralisés, voir ici pour une excellente introduction avecR
) du packagemgcv
ou les fonctionsns
(splines cubiques naturelles) etbs
(splines B cubiques) du packagesplines
(voir ici un exemple d'utilisation de ces fonctions). À l'aide de,gam
vous pouvez spécifier les prédicteurs que vous souhaitez ajuster à l'aide de splines à l'aide de las()
fonction:ici,
x1
serait ajusté en utilisant une spline etx2
linéairement comme dans une régression linéaire normale. À l'intérieur,gam
vous pouvez spécifier la famille de distribution et la fonction de liaison comme dansglm
. Donc, pour adapter un modèle avec une fonction de liaison de journal, vous pouvez spécifier l'optionfamily=gaussian(link="log")
dansgam
comme dansglm
.Jetez un oeil à cet article sur le site.
la source
mgcv
package etgam
. Si cela n'aide pas, je suis au bout de ma tête, j'ai peur. Il y a des gens ici beaucoup plus expérimentés que moi et ils peuvent peut-être vous donner des conseils supplémentaires. Je ne connais pas non plus le baseball. Il existe peut-être un modèle plus logique qui a du sens avec ces données.Vous devriez nous en dire plus sur la nature de votre variable de réponse (résultat, dépendante). Depuis votre premier graphique, il est fortement biaisé positivement avec de nombreuses valeurs proches de zéro et certaines négatives. De là, il est possible, mais pas inévitable, que la transformation vous aide, mais la question la plus importante est de savoir si la transformation rendrait vos données plus proches d'une relation linéaire.
Notez que les valeurs négatives pour la réponse excluent la transformation logarithmique directe, mais pas le log (réponse + constante), et pas un modèle linéaire généralisé avec lien logarithmique.
Il existe de nombreuses réponses sur ce site discutant le journal (réponse + constante), qui divise les statistiques: certaines personnes ne l'aiment pas comme étant ad hoc et difficile à travailler, tandis que d'autres le considèrent comme un appareil légitime.
Un GLM avec un lien de journal est toujours possible.
Alternativement, il se peut que votre modèle reflète une sorte de processus mixte, auquel cas un modèle personnalisé reflétant de plus près le processus de génération de données serait une bonne idée.
(PLUS TARD)
L'OP a une variable WAR dépendante avec des valeurs allant d'environ 100 à -2. Pour surmonter les problèmes de prise de logarithmes de valeurs nulles ou négatives, OP propose un fondu de zéros et de négatifs à 0,000001. Maintenant, sur une échelle logarithmique (base 10), ces valeurs vont d'environ 2 (environ 100) à -6 (0,000001). La minorité de points truqués à l'échelle logarithmique est maintenant une minorité de valeurs aberrantes massives. Tracez log_10 (Fudged WAR) contre quoi que ce soit d'autre pour voir cela.
la source