¿Cómo debe manejar un promedio móvil los puntos de datos faltantes?


10

Estoy escribiendo un programa que promedia el peso del usuario en diferentes días. Estoy planeando usar un promedio móvil de 5 puntos (día actual, dos antes y dos después). A veces, falta un punto de datos durante 1-2 días. ¿Cómo se manejan estos casos generalmente?

(Si hubiera un mejor filtro de paso bajo que pudiera usar, me encantarían las sugerencias)


Lo primero que me viene a la mente es interpolar los puntos antes de usar el filtro de promedio móvil
someguy

3
Realmente más una pregunta estadística que una pregunta de procesamiento de señal, al menos en ausencia de más contexto. Pero simplemente puede omitir volver a calcular el promedio, usar el promedio actual como valor de reemplazo o esperar las mediciones posteriores e intentar la interpolación, lineal o de otro tipo.
Daniel R Hicks

Como señalaron los demás, esto generalmente será una decisión específica de la aplicación basada en su consideración de cómo desea que se comporte la salida filtrada. La mayoría de la teoría del procesamiento de señales se basa en muestras espaciadas uniformemente, por lo que no obtendrá algo que pueda llamarse objetivamente la "respuesta correcta".
Jason R

@JasonR filtro para dar una estimación más razonable del peso del usuario en ese punto. Los datos se muestrean de manera uniforme (frecuencia de muestreo = 1 / día), excepto que faltan algunos puntos de datos.
Anna

@ Anna: Correcto, entiendo por qué estás filtrando los datos. Sin embargo, sus datos no se muestrean de manera uniforme ya que le faltan puntos de datos. Por lo tanto, como señalé, no es probable que encuentre una respuesta teórica satisfactoria a su problema. Una solución ad-hoc que considere "tener sentido" para su aplicación particular probablemente será la respuesta.
Jason R

Respuestas:


4

Como impresión general, la regresión funcionaría mejor para ajustar automáticamente los puntos faltantes en lugar de un filtro de media móvil que haya elegido.

Si usa un AR (filtro de regresión automática) o un filtro ARMA, puede tener un valor predicho de una salida de muestra basada en entradas anteriores.

X^[i]=ωkx[i1k]+η

Donde X [ i ] es el valor predicho.X^[i]

Específicamente en su caso, digamos que sabe que el peso de la persona tiene un rango específico . Ahora bien, si usted no tiene x [ i - 1 ] valor - aplicar dos sustituciones diferentes - uno con Min y uno con Max y basado en el modelo disponible tendrá dos resultados caso extremo de X [ i ] y se puede elegir algo entre ellosXmax,Xminx[i1]X^[i]

Hay varias otras alternativas: puede mantener

X^[yo]=X[yo-1]
X^[yo]=Muestra promedio a largo plazo de X 

Esencialmente es un juego de predicción de dicho valor y continuar usándolo como señal. Por supuesto, la predicción no será la misma que una muestra original, pero ese no es el precio que paga por no tener datos.


2
¿Por qué dice que la regresión funcionaría mejor en la adaptación? Gracias
Spacey

3

Un método simple y general para completar los datos que faltan, si tiene series de datos completos, es utilizar la
regresión lineal . Digamos que tiene 1000 corridas de 5 seguidas sin que falte ninguna.
Configure el vector 1000 x 1 y la matriz X de 1000 x 4:

y       X
wt[0]   wt[-2] wt[-1] wt[1] wt[2]
---------------------------------
68      67     70     70    68
...

La regresión te dará 4 números abcd que dan una mejor coincidencia

wt[0] ~= a * wt[-2]  + b * wt[-1]  + c * wt[1]  + d * wt[2]

para sus 1000 filas de datos : datos diferentes, abc d diferentes.
Luego usa estos abcd para estimar (predecir, interpolar) wt [0] faltante.
(Para los pesos humanos, esperaría que abcd sea alrededor de 1/4).

En python, vea numpy.linalg.lstsq .

(Hay millones de libros y documentos sobre regresión, en todos los niveles. Sin embargo, por la conexión con la interpolación, no sé de una buena introducción; ¿alguien?)


1

[un,si,C,?,mi]

un+si+C+mi4 4

1

Creo que la forma más sencilla sería "predecir" la fecha para el "todo" en la serie de tiempo utilizando los datos anteriores. entonces puede usar esta serie de tiempo para la estimación de parámetros. (puede proceder y repredir los valores faltantes utilizando sus parámetros estimados de la serie de tiempo completa (completada) y repetir esto hasta que converjan). Sin embargo, debe derivar los límites de confianza del número de puntos de datos reales que tiene, y no de la longitud de las series de datos completadas.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.