Ich versuche eine Regressionskurve an meine Daten anzupassen. Mein Code erzeugt das Diagramm und die Kurve, die ich möchte, aber ich brauche das Streudiagramm nicht - nur die Linie. Wenn ich die Handlung auskommentiere, schlägt mein Code fehl. Gibt es eine Möglichkeit, das Streudiagramm zu umgehen (zu umgehen, zu deaktivieren oder auszublenden)?Deaktivieren Sie das Streudiagramm, und drucken Sie nur die Regressionslinie
Letztlich werde ich multiple Regressionskurven auf meinem Diagramm und die Streudiagramme werden ablenkend vergleichen müssen. Auch mein R2 zeigt NULL. Gibt es einen Koeffizienten für R2?
Code unten. Hier
# get underlying plot
y <- dataset$'Fuel Consumed 24h'
x <-dataset$'Performance Speed'
plot(x, y, xlab = "Performance Speed", ylab = "24h Fuel Consumption")
# polynomial
f <- function(x,a,b,d) {(a*x^2) + (b*x) + d}
fit <- nls(y ~ f(x,a,b,d), start = c(a=1, b=1, d=1))
co <- round(coef(fit), 2)
r2 <- format(summary(fit)$r.squared, digits = 3)
curve(f(x, a=co[1], b=co[2], d=co[3]), add = TRUE, col="red", lwd=2)
eq <- paste0("Fuel = ", co[1], "PS^2 ", ifelse(sign(co[2]) == 1, " + ", " - "), abs(co[2]), "PS +", co[3], " R2 = ", r2)
# print equation
mtext(eq, 3, line =-2)
mylabel = bquote(italic(R)^2 == .(format(r2, digits = 3)))
text(x = 1, y = 2.5, r2)
Versuchen Sie, 'type = "n"' '... plot (x, y, type = "n", ...' und nls tut eine R^2 zurückkehren, wie es Sinn machen, tut (obwohl ich denke, dass es einige Pakete gibt, die das tun). Das heißt, Ihr Modell ist nicht nichtlinear, und Sie können es mit "lm" anpassen – user20650