Hinzufügen einer Regressionslinie auf einem ggplot
Ich versuche hart zum hinzufügen einer Regressionsgeraden auf einen ggplot. Zuerst habe ich versucht mit abline aber ich schaffte es nicht, damit es funktioniert. Dann habe ich versucht, dieses...
data = data.frame(x.plot=rep(seq(1,5),10),y.plot=rnorm(50))
ggplot(data,aes(x.plot,y.plot))+stat_summary(fun.data=mean_cl_normal) +
geom_smooth(method='lm',formula=data$y.plot~data$x.plot)
Aber es ist nicht arbeiten entweder.
InformationsquelleAutor der Frage Remi.b | 2013-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Allgemeinen, um Ihre eigene Formel, die Sie verwenden sollten Argumente
x
undy
wird, entsprechen die Werte, die Sie inggplot()
- in diesem Fallx
interpretiert werden, alsx.plot
undy
alsy.plot
. Mehr Informationen über smoothing-Methoden und der Formel finden Sie in der Hilfe-Seite der Funktionstat_smooth()
wie es ist Standard-stat verwendetgeom_smooth()
.Wenn Sie verwenden die gleichen x-und y-Werte, die Sie angegeben haben in der
ggplot()
nennen und müssen plot linear regression line, dann brauchen Sie nicht zur Verwendung der Formel ingeom_smooth()
nur liefern diemethod="lm"
.InformationsquelleAutor der Antwort Didzis Elferts
Als ich gerade dachte, im Falle Sie haben eine Modell eingebaut, die auf multiple lineare regressiondie oben genannten Lösung nicht funktionieren.
Erstellen Sie Ihre Zeile manuell als dataframe enthält vorhergesagten Werte für Ihre ursprünglichen dataframe (in deinem Fall
data
).Würde es so Aussehen:
InformationsquelleAutor der Antwort StefanK
Wenn Sie wollen, passen andere Art von Modellen, wie eine Dosis-Antwort-Kurve mit der logistischen Modelle Sie würden auch brauchen, um erstellen Sie mehrere Datenpunkte mit der Funktion predict, wenn Sie möchten, um eine glattere Regressionsgeraden:
fit: die Passform eines logistischen Regressions-Kurve
InformationsquelleAutor der Antwort user3436882
Fand ich diese Funktion auf einem blog
sobald Sie geladen, die Funktion, die Sie könnte einfach
können Sie auch gehen, für
ggplotregression( y ~ x + z + Q, data)
Hoffe, das hilft.
InformationsquelleAutor der Antwort YellowEagle