0 / 0
Volver a la versión inglesa de la documentación
Funciones de secuencia
Última actualización: 07 oct 2024
Funciones de secuencia (SPSS Modeler)

Para algunas operaciones, la secuencia de eventos tiene su importancia.

La aplicación permite trabajar con las siguientes secuencias de registros:

  • Secuencias y series temporales
  • Funciones de secuencia
  • Indización de registros
  • Media, suma y comparación de valores
  • Supervisión de cambios - diferenciación
  • @SINCE
  • Valores de desplazamiento
  • Recursos de secuencias adicionales

Para muchas aplicaciones, cada registro que pasa por una ruta se puede considerar como un caso individual, independiente de todos los demás. En estas situaciones, el orden de los registros suele no ser importante.

Sin embargo, para algunos tipos de problemas, la secuencia de registros es de gran importancia. Suelen ser situaciones de series temporales, en las que la secuencia de registros representa una secuencia de eventos o instancias ordenada. Cada registro representa una instantánea de un momento concreto; sin embargo, gran parte de la información más importante puede no estar contenida en valores instantáneos, sino en el modo en que tales valores cambian y se comportan durante un período de tiempo.

Por supuesto, el parámetro relevante puede no ser temporal. Por ejemplo, los registros podrían representar análisis realizados a distintas distancias a lo largo de una línea, pero se aplicarían los mismos principios.

Las funciones de secuencia y especiales se reconocen de inmediato por las siguientes características:

  • Todos tienen el prefijo @
  • Sus nombres se dan en mayúsculas

Las funciones de secuencia pueden hacer referencia al registro que está siendo procesado actualmente por un nodo, los registros que ya han pasado por un nodo e, incluso, a los registros que aún tienen que pasar por un nodo. Las funciones de secuencia se pueden combinar libremente con otros componentes de expresiones CLEM, aunque algunas tienen restricciones en cuanto a lo que pueden utilizar como sus argumentos.

Ejemplos

Puede que le resulte útil saber cuánto tiempo ha pasado desde que se produjo un determinado evento o desde que una condición era true. Para ello, utilice la función @SINCE, por ejemplo:

@SINCE(Income > Outgoings) 

Esta función devuelve el desplazamiento del último registro en el que esta condición es verdadera, es decir, el número de registros antes que este en el que la condición es verdadera. Si la condición nunca ha sido verdadera, @SINCE devuelve @INDEX + 1.

Puede que en algunas ocasiones desee hacer referencia a un valor del registro actual en la expresión utilizada por @SINCE. Puede hacerlo mediante la función @THIS, que especifica que un nombre de campo siempre se aplique al registro actual. Para encontrar el desplazamiento del último registro que tenía un valor de campo de Concentration como mínimo dos veces mayor que el del registro actual, puede utilizar:

@SINCE(Concentration > 2 * @THIS(Concentration)) 

En algunos casos, la condición especificada para @SINCE es verdadera en el registro actual por definición; por ejemplo:

@SINCE(ID == @THIS(ID)) 

Por este motivo, @SINCE no evalúa esta condición para el registro actual. Utilice una función similar, @SINCE0, si desea evaluar la condición para el registro actual además de los anteriores; si la condición es verdadera en el registro actual, @SINCE0 devuelve 0.

