Tracé de la courbe de régression polynomiale dans la R
J'ai une simple régression polynomiale qui je fais comme suit
attach(mtcars)
fit <- lm(mpg ~ hp + I(hp^2))
Maintenant, j'ai tracé comme suit
> plot(mpg~hp)
> points(hp, fitted(fit), col='red', pch=20)
Cela me donne la suite
Je veux me connecter ces points dans une courbe lisse, en utilisant les lignes me donne la suite
> lines(hp, fitted(fit), col='red', type='b')
Ce qui me manque ici. Je veux que la sortie d'une courbe lisse qui relie les points
- Vous ne devriez pas utiliser
attach
, il peut causer de nombreux bugs.
Vous devez vous connecter pour publier un commentaire.
Essayer:
Parce que vos unités statistiques dans le jeu de données ne sont pas commandés, ainsi, lorsque vous utilisez
lines
c'est un gâchis.fitted()
approche ne va pas produire une mise en œuvre harmonieuse du polynôme ajusté/fonctionJ'aime utiliser
ggplot2
pour cela, car il est généralement très intuitif à ajouter des couches de données.Généralement une bonne façon est d'utiliser l'
predict()
fonction. Choisissez desx
valeurs, utilisezpredict()
pour générer correspondanty
valeurs, et de les indiquer. Il peut ressembler à quelque chose comme ceci:Voir Romain de réponse pour un amateur de version de cette méthode, où les intervalles de confiance sont calculés trop. Dans les deux cas, la tracé de la solution est accessoire - vous pouvez utiliser la base de graphiques ou d'
ggplot2
ou autre chose que vous aimeriez - la clé est suffit d'utiliser la fonction predict pour générer le bon, les valeurs de y. C'est une bonne méthode, car il s'étend à toutes sortes de crises, pas seulement polynôme de modèles linéaires. Vous pouvez l'utiliser avec des modèles non-linéaires, GLMs, splines de lissage, etc. - quoi que ce soit avec unpredict
méthode.predict()
approche, n'est-ce pas?ggplot
peut être un obstacle pour de nouveaux R les utilisateurs de sorte qu'il est agréable de faire la démonstration de la méthode à l'aide de la base. Mais je vais modifier pour reconnaître Romain efforts.