Los ciclos detectados son un problema importante para mi trabajo.Hola comunidad JMP
Los "ciclos detectados" son un problema importante (que ocurre con frecuencia) debido a la simulación de reglas comerciales que NO son cíclicas por filas. Sin embargo, JMP no puede manejar una dependencia de filas muy simple que Excel puede manejar. Francamente, no me gusta escuchar que JMP no es una hoja de cálculo porque creo que una parte importante de los usuarios probablemente tuvo este tipo de problema. Estoy luchando contra este problema constantemente ya que los datos se clasifican por registros (es decir, fecha/hora) y, como tales, están sujetos a registros anteriores. ¿Por qué JMP proporcionaría una función de retraso si no quisieran facilitar el manejo de operaciones por filas (y es genial, lo uso constantemente)? Pero al hacerlo, se abren los ciclos del problema detectado y, nuevamente, desde el punto de vista del pensamiento de la hoja de cálculo, no hay conflictos. Excel puede manejarlo fácilmente, JMP no. Tengo una licencia Pro y, francamente, enviar comentarios como este a mi alta dirección no se vería muy bien. Para mí, la principal ventaja de JMP Pro es la capacidad fácil de usar del modelado complejo, la ciencia de datos y el aprendizaje automático sobre big data. El problema descrito actualmente va en contra de la facilidad de uso de la herramienta. Si no puedo hacer nada más, necesito exportar desde JMP para poder hacerlo con Excel (lo cual es complicado)
Mis intenciones de este post:
1- ¿Hay algo que pueda hacer para llamar la atención de los desarrolladores sobre esto?
P.ej Intenté "Ignorar errores" e "Ignorar todos los ciclos" de forma independiente; tenía la expectativa de que estos hubieran omitido las comprobaciones necesarias y tal vez pudieran permitir que las fórmulas se ejecutaran (no lo hicieron).
2- ¿Existe algún enfoque basado en fórmulas (incluso si es un script, debe estar en una fórmula) que pueda usarse? Adjunto 2 ejemplos a continuación: los mismos cálculos, uno en JMP y el otro en xls.
A es una columna de entrada libre.
B se inicializa en A para el registro = 1, y luego A o el valor anterior de B (es decir, él mismo usa la función de retraso) depende de C
C es A - valor anterior de B
gracias.
Ingeniería de Calidad y ProcesosRe: Los ciclos detectados son un problema importante para mi trabajo.Mis parámetros reales eran más complicados que los que se muestran aquí en este sencillo ejemplo. La solución de Julian es igualmente aceptable, pero creo que tratar de poner toda la complejidad en una sola fórmula sería demasiado, por eso elegí el guión de Craige (que funcionó).
Intentaré enviar una nota a los desarrolladores de JMP para que (1) tal vez puedan aclarar los puntos de "Ignorar errores" e "Ignorar todos los ciclos", que nuevamente para mí suenan como si se pudiera evitar un problema de ciclos detectado, pero claramente No. (2) y tal vez puedan considerar poner una opción a JMP para evitarlo si no existe un cíclico real.
Re: Los ciclos detectados son un problema importante para mi trabajo.Este script produce la misma respuesta que la tabla de Excel y se parece mucho a las fórmulas de sus columnas.
dt = Open( "/Z:/cyclic_error_sample.jmp" );;
dt:b<<DELETEFORMULA> 1,
dt:a - lag(dt:b);//
,//
.
);
dt:b = If( dt:record == 1,
dt:a;//
, //
If( dt:c < 1.5,
dt:a;//
, //
lag(dt:b)
)
);
);</DELETEFORMULA>
El script coloca la evaluación de C antes de la evaluación de B, fila por fila, a diferencia de las fórmulas de columna JMP que evalúan columna por columna. Me tomó un minuto mirar sus fórmulas para ver que C necesita evaluar primero, porque solo depende de la fila anterior de B. Entonces B puede evaluar porque depende del valor de C que acabamos de calcular para la fila actual.
Estudiándolo un poco más... simplemente copie la fórmula C en la columna B en lugar de dt:C, así:
Removes the reference to column CRemoves the reference to column CElimina la referencia a la columna C.
Lo que te permitirá eliminar la columna C si realmente no la necesitas. También significa que las columnas se actualizarán automáticamente, a diferencia del primer script que deberá volver a ejecutar.
Re: Los ciclos detectados son un problema importante para mi trabajo.Hola @altug_bayram ,
¡Parece un problema muy frustrante encontrarse todo el tiempo en el trabajo! Estoy de acuerdo en que parece que "Ignorar todos los ciclos" debería funcionar como dice y dejar que las fórmulas continúen porque le está afirmando a JMP que en realidad no existe ninguna dependencia. Esto suena como un defecto, y la mejor manera de comunicárselo a los desarrolladores es enviar un correo electrónico soporte@jmp.com explicando el problema como lo tienes aquí.
Como solución alternativa, la solución es no crear ni siquiera el apariencia de una dependencia copiando la fórmula completa de la columna C y reemplazando las referencias a C con esa fórmula en la columna B:

If( :Record == 1,
:A,
If( If( :Record > 1, :A - Lag( :B, 1 ), . ) < 1.5,
:A,
Lag( :B, 1 )
)
)
Puede mantener su fórmula para C tal como está y su tabla se completará perfectamente. Esto no genera alarmas para un ciclo porque, en una sola fórmula, JMP tiene claro que las referencias a B en la fórmula de la columna para B ocurren a través de Lag(). Parece que cuando las fórmulas están en columnas diferentes, la detección del ciclo no tiene en cuenta el Lag() y solo ve que B hace referencia a C y hace referencia a B.

Espero que esto sea útil para su trabajo hasta que se solucione el problema "Ignorar todos los ciclos".
@Julian