Berechnen Sie die rollierende Korrelation zwischen zwei Variablen in einer ZeitreiheHallo
Ich habe einen Datensatz in Form einer Zeitreihe mit täglichen Durchschnittswerten der Daten (die erste Spalte ist das Datum). Ich schaue mir gerade an, was mit einer bestimmten Variablen im Datensatz korreliert (nenne es Spalte X). Ich möchte prüfen, ob die Korrelation zeitabhängig ist, z. B. ob es Perioden mit OK-Korrelation und andere Perioden ohne / niedrige Korrelation gibt (für verschiedene Perioden "ein- und ausgeschaltet").
Mein erster Gedanke war, die Bewegungs- / Rollkorrelation zwischen Spalte X und den anderen Spalten zu berechnen, z. B. für die letzten 7 Tage, den letzten Monat, ...). Meine Fragen sind zweifach:
1) Wäre dies eine gute Möglichkeit, dies zu überprüfen, oder gibt es eine integrierte Analyse in JMP, die ich nicht kenne?
2) Wenn ich die "rollierende Korrelation" für eine Zeitreihe berechnen würde, wie würde ich dies in der Spaltenformel programmieren?
Im Voraus: Danke für die Hilfe für einen Neuling!
Jens
AnalytikDatentabelleSkriptingBetreff: Berechnen Sie die rollierende Korrelation zwischen zwei Variablen in einer ZeitreiheIch schlage vor, Sie schauen sich die in JMP verfügbare Zeitreihenanalyse an.Sie finden die Dokumentation in der JMP-Dokumentationsbibliothek
Hilfe => JMP-Dokumentationsbibliothek
Wenn Sie mit Ihrer vorgeschlagenen rollierenden Korrelation fortfahren möchten, finden Sie hier eine Formel, mit der Sie diese berechnen können.In diesem Beispiel wird die Big Class-Datentabelle aus der JMP-Beispieldatenbibliothek verwendet
Hilfe => Beispieldatenbibliothek
If( Row() >= 7,
y = :height[Index( Row() - 6, Row() )];
x = :weight[Index( Row() - 6, Row() )];
lin = Linear Regression( y`, x` );
Sqrt( lin[3]["RSquare"] );
)

Im Anhang befindet sich die Beispieldatentabelle mit der angewendeten Formel
Betreff: Berechnen Sie die rollierende Korrelation zwischen zwei Variablen in einer ZeitreiheHallo @JensD ,
Ich stimme vollkommen zu @ txnelson Wenn Sie sich die Zeitreihenplattform ansehen sollten, ist sie ideal, um die Kreuzkorrelation von Zeitdaten zwischen zwei Signalen zu untersuchen. Ich habe dies häufig verwendet, um Produktionsdatensignale mit QC-Daten zu vergleichen und Zeitverzögerungen zu ermitteln.
Wenn Sie diese Plattform ausführen, fügen Sie eine der Spalten als Y, Zeitreihe und die andere als Eingabeliste ein (und wählen die Autokorrelationsverzögerungen so aus, dass sie etwa die Hälfte der Anzahl der Zeilen in Ihrer Datentabelle betragen). Anschließend möchten Sie das Dienstprogramm für die Kreuzkorrelation unter der Hot-Schaltfläche neben der Analyse der Übertragungsfunktion ausführen.
Auch was ausbauen @ txnelson Für seinen Code geschrieben, können Sie sogar eine Tabellenvariable (z. B. Zeilenverzögerung) erstellen, ihr einen Wert geben und seine Spaltenformel so ändern, dass sie lautet:
If( Row() >= :rowlag,
y = :height[Index(Row()-:rowlag+1, Row())];
y = :weight[Index(Row()-:rowlag+1, Row())];
lin = Linear Regression(y`, x`);
Sqrt(lin[3]["RSquare"]);
)
Auf diese Weise wird jedes Mal, wenn Sie den Zeilenverzögerungswert in der Datentabelle ändern, diese Spalte mit den Korrelationswerten aktualisiert, sodass Sie problemlos verschiedene Verzögerungen testen können, ohne die Spaltenformel jedes Mal zu ändern.
Viel Glück!,
DS
Betreff: Berechnen Sie die rollierende Korrelation zwischen zwei Variablen in einer ZeitreiheDanke euch beiden, @ txnelson und @DiedrichSchmidt .
Ich werde beide Alternativen ausprobieren, damit ich die Unterschiede erkennen kann.
Jens