Wie kann man Änderungen der Steigung in der LOESS-Kurve mit ggplot2 markieren?

8

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 scheint

Gibt es eine Art von quantitativer Art, dass dies in der Grafik markiert werden kann?

Ein Link zum Datensatz: Ссылка

A dput() des Datensatzes:

%Vor%

Grafik:

Code:

%Vor%     
user1062293 23.11.2011, 16:35
quelle

2 Antworten

5

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:

%Vor%

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

%Vor%

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%

    
Andrie 23.11.2011, 17:09
quelle
4

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.

%Vor%

Sie könnten beispielsweise Folgendes tun (ersetzen Sie den letzten Teil des obigen Codes, beginnend mit der the_diff -Zeile)

%Vor%

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.

    
Xu Wang 23.11.2011 17:24
quelle

Tags und Links