Ich versuche, eine exponentielle Regression in ggplot2 zu tun. Also zuerst mein skript:R ggplot2 exponentielle Regression mit R² und p
g <- ggplot(data, aes(x=datax, y=datay), color="black") +
geom_point(shape=1) + stat_smooth(method = 'nls', formula = y~a*exp(b*x), aes(colour = 'Exponential'), se = FALSE)
g <- g + theme_classic()
g <- g + theme(panel.grid.major=element_blank())
g <- g + theme(panel.grid.minor=element_blank())
g <- g + theme(axis.line.x=element_line(color="black"),
axis.line.y=element_line(color="black"),
panel.border=element_blank(),
panel.background=element_blank())
g <- g + labs(x="\ndatax",y="datay\n")
g <- g + theme(axis.text.y=element_text(size=14))
g <- g + theme(axis.text.x=element_text(size=14))
g <- g + theme(axis.title.y=element_text(size=18,vjust=1))
g <- g + theme(axis.title.x=element_text(size=18,vjust=1))
g
Dies ist das Bild, das ich bekam
Als R-Anfänger ich das Drehbuch tat durch Skripte von mir und dem Internet zu mischen. Ich bekomme immer folgende Fehlermeldung:
"In (function (formula, data = parent.frame(), start, control = nls.control(), : No starting values specified for some parameters. Initializing ‘a’, ‘b’ to '1.'.Consider specifying 'start' or using a selfStart model"
ich keine bessere Art und Weise zu tun, um die exponentielle Graph, noch nicht gefunden hat.
Außerdem möchte ich die Farbe des Graphen in schwarz ändern und die Legende löschen, und ich möchte den R² und p Wert in der Grafik haben. (vielleicht auch die Konfidenzintervalle?)
rate ich würde versuchen, die 'nls' Funktion ausführen und Werte außerhalb von ggplot beginnend ersten, so können Sie sehen, was Sie tun. nicht wirklich verwandt, aber r2 macht keinen Sinn für die nichtlineare Regression (http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2892436/) – user20650
Könnten Sie bitte einige Daten zum Testen bereitstellen? – Eugen
Es sieht nicht wie ein Fehler aus, wie Sie eine Handlung erhalten. All is sagt, dass, weil Sie keine Startwerte für Ihre Parameter angegeben haben (wie Sie in nls tun müssen), dass sie bei eins initialisiert wurden. Beachten Sie, dass das Nicht-Spezifizieren von vernünftigen Startwerten oft dazu führt, dass es nicht konvergiert, so dass es wert ist, in dieses hinein zu schauen. – user20650