2013-02-17 12 views
9

Ich versuche eine angepasste quadratische Kurve zu einem Plot hinzuzufügen.Fügen Sie eine angepasste quadratische Kurve hinzu

abline(lm(data~factor+I(factor^2))) 

Die Regression, die angezeigt wird, ist linear und nicht quadratisch und ich bekomme diese Meldung:

Nachricht d'avis: In abline (lm (data ~ Faktor + I (Faktor^2)) , col = Palette [Iteration]): Verwendung des deux premiers des 3 Koeffizienten de régression

was bedeutet:

Verwendung der ersten 2 des 3 Regressionskoeffizienten

Wenn nur die lm() Funktion läuft ich keine Nachrichten.

Hier ist ein Beispieldaten:

factor <- 1:7 
data <- c(0.1375000,0.2500000,0.3416667,0.4583333,0.7250000,0.9166667,1.0000000) 

Antwort

10

Statt abline zu verwenden, verwenden fitted, die Sie einen Vektor, der die gleiche Länge wie die Eingabe der Vorhersagen gibt:

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 

So etwas wie:

plot(factor, fitted(lm(data~factor+I(factor^2))), type="l") 
4

Sie können predict verwenden dafür:

plot(factor,data) 
lines(predict(lm(data~factor+I(factor^2)))) 

enter image description here

+5

Vorsicht - diese Zeile funktioniert nur * weil * Faktor ist eine Folge von aufeinander folgenden steigenden Ganzzahlen ab 1. –

3

ich Antworten nicht so weit kommen konnte zu arbeiten, als Datensatz verwenden I hat x-Werte, die nicht zu erhöhen (wie von David Robinson oben angegeben). Hier ist, wie ich es gelöst habe ...

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) 
0

danke für alle diese wertvolle Antwort. Vorsicht:

Verwenden

predict Verwendung basierend auf einem Datenrahmen enthalten 'PS'

yVals = predict (glm.fit, newdata = data.frame (PS = xVals)

Verwendung vorhersagen basierend auf einem Datenrahmen 'PS'

yVals = vorherzusagen (lm.fit, newdata = data.frame (PS = xVals)

lm.fit enthält, ist ein fu nction

Verwandte Themen