regresion prediccion numerica mineria lineal funciona datos data como algoritmos algoritmo algorithm statistics real-time signal-processing numerical

algorithm - prediccion - data mining algoritmos



¿Cómo detectar un cambio/tendencia significativo en una serie de datos de tiempo? (3)

Puede usar un filtro Wiener si conoce las estadísticas de la señal y úsela como un predictor de n pasos adelante. Su decisión de tendencia puede basarse fácilmente en la predicción del filtro Wiener. Si la señal no es estacionaria en sentido amplio y usted piensa que la predicción no puede hacerse de forma lineal (un proceso no lineal / no estacionario), entonces puede usar un filtro Wiener adaptativo como el filtro LMS .

Así que tengo una matriz de digamos 25 muestras y quisiera poder observar las tendencias de si está disminuyendo o aumentando a partir de esos 25 intervalos de tiempo de muestra (básicamente 25 muestras de matriz es mi memoria intermedia que se llena con cada palabra de 1 ms )

Tenga en cuenta que es la tendencia general lo que estoy buscando, no la derivada individual (como lo hubiera obtenido usando la diferencia finita u otras técnicas de diferenciación numérica).

Básicamente, espero que mis datos sean ruidosos, por lo que puede haber altibajos incluso después de filtrar, etc. Pero es la tendencia general de aumentar o disminuir el comportamiento que estoy buscando.

Quiero integrar el comportamiento creciente / decreciente en cada ms para desencadenar algún evento que sea más un evento de interfaz de usuario (parpadeando un LED) para que no tenga que demorar mucho el procesamiento siempre que pueda detectar la tendencia general.

¡Gracias por adelantado!


No me parece que quieras la derivada en absoluto. Parece que quieres un filtro de paso bajo. Un filtro de paso bajo simplemente elimina los datos que cambian rápidamente y deja en su lugar las tendencias más largas y que cambian más lentamente. El filtro de paso bajo más intuitivo es un filtro de promedio móvil, donde toma el promedio de las últimas n entradas, donde n se determina en función del ruido frente al tamaño de la tendencia que está buscando. Esto se usa ampliamente desde los datos de audio hasta el procesamiento de imágenes y los datos de desempleo (la cifra de desempleo promedio móvil de cuatro semanas es ampliamente citada).

Es posible desarrollar filtros más eficientes / selectivos utilizando técnicas recursivas, si lo considera necesario. Puede usar este tutorial para crear un filtro de paso bajo. Está escrito para audio, pero funcionará en la mayoría de los datos. Le muestra cómo escribir un filtro de campana, pero un filtro de paso bajo es más fácil.

http://blog.bjornroche.com/2012/08/basic-audio-eqs.html


Como ya se señaló, no estás buscando la derivada. Realmente está buscando un algoritmo de detección de "cambio significativo" para una serie temporal.

Seguramente querrá un filtro de suavizado (y el filtro de promedio móvil está bien; consulte la respuesta de Bjorn para esta parte).

Pero además del filtro de suavizado, también necesitará un criterio de decisión o selector de umbral más allá del cual usted decidirá si los cambios filtrados son significativos o no.

Si las estadísticas subyacentes de su serie temporal son estables (series temporales estacionarias), entonces puede usar un umbral estadístico fijo , en el sentido de desviaciones estándar de la media. Por ejemplo, puede elegir 2 desviaciones estándar si desea un umbral de "alarma" bastante fuerte (piense que es alarmante solo en el 5% de devoluciones más fuerte).

Si no hay nada en el problema subyacente que sugiera que su serie de tiempo es estable, es decir, si las series pueden tener una tendencia, o si el proceso subyacente que genera la serie temporal puede pasar por cambios en los fondos mientras lo monitorea, entonces '' Necesitaré usar un umbral dinámico o adaptativo , en el sentido de señal a ruido (mu / sigma). A continuación, puede optar por detectar todos los elementos "significativos" que pasen la prueba de señal a ruido.