Estoy buscando una estimación sólida de la media que tiene una propiedad específica. Tengo un conjunto de elementos para los que quiero calcular esta estadística. Luego, agrego nuevos elementos uno a la vez, y para cada elemento adicional me gustaría volver a calcular la estadística (también conocida como algoritmo en línea). Me gustaría que este cálculo de actualización sea rápido, preferiblemente O (1), es decir, que no dependa del tamaño de la lista.
La media habitual tiene esta propiedad de que se puede actualizar de manera eficiente, pero no es robusta para los valores atípicos. Los estimadores robustos típicos de la media, como la media intercuartil y la media recortada, no pueden actualizarse de manera eficiente (ya que requieren mantener una lista ordenada).
Agradecería cualquier sugerencia de estadísticas sólidas que puedan calcularse / actualizarse de manera eficiente.
fuente
Respuestas:
Esta solución implementa una sugerencia hecha por @Innuo en un comentario a la pregunta:
Una vez que sepamos cómo mantener este subconjunto, podemos seleccionar cualquier método que nos guste para estimar la media de una población a partir de dicha muestra. Este es un método universal, sin hacer ninguna suposición, que funcionará con cualquier flujo de entrada con una precisión que pueda predecirse utilizando fórmulas de muestreo estadístico estándar. (La precisión es inversamente proporcional a la raíz cuadrada del tamaño de la muestra).
Este algoritmo acepta como entrada una secuencia de datos un tamaño de muestra , y genera una secuencia de muestras cada una de las cuales representa la población . Específicamente, para , es una muestra aleatoria simple de tamaño de (sin reemplazo).t = 1 , 2 , … , m s ( t ) X ( t ) = ( x ( 1 ) , x ( 2 ) , … , x ( t ) ) 1 ≤ i ≤ t s ( i ) m X ( t )x(t), t=1,2,…, m s(t) X(t)=(x(1),x(2),…,x(t)) 1≤i≤t s(i) m X(t)
Para que esto suceda, es suficiente que cada subconjunto de elementos de tenga las mismas posibilidades de ser los índices de en . Esto implica la posibilidad de que esté en igual a siempre que .m {1,2,…,t} x s(t) x(i), 1≤i<t, s(t) m/t t≥m
Al principio solo recopilamos la secuencia hasta que se hayan almacenado elementos. En ese momento solo hay una muestra posible, por lo que la condición de probabilidad se cumple trivialmente.m
El algoritmo se hace cargo cuando . Supongamos inductivamente que es una muestra aleatoria simple de para . Establecer provisionalmente . Sea una variable aleatoria uniforme (independiente de cualquier variable previa utilizada para construir ). Si , reemplace un elemento aleatorio de por . Ese es todo el procedimiento!t=m+1 s(t) X(t) t>m s(t+1)=s(t) U(t+1) s(t) U(t+1)≤m/(t+1) s x(t+1)
Claramente, tiene probabilidad de estar en . Además, según la hipótesis de inducción, tenía una probabilidad de estar en cuando . Con probabilidad = se habrá eliminado de , de donde su probabilidad de permanecer igualx(t+1) m/(t+1) s(t+1) x(i) m/t s(t) i≤t m/(t+1)×1/m 1/(t+1) s(t+1)
exactamente como sea necesario. Por inducción, entonces, todas las probabilidades de inclusión de la en la son correctas y está claro que no hay una correlación especial entre esas inclusiones. Eso prueba que el algoritmo es correcto.x(i) s(t)
La eficiencia del algoritmo es porque en cada etapa se calculan como máximo dos números aleatorios y como máximo se reemplaza un elemento de una matriz de valores . El requisito de almacenamiento es .O(1) m O(m)
La estructura de datos para este algoritmo consiste en la muestra junto con el índice de la población que muestrea. Inicialmente tomamos y procedemos con el algoritmo para Aquí hay una implementación para actualizar con un valor para producir . (El argumento juega el papel de y es . El llamador mantendrá el índice ).s t X(t) s=X(m) t=m+1,m+2,…. (s,t) x (s,t+1) t m t
R
n
sample.size
Para ilustrar y probar esto, usaré el estimador habitual (no robusto) de la media y compararé la media estimada a partir de con la media real de (el conjunto acumulativo de datos visto en cada paso ) Elegí una secuencia de entrada algo difícil que cambia con bastante suavidad pero que periódicamente experimenta saltos dramáticos. El tamaño de la muestra de es bastante pequeño, lo que nos permite ver las fluctuaciones de muestreo en estas parcelas.X ( t ) m = 50s(t) X(t) m=50
En este punto50
online
es la secuencia de estimaciones medias producidas al mantener esta muestra de valores, mientras que es la secuencia de estimaciones medias producidas a partir de todos los datos disponibles en cada momento. El gráfico muestra los datos (en gris), (en negro) y dos aplicaciones independientes de este procedimiento de muestreo (en colores). El acuerdo está dentro del error de muestreo esperado:actual
actual
Para estimadores robustos de la media, busque en nuestro sitio términos atípicos y relacionados. Entre las posibilidades que vale la pena considerar se encuentran las medias Winsorizadas y los estimadores M.
fuente
summary
por una variante robusta.Puede pensar en relacionar su problema con el de la tabla de control recursivo. Tal cuadro de control evaluará si una nueva observación está bajo control. Si es así, esta observación se incluye en la nueva estimación de la media y la varianza (necesaria para determinar los límites de control).
Aquí se puede encontrar información sobre gráficos de control robustos, recursivos y univariados . Uno de los textos clásicos sobre control de calidad y cuadros de control parece estar disponible en línea aquí .
Intuitivamente, usando la media a, y una varianza como entradas, puede determinar si una nueva observación en el tiempo es un valor atípico por varios enfoques. Una sería declarar un valor atípico si está fuera de un cierto número de desviaciones estándar de (dado , pero esto puede tener problemas si los datos lo hacen no conforme a ciertos supuestos de distribución. Si desea seguir este camino, supongamos que ha determinado si un nuevo punto no es un valor atípico y desea incluirlo en su estimación media sin una tasa especial de olvido. Entonces no puedes hacerlo mejor que:μt−1 σ2t−1 t xt μt−1 σ2t−1)
Del mismo modo, deberá actualizar la varianza de forma recursiva:
Sin embargo, es posible que desee probar algunos gráficos de control más convencionales. Se recomiendan otros cuadros de control que son más sólidos para la distribución de los datos y que aún pueden manejar la no estacionariedad (como el de su proceso que sube lentamente) son EWMA o CUSUM (consulte el libro de texto vinculado anteriormente para obtener más detalles sobre los gráficos y sus límites de control). Estos métodos generalmente serán menos intensivos en cómputo que los robustos porque tienen la ventaja de que simplemente necesitan comparar una sola observación nueva con información derivada de observaciones no atípicas. Puede refinar sus estimaciones del proceso a largo plazo y utilizado en los cálculos de límite de control de estos métodos con las fórmulas de actualización proporcionadas anteriormente, si lo desea.μ μ σ2
Con respecto a un gráfico como el EWMA, que olvida las observaciones antiguas y da más peso a las nuevas, si cree que sus datos son estacionarios (lo que significa que los parámetros de la distribución generadora no cambian), no hay necesidad de olvidar exponencialmente las observaciones más antiguas. Puede establecer el factor de olvido en consecuencia. Sin embargo, si cree que no es estacionariedad, deberá seleccionar un buen valor para el factor de olvido (nuevamente, consulte el libro de texto para obtener una forma de hacerlo).
También debo mencionar que antes de comenzar a monitorear y agregar nuevas observaciones en línea, necesitará obtener estimaciones de y (los valores de los parámetros iniciales basados en un conjunto de datos de entrenamiento) que no están influenciados por valores atípicos. Si sospecha que hay datos atípicos en sus datos de capacitación, puede pagar el costo único de usar un método robusto para estimarlos.σ 2 0μ0 σ20
Creo que un enfoque en este sentido conducirá a la actualización más rápida para su problema.
fuente