Berechnen Sie die rollierende Korrelation zwischen zwei Variablen in einer ZeitreiheHallo
Ich habe einen Datensatz in Form einer Zeitreihe mit Tagesdurchschnitten der Daten (die erste Spalte ist das Datum). Ich schaue mir gerade an, was mit einer bestimmten Variablen im Datensatz korreliert (nennen Sie es Spalte X). Ich möchte prüfen, ob die Korrelation zeitabhängig ist, z. B. ob es Zeiträume mit OK-Korrelation und andere Zeiträume mit keiner/geringer Korrelation gibt („ein- und ausgeschaltet“ für verschiedene Zeiträume).
Mein erster Gedanke war, die gleitende/rollende Korrelation zwischen Spalte X und den anderen Spalten zu berechnen, z. B. für die letzten 7 Tage, den letzten Monat, ...). Meine Fragen sind zweierlei:
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 „gleitende Korrelation“ für eine Zeitreihe berechnen würde, wie würde ich dies in der Spaltenformel programmieren?
Im Voraus: Vielen Dank für die Hilfe an einen Neuling!
Jens
Erweiterte statistische ModellierungBetreff: Berechnen Sie die rollierende Korrelation zwischen zwei Variablen in einer ZeitreiheDanke euch beiden, @txnelson Und @SDF1 .
Ich werde beide Alternativen ausprobieren, damit ich die Unterschiede erkennen kann.
Jens
Betreff: Berechnen Sie die rollierende Korrelation zwischen zwei Variablen in einer ZeitreiheHallo @JensD ,
Ich stimme voll und ganz zu @txnelson , sollten Sie sich die Time Series Platform ansehen. Sie eignet sich hervorragend für die Untersuchung der Kreuzkorrelation von Zeitdaten zwischen zwei Signalen. Ich habe dies oft verwendet, um Produktionsdatensignale mit QC-Daten zu vergleichen und Zeitverzögerungen zu finden.
Wenn Sie diese Plattform ausführen, geben Sie eine der Spalten als Y, Zeitreihe und die andere als Eingabeliste ein (und wählen Sie 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 „Kreuzkorrelation“ unter der Hot-Schaltfläche neben der Übertragungsfunktionsanalyse ausführen.
Auch was aufbauen @txnelson für seinen Code geschrieben hat, können Sie sogar eine Tabellenvariable (z. B. rowlag) erstellen, ihr einen Wert zuweisen und seine Spaltenformel wie folgt ändern:
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 jedes Mal die Spaltenformel ändern zu müssen.
Viel Glück!,
DS
Betreff: Berechnen Sie die rollierende Korrelation zwischen zwei Variablen in einer ZeitreiheIch schlage vor, dass Sie sich die in JMP verfügbare Zeitreihenanalyse ansehen.Dokumentation finden Sie 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 Datentabelle „Big Class“ aus der JMP Sample Data Library 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 finden Sie die Beispieldatentabelle mit der angewendeten Formel