Je veux faire une régression linéaire multiple puis prédire de nouvelles valeurs avec peu d'extrapolation. J'ai ma variable de réponse dans la plage de -2 à +7 et trois prédicteurs (les plages d'environ +10 à +200). La distribution est presque normale. Mais la relation entre la réponse et les prédicteurs n'est pas linéaire, je vois des courbes sur les graphiques. Par exemple, comme ceci: http://cs10418.userapi.com/u17020874/153949434/x_9898cf38.jpg
Je voudrais appliquer une transformation pour atteindre la linéarité. J'ai essayé de transformer la variable de réponse en vérifiant différentes fonctions et en regardant les graphiques résultants pour voir une relation linéaire entre la réponse et les prédicteurs. Et j'ai trouvé qu'il existe de nombreuses fonctions qui peuvent me donner une relation linéaire visible. Par exemple, les fonctions
etc. donnent les mêmes résultats: http://cs10418.userapi.com/u17020874/153949434/x_06f13dbf.jpg
Après je vais retransformer les valeurs prédites (pour commey′=1et ainsi de suite). Les distributions sont plus ou moins similaires à la normale.
Comment choisir la meilleure transformation pour mes données? Existe-t-il une manière quantitative (et pas très compliquée) d'évaluer la linéarité? Pour prouver que la transformation sélectionnée est la meilleure ou pour la trouver automatiquement si possible.
Ou la seule façon est de faire la régression multiple non linéaire?
plot(lm(1/(y+5)~r))
Réponses:
C'est un peu un art, mais il y a des choses simples et standard que l'on peut toujours essayer.
La première chose à faire est de ré-exprimer la variable dépendante ( ) pour rendre les résidus normaux. Ce n'est pas vraiment applicable dans cet exemple, où les points semblent tomber le long d'une courbe non linéaire lisse avec très peu de dispersion. Nous passons donc à l'étape suivante.y
La prochaine étape consiste à ré-exprimer la variable indépendante ( ) pour linéariser la relation. Il existe un moyen simple et facile de le faire. Choisissez trois points représentatifs le long de la courbe, de préférence aux deux extrémités et au milieu. À partir du premier chiffre, j'ai lu les paires ordonnées ( r , y ) = ( 10 , 7 ) , ( 90 , 0 ) et ( 180 , - 2 ) . Sans aucune autre information que celle r semble toujours être positive, un bon choix est d'explorer les transformations de Box-Coxr (r,y) (10,7) (90,0) (180,−2) r pour différentes puissances p , généralement choisi pour êtremultiple de 1 / deux ou 1 / 3 et typiquement comprise entre - 1 et 1 . (La valeur limite lorsque p s'approche de 0 est log ( r ) .) Cette transformation créera une relation linéaire approximative à condition que la pente entre les deux premiers points soit égale à la pente entre la deuxième paire.r→(rp−1)/p p 1/2 1/3 −1 1 p 0 log(r)
la source
r
r
Si votre variable de réponse (ou plutôt, ce qui deviendra les résidus de votre variable de réponse) sur l'échelle d'origine a une distribution normale comme vous l'impliquez, alors la transformer pour créer une relation linéaire avec les autres variables signifie qu'elle n'est plus normale et il modifiera également la relation entre sa variance et les valeurs moyennes. Donc, d'après cette partie de votre description, je pense qu'il vaut mieux utiliser une régression non linéaire que de transformer la réponse. Sinon, après une transformation linéaire de la réponse, vous aurez besoin d'une structure d'erreur plus complexe (bien que cela puisse être une question de jugement et que vous devrez vérifier, en utilisant des méthodes graphiques).
Vous pouvez également étudier la transformation des variables explicatives . En plus des transformations droites, vous avez également la possibilité d'ajouter en termes quadratiques.
Plus généralement, la transformation est plus un art qu'une science, s'il n'y a pas de théorie existante pour suggérer ce que vous devriez utiliser comme base de la transformation.
la source