Los científicos e ingenieros usan sensores en línea y dispositivos de medición para monitorear una variedad casi infinita de atributos de proceso. Cuando se analizan datos de series temporales capturados por historiadores y registradores de datos, surgen regularmente dos preguntas: "¿Cómo puedo calcular un promedio móvil?" y una pregunta relacionada: "¿Cómo marco filas después de que se produce un vacío en los datos de mis series temporales?"
JMP puede hacer ambas cosas fácilmente, pero la respuesta requiere un poco de conocimiento de una función de fórmula de columna de uso menos frecuente.
A menudo es conveniente calcular un promedio móvil para datos muestreados en el tiempo. Esto amortigua el ruido en el flujo de datos y nos permite tener un valor de medición promedio en un punto específico en el tiempo. Por ejemplo, en la tabla de datos de la Figura 4, tengo un medidor de pH en línea que registra una medición una vez por segundo, pero mi medidor de turbidez solo puede registrar una medición cada 10 segundos. Podría hacer coincidir la lectura de turbidez de 10 segundos con la medición de pH correspondiente, pero la lectura de turbidez en realidad representa los 10 segundos anteriores de lo que vio el instrumento, y me gustaría compararlo con una resolución de pH similar de 10 segundos. Para hacer esto, necesitaré calcular el promedio móvil de los últimos 10 segundos de las mediciones de pH. La resolución de 1 segundo y los promedios móviles de 10 segundos se comparan en el gráfico Graph Builder debajo de la tabla en la Figura 5.
La segunda pregunta surge cuando estamos usando promedios móviles. Una suposición que tenemos con un promedio móvil es que cada medición está igualmente espaciada. Esto hace que la media móvil sea ponderada uniformemente en todos los intervalos. Pero periódicamente (en la vida real), hay brechas breves en el flujo de datos, y se necesitan identificar brechas más largas que un período de tiempo significativo para alertarnos de que la suposición se ha roto. Estas brechas son causadas por una variedad de problemas, como cortocircuitos, interrupciones intermitentes o simplemente datos faltantes de dispositivos conectados a la red.
Se puede calcular un promedio móvil en un solo paso utilizando la función Suma en el editor de fórmulas de columna.
Como texto, la fórmula en la Figura 1 es Suma (i = 0, 9, Lag (: pH, i)) / 10
La función de suma (Figura 1) funciona como un ciclo iterativo. En este caso, mientras "i" está entre 0 y 9, calcula la suma de los valores que obtiene del argumento de la derecha. El argumento de la derecha se evalúa como Lag (: pH, 0), Lag (: pH, 1), Lag (: pH, 2), Lag (: pH, 3) ... Lag (: pH, 9). En este caso, Lag (: pH, 0) es el valor en la fila actual de la columna de pH, y Lag (: pH, 9) es el valor 9 filas por encima de la fila actual (para un total de 10 filas).
El segundo problema es un poco complicado, y será más fácil dividirlo en dos pasos. En el paso uno, crearemos una columna de fórmula para marcar los grandes espacios de tiempo, y luego en el paso dos, agregaremos una segunda fórmula que marcará un rango de filas después del espacio de tiempo.
El primer paso es hacer una nueva columna llamada "Time Gap" y luego agregar una fórmula para marcar las brechas cuando son más de 5 segundos de esta manera:
: Marca de tiempo - Retraso (: Marca de tiempo, 1)> 5
O si quisiera intensificarlo un poco, podría usar la función de diferencia de fecha de esta manera:
Diferencia de fecha (retraso (: marca de tiempo, 1),: marca de tiempo, "segundo")> 5
En este caso específico, quería saber cuándo ocurrieron brechas de tiempo de 5 segundos o más; en otros proyectos, realmente solo necesitaba saber cuándo ocurrieron brechas más largas.
La función de diferencia de fecha calcula la diferencia entre dos valores de fecha y devuelve el resultado en unidades que se pueden especificar (por ejemplo, hora, minuto, día, semana, año). En ambos casos, si la diferencia es mayor que 30, entonces la fórmula se evalúa como "1" para verdadero y "0" para falso.
En el segundo paso, creamos otro nuevo nombre de columna "Gap Flag" y agregamos una fórmula para marcar 10 filas siguiendo el espacio detectado en la columna de espacio de tiempo.
Como texto, la fórmula de la Figura 2 es Suma (i = 0, 9, Lag (: Time Gap, i))> 0
Una vez más, la función de suma (Figura 2) funciona como un bucle iterativo. Esta vez, se combina con un argumento condicional. Mientras que "i" está entre 0 y 9, si la suma de los valores en la columna Time Gap es mayor que 0, entonces la fórmula evaluada como "1" para verdadero o "0" para falso. Si hay al menos un "1" en la columna de tiempo de intervalo para las 30 filas anteriores, entonces el valor en esta columna de indicador también es 1.
Con solo un par de pequeños ajustes, también podemos hacer que esta fórmula establezca el color del creador de filas. Para utilizar esta fórmula, cree una nueva columna y establezca el tipo de datos en "Estado de fila".
If (Suma (i = 0, 9, Lag (: Time Gap, i))> 0,
Estado de fila () = Estado de color ("rojo"),
Estado de fila () = Estado de color ("azul")
);
La función de suma es una herramienta importante en su caja de herramientas JMP, y puede ahorrar mucho tiempo y esfuerzo. Para obtener más información sobre la sintaxis y el uso de la función Suma, consulte Uso de JMP, los libros de la Guía de secuencias de comandos y el Índice de secuencias de comandos; todos se encuentran en el menú Ayuda en JMP.