Tabla 1. Funciones de secuencia de CLEM
Función Resultado Descripción
MEAN(FIELD) Real Devuelve el valor promediado de los valores para el CAMPO o CAMPOS especificados.
@MEAN(FIELD, EXPR) Real Devuelve el valor promediado de los valores para CAMPO en los últimos registros de EXPR recibidos por el nodo actual, incluyendo el registro actual. CAMPO debe ser el nombre de un campo numérico. EXPR puede ser cualquier expresión que se evalúe como un entero mayor que 0. Si se omite EXPR o si supera el número de registros recibidos hasta ahora, se devuelve el promedio de todos los registros recibidos hasta ahora.
@MEAN(FIELD, EXPR, INT) Real Devuelve el valor promediado de los valores para CAMPO en los últimos registros de EXPR recibidos por el nodo actual, incluyendo el registro actual. CAMPO debe ser el nombre de un campo numérico. EXPR puede ser cualquier expresión que se evalúe como un entero mayor que 0. Si se omite EXPR o si supera el número de registros recibidos hasta ahora, se devuelve el promedio de todos los registros recibidos hasta ahora. ENT especifica el número máximo de valores que buscar hacia atrás, lo que es mucho más eficaz que utilizar tan sólo dos argumentos.
@DIFF1(FIELD) Real Devuelve el primer diferencial de CAMPO. El formato de un único argumento devuelve simplemente la diferencia entre el valor actual y el valor anterior del campo. Devuelve $null$ si los registros anteriores relevantes no existen.
@DIFF1(FIELD1, FIELD2) Real El formato de dos argumentos proporciona el primer diferencial de CAMPO1 respecto a CAMPO2. Devuelve $null$ si los registros anteriores relevantes no existen. Se calcula como @DIFF1(FIELD1)/@DIFF1(FIELD2).
@DIFF2(FIELD) Real Devuelve el segundo diferencial de CAMPO. El formato de un único argumento devuelve simplemente la diferencia entre el valor actual y el valor anterior del campo. Devuelve $null$ si los registros anteriores relevantes no existen. @DIFF2 se calcula como @DIFF(@DIFF(FIELD)).
@DIFF2(FIELD1, FIELD2) Real El formato de dos argumentos proporciona el segundo diferencial de CAMPO1 respecto a CAMPO2. Devuelve $null$ si los registros anteriores relevantes no existen. Es un cálculo complejo -- @DIFF1(FIELD1)/@DIFF1(FIELD2) - @OFFSET(@DIFF1(FIELD1),1)/@OFFSET(@DIFF1(FIELD2))) / @DIFF1(FIELD2).
@INDEX Entero Devuelve el índice del registro actual. Los índices se asignan a los registros a medida que llegan al nodo actual. Al primer registro se le asigna el índice 1, y el índice se va incrementando en 1 para cada registro posterior.
@LAST_NON_BLANK(FIELD) Cualquiera Devuelve el último valor de CAMPO que no está vacío, tal y como se define en un nodo Tipo o de origen anterior de la ruta. Si no hay valores no vacíos para CAMPO en los registros leídos hasta ahora, se devuelve $null$. Recuerde que los valores vacíos, también llamados valores perdidos por el usuario, se pueden definir por separado para cada campo.
@MAX(FIELD) Número Devuelve el valor máximo del CAMPO especificado.
@MAX(FIELD, EXPR) Número Devuelve el valor máximo de CAMPO en los últimos registros de EXPR recibidos hasta el momento, incluyendo el registro actual. CAMPO debe ser el nombre de un campo numérico. EXPR puede ser cualquier expresión que se evalúe como un entero mayor que 0.
@MAX(FIELD, EXPR, INT) Número Devuelve el valor máximo de CAMPO en los últimos registros de EXPR recibidos hasta el momento, incluyendo el registro actual. CAMPO debe ser el nombre de un campo numérico. EXPR puede ser cualquier expresión que se evalúe como un entero mayor que 0. Si se omite EXPR o si supera el número de registros recibidos hasta ahora, se devuelve el valor máximo de todos los registros recibidos hasta ahora. ENT especifica el número máximo de valores que buscar hacia atrás, lo que es mucho más eficaz que utilizar tan sólo dos argumentos.
@MIN(FIELD) Número Devuelve el valor mínimo del CAMPO especificado.
@MIN(FIELD, EXPR) Número Devuelve el valor mínimo del CAMPO en los últimos registros de EXPR recibidos hasta el momento, incluyendo el registro actual. CAMPO debe ser el nombre de un campo numérico. EXPR puede ser cualquier expresión que se evalúe como un entero mayor que 0.
@MIN(FIELD, EXPR, INT) Número Devuelve el valor mínimo del CAMPO en los últimos registros de EXPR recibidos hasta el momento, incluyendo el registro actual. CAMPO debe ser el nombre de un campo numérico. EXPR puede ser cualquier expresión que se evalúe como un entero mayor que 0. Si se omite EXPR o si supera el número de registros recibidos hasta ahora, se devuelve el valor mínimo de todos los registros recibidos hasta ahora. ENT especifica el número máximo de valores que buscar hacia atrás, lo que es mucho más eficaz que utilizar tan sólo dos argumentos.
@OFFSET(FIELD, EXPR) Cualquiera Devuelve el valor de CAMPO en el desplazamiento de registro respecto al registro actual con el valor EXPR. Un desplazamiento positivo hace referencia a un registro que ya ha pasado, mientras que uno negativo especifica una "lectura anticipada" de un registro que aún tiene que llegar. Por ejemplo, @OFFSET(Status, 1) devuelve el valor del campo Status en el registro anterior, mientras que @OFFSET(Status, –4) "mira hacia delante" cuatro registros en la secuencia (es decir, los registros que aún no han pasado a través de este nodo) para obtener el valor. Tenga en cuenta que un desplazamiento negativo (lectura anticipada) se debe especificar como una constante. Solo para los desplazamientos positivos, EXPR también puede ser una expresión CLEM arbitraria, que se evalúa para el periodo actual para generar el desplazamiento. En este caso, la versión de tres argumentos de esta función debería mejorar el rendimiento (ver función siguiente). Si la expresión devuelve un valor que no sea un entero no negativo, se producirá un error, esto es, no se permite calcular desplazamientos de lectura anticipada. Tenga en cuenta que la función @OFFSET que hace referencia a sí misma no puede utilizar una lectura anticipada literal. Por ejemplo, en un nodo Rellenar, no puede sustituir el valor de field1 utilizando una expresión como @OFFSET(field1,-2). En el nodo Relleno, cuando se rellena un campo, hay dos valores distintos de dicho campo, que son el valor rellenado previamente y el valor rellenado posteriormente. Cuando @OFFSET hace referencia a sí mismo, hace referencia al valor de relleno posterior. El valor de este campo de relleno a posteriori sólo existe para filas pasadas, por lo que el @OFFSET autoreferencial sólo puede referirse a filas pasadas. Puesto que la función @OFFSET que hace referencia a sí misma no puede hacer referencia al futuro, lleva a cabo las siguientes comprobaciones del desplazamiento:
  • Si el desplazamiento es literal y en el futuro, se notifica un error antes de que comience la ejecución.
  • Si el desplazamiento es una expresión y se evalúa en el futuro en tiempo de ejecución, @OFFSET devuelve $null$.
