Calcola la correlazione continua tra due variabili in una serie temporaleCiao
Ho un set di dati che ha la forma di una serie temporale con medie giornaliere di dati (la prima colonna è la data). Attualmente sto esaminando ciò che è correlato a una variabile specifica nel set di dati (chiamala colonna X). Vorrei verificare se la correlazione dipende dal tempo, ad esempio se ci sono periodi con correlazione OK e altri periodi con correlazione assente/bassa ("attivati" e disattivati per periodi diversi).
Il mio pensiero iniziale era di calcolare la correlazione mobile/rolling tra la colonna X e le altre colonne, ad esempio per gli ultimi 7 giorni, il mese scorso, ...). Le mie domande sono duplici:
1) Questo sarebbe un buon modo per verificarlo o esiste un'analisi incorporata in JMP che non conosco?
2) Se dovessi calcolare la "correlazione continua" per una serie temporale, come la programmerei nella formula della colonna?
In anticipo: grazie per l'aiuto a un principiante!
Jens
AnaliticaTabella datiScriptingOggetto: Calcolare la correlazione continua tra due variabili in una serie temporaleGrazie ad entrambi, @txnelson e @SDF1 .
Proverò entrambe le alternative in modo da poter vedere le differenze.
Jens
Oggetto: Calcolare la correlazione continua tra due variabili in una serie temporaleCiao @JensD ,
Sono completamente d'accordo con @txnelson , dovresti esaminare Time Series Platform, è ottimo per esaminare la correlazione incrociata dei dati temporali tra due segnali. L'ho usato molto per confrontare i segnali dei dati di produzione con i dati QC per trovare ritardi.
Quando esegui quella piattaforma, inserirai una delle colonne come Y, Time Series e l'altra come Input List (e scegli che Autocorrelation Lags sia circa la metà del numero di righe nella tua tabella di dati). Quindi, ti consigliamo di eseguire l'utilità di correlazione incrociata sotto il pulsante di scelta rapida accanto all'analisi della funzione di trasferimento.
Inoltre, costruendo cosa @txnelson ha scritto per il suo codice, puoi persino creare una variabile di tabella (ad es. Rowlag) e assegnarle un valore e modificare la sua formula di colonna in modo che sia:
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"]);
)
In questo modo, ogni volta che modifichi il valore di rowlag nella tabella dati, aggiornerà quella colonna con i valori di correlazione in modo da poter facilmente testare diversi ritardi senza cambiare ogni volta la formula della colonna.
Buona fortuna!,
DS
Oggetto: Calcolare la correlazione continua tra due variabili in una serie temporaleTi suggerisco di esaminare l'analisi delle serie temporali disponibile in JMP.È possibile trovare la documentazione nella libreria della documentazione di JMP
Aiuto=>Libreria della documentazione di JMP
se vuoi procedere con la tua proposta di correlazione continua, ecco una formula che può essere utilizzata per calcolarla.Questo esempio utilizza la tabella di dati Big Class della libreria di dati di esempio di JMP
Aiuto=>Libreria di dati di esempio
If( Row() >= 7,
y = :height[Index( Row() - 6, Row() )];
x = :weight[Index( Row() - 6, Row() )];
lin = Linear Regression( y`, x` );
Sqrt( lin[3]["RSquare"] );
)

In allegato la tabella dei dati di esempio con la formula applicata