Ich habe einige Zeitreihendaten, denen ich eine Löss-Kurve in ggplot2 anordne, wie im Anhang zu sehen ist. Die Daten nehmen die Form einer "S" -Kurve an. Was ich wirklich herausfinden muss, ist das Datum, an dem sich die Daten zu nivellieren beginnen, was ungefähr um die Zeit '550' oder '600'
zu sein scheintGibt es eine Art von quantitativer Art, dass dies in der Grafik markiert werden kann?
Ein Link zum Datensatz: Ссылка
A dput()
des Datensatzes:
Code:
%Vor%Wenn Sie nach einer Möglichkeit suchen, den Punkt zu bestimmen, an dem die Kurve maximal ist (dh flach), ist dies derselbe, als ob Sie den Punkt finden, an dem die Steigung der Linie am größten ist (aus Grundrechnung) / p>
Lesen Sie zuerst Ihre Daten:
%Vor% Als nächstes verwenden Sie loess
, um ein geglättetes Modell anzupassen:
Sagen Sie dann die Werte in Ihrem Bereich von x-Werten voraus (mit predict.loess
), bestimmen Sie die Steigung ( diff
ist nah genug) und finden Sie das
Da der Startwert von x 200 ist, bedeutet dies, dass die Kurve bei Position 200+367=567
flach ist.
Wenn Sie das plotten wollten:
%Vor%
Es hängt alles davon ab, was Sie mit "wo die Daten abzuflachen" meinen. Sie müssen dies in Mathe bringen. LOESS-Kurven können sehr holprig sein, je nachdem, welche Bandbreite Sie verwenden. Vielleicht möchten Sie die Zeile unter dem mit "Linie A" markierten Kommentar ändern, um anzugeben, was Sie meinen. Beispielsweise möchten Sie möglicherweise mehr als nur den ersten vorherigen Wert anzeigen. Sie könnten zum Beispiel die Summe der vorherigen 5 the_diff
-Werte betrachten.
Sie könnten beispielsweise Folgendes tun (ersetzen Sie den letzten Teil des obigen Codes, beginnend mit der the_diff
-Zeile)
Beachte auch, dass du vielleicht den the_diff
Vektor verschieben möchtest, je nachdem, was du unter "start to level off" meinst (dh in Zukunft wird es ausgleichen, oder es fängt bereits an sich zu nivellieren usw.) . Beachten Sie auch, dass the_diff
um die Länge seines Arguments lag
kürzer ist als Ihr Dataset.