Schöne Grüße,
Ich forsche, um die Größe des beobachteten Raums und die seit dem Urknall verstrichene Zeit zu bestimmen. Hoffentlich kannst du helfen!
Ich habe Daten, die einer stückweise linearen Funktion entsprechen, für die ich zwei lineare Regressionen ausführen möchte. Es gibt einen Punkt, an dem sich die Steigung und der Achsenabschnitt ändern, und ich muss diesen Punkt finden (ein Programm schreiben, um ihn zu finden).
Gedanken?
regression
change-point
Rhombidodekaeder
quelle
quelle
Antworten:
Das
mcp
Paket kann dies tun. Angenommen, Ihre Daten sindLassen Sie uns zunächst einige Daten simulieren:
Nun wollen wir sehen, ob wir den Änderungspunkt bei 40 (und die Parameterwerte) wiederherstellen können, indem wir
mcp
:Plotten Sie es. Die grauen Linien sind zufällige Zeichnungen aus der Anpassung, die zeigen, dass sie den Trend erfassen. Die blaue Kurve ist die geschätzte Position des Änderungspunkts:
Sehen wir uns die einzelnen Parameterschätzungen an.
int_
sind Abschnitte,x_
sind Steigungen auf x undcp_
sind Änderungspunkte:Haftungsausschluss: Ich bin der Entwickler von
mcp
.quelle
R-Paket strucchange könnte Ihnen helfen. Schauen Sie sich die Vignette an, sie hat einen schönen Überblick darüber, wie man ähnliche Probleme löst.
quelle
quelle
Dies ist ein (Offline-) Änderungspunkterkennungsproblem. Unsere vorherige Diskussion enthält Verweise auf Zeitschriftenartikel und R-Code. Schauen Sie sich zuerst das "Produktpartitionsmodell" von Barry und Hartigan an , da es Änderungen in der Steigung handhabt und effizient implementiert werden kann.
quelle
Auch das segmentierte Paket hat mir in der Vergangenheit bei ähnlichen Problemen geholfen.
quelle
segmented
können Intercept-Änderungen zwischen Segmenten nicht modelliert werden - nur ein Intercept für das erste Segment.Ich baute auf der Antwort von mbq auf, nach allen Möglichkeiten zu suchen. Außerdem mache ich das:
Warum auf die Bedeutung prüfen? Dies liegt daran, dass der Punkt mit der minimalen SSE bedeutungslos ist, wenn eines der stückweisen Modelle sehr schlecht zu den Daten passt. Dies kann für zwei stark korrelierte Variablen ohne einen klaren Haltepunkt geschehen, an dem sich die Steigungen ändern.
Lassen Sie uns diesen einfachen Ansatz anhand eines einfachen Testfalls überprüfen:
Der Haltepunkt ist offensichtlich Null. Verwenden Sie das folgende R-Skript:
Passen Sie stückweise lineare Modelle für alle möglichen Kombinationen an:
Wenn wir die Koeffizienten für die beiden optimalen Modelle überprüfen, sind sie von hoher Bedeutung. Ihr R2 wird auch sehr hoch sein.
quelle