J'essaie d'ajouter une courbe quadratique ajustée à un graphique.
abline(lm(data~factor+I(factor^2)))
La régression affichée est linéaire et non quadratique et je reçois ce message:
Message d'avis: In abline (lm (facteur de données + I (facteur ^ 2)), col = Palette: utilisation des deux premiers des 3 Coefficients de régression
ce qui signifie:
Utilisation des 2 premiers des 3 coefficients de régression
Lors de l'exécution de la fonction lm()
uniquement, je ne reçois aucun message.
Voici un exemple de données:
factor <- 1:7
data <- c(0.1375000,0.2500000,0.3416667,0.4583333,0.7250000,0.9166667,1.0000000)
Au lieu d'utiliser abline
, utilisez fitted
, qui vous donne un vecteur de la même longueur que votre saisie des prédictions:
fitted(lm(data~factor+I(factor^2)))
# 1 2 3 4 5 6 7
# 0.1248016 0.2395833 0.3699405 0.5158730 0.6773810 0.8544643 1.0471230
Ainsi, quelque chose comme:
plot(factor, fitted(lm(data~factor+I(factor^2))), type="l")
Vous pouvez utiliser predict
pour cela:
plot(factor,data)
lines(predict(lm(data~factor+I(factor^2))))
Je ne pouvais pas obtenir de réponses pour le moment, car l'ensemble de données que j'ai utilisé contient des valeurs x qui n'augmentent pas (comme indiqué par David Robinson ci-dessus). Voici comment je l'ai résolu ...
require(ISLR)
plot(mpg~horsepower,data=Auto)
glm.fit = glm(mpg~poly(horsepower,2),data=Auto)
# create 100 x-values based on min/max of plotted values
minMax = range(Auto$horsepower)
xVals = seq(minMax[1], minMax[2], len = 100)
# Use predict based on a dataframe containing 'horsepower'
yVals = predict(lm.fit, newdata = data.frame(horsepower=xVals))
lines(xVals, yVals)
merci pour toutes ces précieuses réponses. Fais attention:
Utilisation
yVals = prédire (glm.fit, newdata = data.frame (chevaux = xVals)
yVals = prédire (lm.fit, newdata = data.frame (chevaux = xVals)
lm.fit est une fonction