Calcular la correlación progresiva entre dos variables en una serie de tiempoHola
Tengo un conjunto de datos que tiene la forma de una serie de tiempo con promedios diarios de datos (la primera columna es la fecha). Actualmente estoy viendo qué se correlaciona con una variable específica en el conjunto de datos (llámelo columna X). Me gustaría comprobar si la correlación depende del tiempo, por ejemplo, si hay períodos con correlación correcta y otros períodos sin correlación / baja ("encendido" y apagado para diferentes períodos).
Mi pensamiento inicial fue calcular la correlación de movimiento / movimiento entre la columna X y las otras columnas, por ejemplo, durante los últimos 7 días, el mes pasado, ...). Mis preguntas son dobles:
1) ¿Sería esta una buena manera de verificar esto, o hay un análisis integrado en JMP que no sé?
2) Si tuviera que calcular la "correlación continua" para una serie de tiempo, ¿cómo lo programaría en la fórmula de la columna?
De antemano: ¡gracias por la ayuda a un novato!
Jens
AnalíticaTabla de datosScriptingRe: calcular la correlación continua entre dos variables en una serie de tiempoLe sugiero que consulte el análisis de series temporales disponible en JMP.Puede encontrar documentación en la biblioteca de documentación de JMP
Ayuda => Biblioteca de documentación JMP
Si desea seguir adelante con su correlación progresiva propuesta, aquí hay una fórmula que puede usarse para calcularla.Este ejemplo utiliza la tabla de datos Big Class de la biblioteca de datos de muestra de JMP
Ayuda => Biblioteca de datos de muestra
If( Row() >= 7,
y = :height[Index( Row() - 6, Row() )];
x = :weight[Index( Row() - 6, Row() )];
lin = Linear Regression( y`, x` );
Sqrt( lin[3]["RSquare"] );
)

Se adjunta la tabla de datos de muestra con la fórmula aplicada
Re: calcular la correlación continua entre dos variables en una serie de tiempoHola @JensD ,
Estoy completamente de acuerdo con @txnelson , debe buscar en la plataforma de series temporales, es excelente para ver la correlación cruzada de datos de tiempo entre dos señales. He usado esto mucho para comparar señales de datos de producción con datos de control de calidad para encontrar retrasos.
Cuando ejecute esa plataforma, colocará una de las columnas como Y, Serie temporal y la otra como Lista de entrada (y elija Retraso de autocorrelación para que sea aproximadamente la mitad del número de filas en su tabla de datos). Luego, querrá ejecutar la utilidad de Correlación cruzada debajo del botón de acceso rápido al lado del Análisis de la función de transferencia.
Además, a partir de lo que @txnelson escribió para su código, incluso puede crear una variable de tabla (por ejemplo, rowlag) y darle un valor y modificar su fórmula de columna para que sea:
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"]);
)
De esa manera, cada vez que cambie el valor de intervalo de fila en la tabla de datos, actualizará esa columna con los valores de correlación para que pueda probar fácilmente diferentes retrasos sin cambiar la fórmula de la columna cada vez.
¡Buena suerte!,
DS
Re: calcular la correlación continua entre dos variables en una serie de tiempoGracias a los dos, @txnelson y @DiedrichSchmidt .
Probaré ambas alternativas para poder ver las diferencias.
Jens