Frage:
Ermitteln der Steigung an verschiedenen Punkten in einer Sigmoidkurve
89_Simple
2018-05-08 15:22:12 UTC
view on stackexchange narkive permalink

Dies sind meine Daten.

  x <-c (0,5,3,0,22,2,46,0,77,3,97,0,98,9,100,0)
Diagramm (x, pch = 19)
 

enter image description here

Ich möchte eine Kurve durch diese Punkte anpassen und dann die Steigung an verschiedenen Punkten berechnen.Kann mir jemand sagen, wie das in R

geht?

EDIT

Zuvor hatte ich einen Gompertz eingebaut, der mir eine "maximale" Steigung verlieh.Ich möchte wissen, was die Pisten für andere Punkte sind.

Einer antworten:
Roland
2018-05-08 16:13:42 UTC
view on stackexchange narkive permalink

Ihre Frage ist sehr weit gefasst. Es gibt viele Möglichkeiten, dies zu tun, auch ohne eine bestimmte Funktion zu übernehmen. Im Folgenden gehe ich davon aus, dass Sie einen guten Grund haben, das Gompertz-Modell zu verwenden.

Lassen Sie uns zuerst das Modell anpassen:

  y <c (0,5,3,0,22,2,46,0,77,3,97,0,98,9,100,0)
x <-seq_along (y)
Handlung (x, y)

fit <nls (y ~ SSgompertz (x, Asym, b2, b3), data = data.frame (x, y))
Kurve (vorhersagen (fit, newdata = data.frame (x)), add = TRUE)
 

resulting plot illustrating data and fit

Um die gewünschten Steigungen zu erhalten, müssen Sie nun die erste Ableitung der angepassten Funktion berechnen. Das ist einfache Highschool-Mathematik. Tatsächlich ist es so einfach, dass sogar R es kann, obwohl es kein Computeralgebrasystem ist.

  # Zuweisen von Koeffizienten zur globalen Umgebung
list2env (as.list (coef (fit)), .GlobalEnv)
# create-Funktion, die den Farbverlauf zurückgibt
dGomp <-Derivat ((y ~ Asym * exp (-b2 * b3 ^ x)), "x", func = TRUE)

#die Modellpisten:
c (attr (dGomp (x), "Gradient"))
## [1] 0.1010109 6.9594864 27.3791349 31.0194397 20.4539646 10.6588397 5.0141801 2.2561393
 


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...