¿Cuál es el algoritmo más eficiente y efectivo para la detección de anomalías / valores atípicos cuando los datos tienen un pico / valle estacional?

Hm … ¿Estamos viendo datos de series temporales de una dimensión, por ejemplo, el precio a lo largo del tiempo?

Digamos que lo somos, por lo que queremos encontrar un modelo para el precio = f (tiempo) y luego encontrar valores atípicos, y la temporada navideña presenta un comportamiento diferente al resto del año.

La regresión lineal de mínimos cuadrados siempre es un buen lugar para comenzar. Es eficiente, tanto para entrenar como para usar. Además, está disponible básicamente en todo el software de análisis, incluidas las hojas de cálculo de Excel. Crearía variables de entrada adicionales para marcar las estaciones (p. Ej., Mes, días desde Navidad, la propia Navidad, etc.), luego haría una regresión para encontrar el precio. Por ejemplo, precio = a.time + b.month. Puede crear las variables de entrada adicionales basadas en el tiempo que desee, lo que le permite utilizar la regresión lineal para ajustar patrones no lineales. Además de una función de predicción, los mínimos cuadrados le darán un modelo para las fluctuaciones, es decir, que siguen una distribución normal (también conocida como gaussiana, también conocida como la curva de campana), y puede calcular la varianza de eso. Esto le permite decir cuán improbable es un valor atípico y, por lo tanto, hacer una detección de valores atípicos.

Eficiente y efectivo, si se ajusta a sus datos. Puede que tenga que explorar algunas opciones para esas variables de entrada estacionales, y puede ser que el ruido gaussiano no sea una buena opción. Hay algunas estadísticas que puede verificar para ver si es una buena idea o no (el coeficiente r2, más otras pruebas, por ejemplo, ver Pruebas de supuestos de regresión lineal).

Para una solución más compleja … Un proceso gaussiano con un núcleo estacional es un algoritmo efectivo, pero no es eficiente. Es lo que se llama un algoritmo vago, porque el ajuste se realiza cuando se considera un punto en particular. El análisis se realiza consultando todos los datos de capacitación (lo que permite modelos muy flexibles). Esto se repite para cada punto considerado.