Tenga en cuenta que no se admite el uso de "lectura anticipada" y de "lectura posterior" simultáneamente en un nodo.
@OFFSET(FIELD, EXPR, INT) Cualquiera Realiza la misma operación que la función @OFFSET con la adición de un tercer argumento, ENT, que especifica el número máximo de valores que buscar hacia atrás. En casos en los que el desplazamiento se calcula a partir de una expresión, este tercer argumento debería mejorar el rendimiento. Por ejemplo, en una expresión como@OFFSET(Foo, Month, 12), el sistema sabe mantener sólo los últimos doce valores de Foo; de lo contrario, tiene que almacenar cada valor por si acaso. Para los desplazamientos fijos, incluidos los desplazamientos de "lectura anticipada" negativos que deben ser fijos, el tercer argumento no es importante, y debe utilizarse la versión de dos argumentos de esta función. Consulte también la nota acerca de las funciones autorreferidas en la versión de dos argumentos descritas anteriormente. Tenga en cuenta que no se admite el uso de "lectura anticipada" y de "lectura posterior" simultáneamente en un nodo.
@SDEV(FIELD) Real Devuelve la desviación estándar de los valores para el CAMPO o CAMPOS especificados.
@SDEV(FIELD, EXPR) Real Devuelve la desviación estándar de los valores para CAMPO en los últimos registros de EXPR recibidos por el nodo actual, incluido el registro actual. CAMPO debe ser el nombre de un campo numérico. EXPR puede ser cualquier expresión que se evalúe como un entero mayor que 0. Si se omite EXPR o si supera el número de registros recibidos hasta ahora, se devuelve la desviación estándar sobre todos los registros recibidos hasta ahora.
@SDEV(FIELD, EXPR, INT) Real Devuelve la desviación estándar de los valores para CAMPO en los últimos registros de EXPR recibidos por el nodo actual, incluido el registro actual. CAMPO debe ser el nombre de un campo numérico. EXPR puede ser cualquier expresión que se evalúe como un entero mayor que 0. Si se omite EXPR o si supera el número de registros recibidos hasta ahora, se devuelve la desviación estándar sobre todos los registros recibidos hasta ahora. ENT especifica el número máximo de valores que buscar hacia atrás, lo que es mucho más eficaz que utilizar tan sólo dos argumentos.
@SINCE(EXPR) Cualquiera Devuelve el número de registros que han pasado desde que EXPR, una expresión CLEM arbitraria, era verdadera.
@SINCE(EXPR, INT) Cualquiera La adición del segundo argumento, ENT, especifica el número máximo de registros a buscar hacia atrás. Si EXPR nunca ha sido verdadera, ENT es @INDEX+1.
@SINCE0(EXPR) Cualquiera Considera el registro actual, mientras que @SINCE no lo hace; @SINCE0 devuelve 0 si EXPR es verdadera para el registro actual.
@SINCE0(EXPR, INT) Cualquiera La adición del segundo argumento, ENT, especifica el número máximo de registros a buscar hacia atrás.
@SUM(FIELD) Número Devuelve la suma de los valores del CAMPO o CAMPOS especificados.
@SUM(FIELD, EXPR) Número Devuelve la suma de los valores de CAMPO en los últimos EXPR registros recibidos por el nodo actual, incluyendo el registro actual. CAMPO debe ser el nombre de un campo numérico. EXPR puede ser cualquier expresión que se evalúe como un entero mayor que 0. Si se omite EXPR o si supera el número de registros recibidos hasta ahora, se devuelve la suma sobre todos los registros recibidos hasta ahora.
@SUM(FIELD, EXPR, INT) Número Devuelve la suma de los valores de CAMPO en los últimos EXPR registros recibidos por el nodo actual, incluyendo el registro actual. CAMPO debe ser el nombre de un campo numérico. EXPR puede ser cualquier expresión que se evalúe como un entero mayor que 0. Si se omite EXPR o si supera el número de registros recibidos hasta ahora, se devuelve la suma sobre todos los registros recibidos hasta ahora. ENT especifica el número máximo de valores que buscar hacia atrás, lo que es mucho más eficaz que utilizar tan sólo dos argumentos.
@THIS(FIELD) Cualquiera Devuelve el valor del campo con el nombre CAMPO en el registro actual. Sólo se utiliza en las expresiones @SINCE.
Búsqueda y respuesta de IA generativa
Estas respuestas las genera un modelo de lenguaje grande en watsonx.ai que se basa en el contenido de la documentación del producto. Más información