Tau de Kendall de FórmulaHola
Tenía algunas preguntas en un hilo diferente con respecto a la necesidad de obtener pendientes de ajuste lineal de una fórmula en lugar de un script.
Esta pregunta es similar. ¿Hay alguna manera de extraer la Tau de Kendall para un parámetro de serie de tiempo dado usando una fórmula (y no usando el análisis de múltiples variables o un script)?
Mi objetivo es probar la tendencia no paramétrica para diferentes períodos de tiempo a partir de los cuales se producen los datos (es decir, me gustaría establecer ventanas móviles y luego probar Tau de Kendall). Gracias ....
Re: Tau de Kendall de FormulaJim
Esto funcionó muy bien.
El único problema pequeño es una advertencia con el uso de "Tabla de datos actuales" dentro de una fórmula.
JMP lanza una advertencia que indica que se use una función Eval o Expr Eval en su lugar.
Probablemente activaría y luego desactivaría esta función después de que haya terminado de calcular.
Esto ha sido de gran ayuda. Muchas gracias.
Re: Tau de Kendall de FormulaCuando se usan plataformas JMP en una fórmula, al igual que cuando las usa de forma interactiva o en un script, la entrada a la plataforma tiene que ser columnas de una tabla de datos.Por lo tanto, no puede hacer referencia a la entrada creando una matriz de entrada.Entonces, lo que hice para que su fórmula funcionara es aprovechar la posibilidad de Excluir filas de la tabla de datos y cuando se ejecuta la plataforma, ignorará esas filas.Aquí está la fórmula y el resultado que crea:
dt = Current Data Table();
If( Row() >= 10,
currentRow = Row();
dt << clear rowstates;
dt << select where( Row() <= currentRow - 10 | Row() > currentRow );
excludeRows = dt << get selected rows;
dt << hide and exclude;
mv = dt << Multivariate(
invisible,
Y( :TimeStep, :F ),
Estimation Method( "Row-wise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( Density Ellipses( 0 ), Shaded Ellipses( 0 ) ),
Kendall's τ( 1 )
);
tau = (Report( mv )["Nonparametric: Kendall's τ"][Number Col Box( 1 )] << get)[1];
mv << close window;
If( Row() == N Rows( dt ),
dt << clear rowstates
);
tau;
);
la tabla de datos

Sugiero que una vez que haya creado la columna y haya ejecutado la fórmula, vaya al cuadro de diálogo Col Info y elimine la fórmula.Dejará los valores estáticos, pero no volverá a ejecutar la fórmula una y otra vez.... no es el más rápido
Re: Tau de Kendall de FormulaAl ver su otra respuesta sobre las pendientes lineales, tuve otra idea de dónde colocar el índice para MK, pero tampoco funcionó.
adjunto en mi último intento con ese quinto intento
Re: Tau de Kendall de FormulaHola
Gracias por esta gran respuesta. Esto fue realmente una revelación para mí porque mostró que las fórmulas pueden contener estructuras similares a secuencias de comandos, lo cual era desconocido para mí.
Acepté su solución, pero necesito su ayuda una vez más.
Subir un conjunto de datos de muestra.
Mi necesidad de MK tau está en filas para una sola columna. Eso está hecho correctamente (mi adaptación de su ayuda anterior) en col Tau_WholeData.
Lo que realmente estoy tratando de hacer es obtener una tendencia de un solo parámetro en intervalos de tiempo (tendencia temporal, por así decirlo).
Así que estoy tratando de configurar una ventana móvil (rodante) de tamaño 10, comenzar la ventana en la fila 10 y luego moverla un registro (fila), cada vez que calculo MK Tau de las 10 filas anteriores.
Hice cosas similares con la función Index (p. ej., Index( Row() - 9, Row() )) para 10 filas y probé 3-4 opciones diferentes para colocar esto en la fórmula Tau_WholeData, hasta ahora sin éxito.
Le agradezco si me puede decir cómo debo cambiar esto.
Gracias ...
Re: Tau de Kendall de FormulaAquí está el cálculo en todas las columnas de análisis en la tabla de datos y se coloca en las filas de la columna de fórmula calculada.La tabla de datos está adjunta, la fórmula está debajo
