A blog about data, information and IT, by Mario Alberich

Jun 28
2013

Cálculo de la media con datos en flujo

En muchos casos disponemos de todo el conjunto de datos para poder calcular la media. En esas situaciones, la suma de todos los elementos divididos por el número de éstos, ya nos proporciona la media.

Datos en bloque y datos en flujo


Pero ¿qué sucede cuando los datos van surgiendo aleatoriamente, y además no sabemos ni la cantidad, ni el momento en el que dejarán de aparecer? Necesitamos un cálculo dinámico de la media. Y para más detalle, queremos mantener el mínimo volumen de datos.

Calcular la media cada vez


Dado que la media es la suma de los elementos divididos por la cantidad, podemos tener un valor que contenga la suma de todos los elementos anteriores, y otra variable con el número de elementos que han llegado.

Cada vez que llegara un nuevo valor, sólo sería necesario sumarlo a la primera variable, incrementar en uno el valor de la segunda, y luego dividir la primera por la segunda. Tendríamos así la nueva media.

De esta forma guardamos tres valores: el total, el número de ítems y la media.

Optimizando los recursos


Aunque en este caso parezca absurdo, pueden existir situaciones en el que el ahorro pueda ser significativo. Así que, ¿cómo podemos reducir el número de variables a guardar?

Para esas situaciones la fórmula clásica no sirve. Tenemos que echar mano de una versión generalizada, la media ponderada. En realidad, una media tal como la conocemos es un caso concreto de la media ponderada: es cuando todos los valores que queremos promediar tienen la misma importancia (el mismo peso, la misma ponderación).

Para el caso que nos ocupa, tendremos dos valores: el número de ítems y la media actual. Es decir, nos ahorramos la suma del total. ¿Cuál es el procedimiento?

  • Llega el primer valor. La media es éste mismo valor.
  • A partir del segundo valor, ponderamos la media existente por el número de elementos que han llegado, y el nuevo valor por uno.


A medida que se va incrementando el número de valores, el peso de la media es tan alto, que los nuevos valores deben ser muy altos para alterar la media.

Este proceso es algo más intensivo en recursos, pero más ligero en recursos que el anterior.

 

Tags

gestión documental 10     Recuperación información 11     Linux 7     Usabilidad 5     open source 3     Tagging 12     lógica borrosa 2     fuentes de información 12     Google 6     off-topic 6     spam 2     grafos 6     Web social 11     modelización 12     Productividad 11     buscadores 2     utilidades 17     Profesionales 9     SEO 5     estándares 3     veracidad 3     relevancia 2     lingüística 2     PLN 2     lenguajes documentales 2     apis-mashups 3     reseñas 7     Flash 7     Gráficos estadísticos 13     Publicidad 3     Innovación 5     muestreo estadístico 9     PHP 14     internet 2     testeo 12     desarrollo 3     visualizacion 36     javascript 16     datos abiertos 9     elecciones 2     simulación 5     html5 7     phing 9     ssh 2     seguridad 3     indicadores 2     demografía 3     media 2     algoritmos 7     shell 4     mysql 2     backup 2     big data 6     twitter 2     d3js 11     revealjs 2     metodología 6     data-journalism 6     smartcities 2     NYT 2     privacidad 3     benchmarking 4     recopilaciones 21     magento 5     formacion 2     github 2     HHVM 3     psicología 2     angularjs 3     grep 2     nodejs 5     promises 2     mapreduce 3     crossfilter 2     exploración de datos 2     machine learning 2    

© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.