2 votos

Función de suavizado para mostrar las líneas apiladas sin que el suavizado introduzca cruces

Estoy mostrando datos de series temporales como un gráfico de "línea apilada" o "área apilada". (Por ejemplo, con datos porcentuales, los puntos de datos al 10%, 20% y 30% se muestran al 10%, 30% y 60% en el gráfico). Las líneas no suavizadas que atraviesan los puntos de datos obviamente nunca se cruzan (y nunca van por debajo del valor mínimo de los datos ni por encima del total máximo; piense en 0% y 100% de nuevo, por ejemplo). Estoy buscando una función de suavizado que conserve estas propiedades; es decir, las líneas suavizadas deberían no cruzar nunca (incluso entre puntos de datos), debe nunca superan los valores máximos/mínimos dados por los puntos de datos y (idealmente) debería sólo tocar en los puntos de datos . ¿Existe esa bestia?

Como probablemente sea evidente, no soy un estadístico. El suavizado aquí es sólo para el atractivo visual, por lo que las soluciones que son teóricamente menos que ideal son todavía definitivamente en las tarjetas.

1voto

erik Puntos 3923

Si todas las series tienen el mismo número de puntos de datos en las mismas posiciones x, entonces un suavizador LOESS con lambda=0 (esencialmente una media móvil ponderada) satisfará sus restricciones.

0th degree lambda smoothers

En cada posición, estás calculando $z_i = \frac{w_i * y_i}{n}$ , donde $w$ es la función de suavizado local alrededor de la posición. Dado que $w_i$ y $n$ son iguales para cada serie, si todas las $y_i$ en una serie son mayores o iguales que las correspondientes $y_i$ en otra serie, entonces el $z_i$ seguirá la misma regla. La condición de límites externos se cumple aplicando la lógica anterior con una serie de todos los valores mínimos o todos los valores máximos.

Este alisador no suele atravesar los puntos de datos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X