¿Es posible acumular un conjunto de estadísticas que describan una gran cantidad de muestras para que luego pueda producir un diagrama de caja?


22

Debo aclarar inmediatamente que soy un desarrollador de software práctica, no un estadístico, y que clase de mi universidad estadísticas era un muy largo tiempo atrás ...

Dicho esto, me gustaría saber si hay un método para acumular un conjunto de estadísticas descriptivas que luego podrían usarse para producir un diagrama de caja, que no implica almacenar un montón de muestras individuales.

Lo que intento hacer es producir un resumen gráfico de los tiempos de servicio de la cola dentro de un complejo proceso de múltiples colas. En el pasado, utilicé un paquete llamado tnftools que permitía acumular muestras grandes y luego procesarlas en un buen gráfico de tiempos de respuesta y valores atípicos ... Pero tnftools no está disponible para mi plataforma actual.

Idealmente, me gustaría poder acumular un conjunto de estadísticas descriptivas "sobre la marcha" a medida que se ejecuta el proceso, y luego extraer los datos para el análisis a pedido. Pero no puedo simplemente hacer que el proceso acumule muestras, ya que la memoria / IO involucrada en hacerlo tendría un impacto inaceptable en el rendimiento del sistema.


Kaelin:> ¿quieres decir si existe un método 'sobre la marcha' para calcular estadísticas de resumen como la mediana y los cuartiles? Si esto es lo que quieres, podría darte enlaces a documentos que los detallen. También podría dar más detalles sobre las plataformas de los que está trabajando como la implementación de GNU eficiente de estos métodos es probable que exista en R.
user603

@kwak: Sí, eso suena como lo que estoy buscando. Agradecería mucho esos enlaces. :-) Estoy trabajando en Mac OS X ... Puedo usar R para el procesamiento posterior de datos, pero no puedo vincular el código GPL en el producto de mi empresa por las razones habituales.
Kaelin Colclasure

Respuestas:


27

Para el diagrama de caja 'sobre la marcha', necesitará 'sobre la marcha' min / max (trivial) así como los cuartiles 'sobre la marcha' (0.25,0.5 = mediana y 0.75).

Recientemente se ha trabajado mucho en el problema del algoritmo en línea (o 'sobre la marcha') para la computación mediana.

Un desarrollo reciente es binmedian . Como patada lateral, también disfruta de una mejor complejidad del peor de los casos que selección rápida (que no es en línea ni de un solo pase).

Puede encontrar el documento asociado, así como el código C y FORTRAN en línea aquí . Es posible que deba verificar los detalles de la licencia con los autores.

También necesitará un algoritmo de paso único para los cuartiles, para lo cual puede utilizar el enfoque anterior y la siguiente caracterización recursiva de los cuartiles en términos de medianas:

Q0,75(X)Q0,5(Xyo:Xyo>Q0,5(X))

y

Q0.25(X)Q0,5(Xyo:Xyo<Q0,5(X))

es decir, el cuartil del 25 (75) por ciento está muy cerca de la mediana de las observaciones que son más pequeñas (más grandes) que la mediana.

Apéndice:

Existe una gran cantidad de métodos antiguos de múltiples pasos para calcular cuantiles. Un enfoque popular es mantener / actualizar un reservorio de observaciones de tamaño determinista seleccionado al azar de la corriente y calcular cuantiles de forma recursiva (ver esta revisión) en este reservorio. Este enfoque (y el relacionado) son reemplazados por el propuesto anteriormente.


1
+1 derecho; Todavía estaba en la edad oscura de hacer aproximaciones desde el histograma.

¿Entiendo correctamente que tal definición recursiva de cuartiles de medianas requiere dos pases si se implementa ingenuamente? ¿Conoce los algoritmos de un solo paso?
Quartz

@Quartz: no, una sola pasada servirá: tienes dos, una sola pasada, ejecutando cálculos medios.
user603

2

En lugar de solo encontrar la mediana, hay un algoritmo que mantiene directamente un histograma estimado: " el algoritmo de P-cuadrado para el cálculo dinámico de cuantiles e histogramas sin almacenar observaciones". Esto probablemente será mucho más eficiente que el binning repetido para cada cuantil que desee.

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.