2016-04-09 4 views
-1

Ich habe ein parametric polynomial regression in R, dass ich wie so meine Daten ausgestattet:Wie plotten Sie Polynom in R?

poly_model <- lm(mydataframef$y ~ poly(mydataframe$x,degree=5)) 

mydf offensichtlich enthält y und x. Ich plotten es dann wie dieses

plot(mydataframe$x, mydataframe$y, xlab='regressor or predictor variable polynomial regression', ylab='outcome or label') 

Dann habe ich das Polynom hinzufügen möchten, die ausgestattet war, so dass ich wie folgt vorgehen:

abline(poly_model) 

Das gibt mir eine Warnung: Warning message: In abline(poly_model) : only using the first two of 6 regression coefficients

Of Natürlich ist die Handlung alles andere als verrückt, weil, wie versprochen, nur die ersten zwei verwendet werden, die der Schnittpunkt und die Steigung sind. Warum sollte es nur die ersten beiden Koeffizienten verwenden, wenn ich nur eine Prädiktorvariable habe? Also sollte die Handlung sowieso 2-d sein? Verwirrt. Vielen Dank.

+2

Funktioniert dies [http://stackoverflow.com/questions/23334360/plot-polynomial-regression-curve-in-r] Link Hilfe? – steveb

+0

Kommen Sie mit einem Bereich von x-Werten, verwenden Sie "Predictive", um die y-Werte zu generieren und plotten sie. 'newx = seq (min (dat $ x), max (dat $ x), länge.out = 100); newdat = Datenrahmen (newx = newx); newdat $ newy vorhersagen (poly_model, newdata = newdat); mit (newdat, plot (newx, newy, type = "l") '. – Gregor

+0

Der Versuch,' abline' zu ​​verwenden, um eine polynomische Antwort zu zeichnen, scheint sehr unklug. 'abline' ist für, nun, ... Zeilen. Ironischerweise was Sie wahrscheinlich wollen wir die 'lines' Funktion, die Kurven zeichnen wird –

Antwort

1

Hier ist die Antwort,

poly_model <- lm(mpg ~ poly(hp,degree=5), data = mtcars) 

x <- with(mtcars, seq(min(hp), max(hp), length.out=2000)) 
y <- predict(poly_model, newdata = data.frame(hp = x)) 

plot(mpg ~ hp, data = mtcars) 
lines(x, y, col = "red") 

Der Ausgang Plot ist,

enter image description here

2

Verwenden Sie fitted. Mit Hilfe der eingebauten data.frame BOD:

fm <- lm(demand ~ poly(Time, 3), BOD) 
plot(demand ~ Time, BOD) 
lines(fitted(fm) ~ Time, BOD, col = "red") 

geben:

screenshot

+0

Dies scheint nicht zu einem Polynom zu passen.Es ist eine Art von Spline-Regression? – Sother

+1

Die Passung hier ist, was die Frage gestellt und ist das gleiche wie in der anderen Antwort (Modulo der Datensatz und Grad) –

+0

Ich sehe jetzt, dass es weil die Anzahl der Punkte verbunden ist weniger, so dass es abgehackt aussieht, aber es ist richtig, danke! – Sother