- El primer de ellos recibe 10 votos, a saber: 9.4, 9.1, 9.9, 7.5, 8.2, 8.6, 9.1, 9.3, 6.5 y 8.3
- El segundo de ellos recibe 2 votos, a saber: 10.0 y 9.8
La media aritmética, que es el sistema de votaciones que se usa en casi todos los sistemas de votaciones en páginas web, que es aquella que divide la suma de las votaciones entre el número de votos, darÃa un 8.59 para el primer elemento, y un 9.9 para el segundo elemento. Al realizar la tÃpica lista «Top10», pondrÃa al segundo elemento en primer puesto, ya que tiene una media aritmética mayor, pero no es lógico o justo para el primer elemento, que ha recibido muchos más votos, por tanto dispone de un universo de votaciones mucho más rico y leal a la nota que realmente tenga.
Para este tipo de casos y poder realizar una media más justa existe una solución basada en la media bayesiana. En muchos sistemas de votaciones en los que hace falta conocer, de la manera más fiel posible un ranking, uno de los elementos puede estar «viciado» por los pocos votos recibidos de mucha puntuación, como hemos visto en el segundo elemento del ejemplo. La media bayesiana es una técnica usada para reducir el ruido por estos elementos con tan pocas votaciones. De hecho, cuantos menos votos recibe un elemento, el resultado bayesiano más se acerca a la media global de todos ellos.
La fórmula es la siguiente:
donde:
- R = media aritmética de un elemento
- v = número de votos de un elemento
- m = mÃnimo número de votos requeridos para ser listado
- C = la media de todos los votos de todos los elementos
De esta forma se equilibran mucho mejor los pesos y la influencia de cada elemento respecto a los demás. El primer sumando (V/(V+M)) R indica el peso dado a la media propia, mientras que el segundo sumando (M/(V+M))*C es el peso dado a la media general. Si se obtienen muchos votos de un elemento, pesa más la propia media de ese elemento que la general, y viceversa, si tienes muy pocos votos, pesa más la media general. Otra forma de explicarlo es que, cuantos más votos tiene un elemento, menos deriva o se modifica el resultado bayesiano de la media aritmética de ese elemento.
Veamos un ejemplo con una tabla de datos real (con m = 50):
| Elemento | Media de votos (r) | Votos recibidos (v) | Media total (c) | Media Bayesiana |
| 2531 | 6.01 | 6700 | 5.33 | 6.007 |
| 1727 | 7.66 | 535 | 5.33 | 7.460 |
| 2135 | 7.57 | 367 | 5.33 | 7.300 |
| 1543 | 7.76 | 298 | 5.33 | 7.406 |
| 1633 | 4.18 | 262 | 5.33 | 4.360 |
| 1671 | 4.97 | 231 | 5.33 | 5.033 |
| 1462 | 4.55 | 209 | 5.33 | 4.700 |
| 2100 | 5.47 | 193 | 5.33 | 5.437 |
| 2309 | 7.01 | 180 | 5.33 | 6.645 |
| 2333 | 6.91 | 169 | 5.33 | 6.549 |
| 1691 | 6.14 | 158 | 5.33 | 5.944 |
| 2636 | 8.75 | 150 | 5.33 | 7.896 |
| 1882 | 6.94 | 144 | 5.33 | 6.522 |
| 2903 | 8.30 | 139 | 5.33 | 7.515 |
| 542 | 4.84 | 134 | 5.33 | 4.974 |
| 3810 | 9.03 | 128 | 5.33 | 7.990 |
| 1502 | 6.61 | 122 | 5.33 | 6.240 |
| 1903 | 7.06 | 117 | 5.33 | 6.541 |
| 2460 | 7.26 | 112 | 5.33 | 6.662 |
| 1074 | 5.90 | 105 | 5.33 | 5.711 |
| 2148 | 6.82 | 101 | 5.33 | 6.326 |
| 1576 | 5.85 | 96 | 5.33 | 5.673 |
| 1944 | 6.89 | 92 | 5.33 | 6.340 |
| 2303 | 6.77 | 87 | 5.33 | 6.243 |
| 1771 | 7.01 | 81 | 5.33 | 6.368 |
| 2459 | 5.77 | 74 | 5.33 | 5.591 |
| 618 | 5.07 | 69 | 5.33 | 5.179 |
| 2328 | 5.11 | 61 | 5.33 | 5.210 |
| 709 | 5.81 | 54 | 5.33 | 5.580 |
| 556 | 4.71 | 49 | 5.33 | 5.023 |
| 15 | 3.60 | 43 | 5.33 | 4.530 |
| 1170 | 3.62 | 37 | 5.33 | 4.601 |
| 1452 | 6.64 | 33 | 5.33 | 5.847 |
| 2656 | 9.52 | 29 | 5.33 | 6.864 |
| 2682 | 8.12 | 26 | 5.33 | 6.280 |
| 1437 | 6.39 | 23 | 5.33 | 5.661 |
| 1360 | 6.29 | 21 | 5.33 | 5.609 |
| 750 | 7.37 | 19 | 5.33 | 5.888 |
| 1999 | 6.94 | 18 | 5.33 | 5.754 |
| 2690 | 9.12 | 17 | 5.33 | 6.288 |
| 1231 | 5.73 | 15 | 5.33 | 5.420 |
| 1182 | 5.07 | 14 | 5.33 | 5.270 |
| 1345 | 7.31 | 13 | 5.33 | 5.734 |
| 961 | 6.50 | 12 | 5.33 | 5.553 |
| 2901 | 9.33 | 12 | 5.33 | 6.101 |
| 658 | 3.45 | 11 | 5.33 | 4.988 |
| 177 | 6.30 | 10 | 5.33 | 5.488 |
| 909 | 6.78 | 9 | 5.33 | 5.547 |
| 572 | 4.56 | 9 | 5.33 | 5.208 |
| 1244 | 6.00 | 8 | 5.33 | 5.418 |
| 2859 | 9.25 | 8 | 5.33 | 5.867 |
| 316 | 7.29 | 7 | 5.33 | 5.566 |
| 957 | 7.67 | 6 | 5.33 | 5.576 |
| 574 | 5.00 | 6 | 5.33 | 5.291 |
| 1009 | 7.80 | 5 | 5.33 | 5.550 |
| 652 | 4.20 | 5 | 5.33 | 5.223 |
| 1214 | 4.00 | 4 | 5.33 | 5.227 |
| 2939 | 9.50 | 4 | 5.33 | 5.635 |
| 837 | 8.67 | 3 | 5.33 | 5.515 |
| 2938 | 4.33 | 3 | 5.33 | 5.269 |
| 3132 | 6.00 | 3 | 5.33 | 5.364 |
| 348 | 6.50 | 2 | 5.33 | 5.371 |
| 3077 | 7.50 | 2 | 5.33 | 5.409 |
| 3413 | 5.50 | 2 | 5.33 | 5.332 |
| 197 | 7.00 | 1 | 5.33 | 5.358 |
NOTA: He tomado un valor de m = 50, por poner un ejemplo, pero se puede variar esta constante para maximizar o minimizar la influencia del número de votos de los elementos. Es bueno jugar con una m baja al principio e ir ajustando hasta encontrar un valor lo más aproximada al sentido común, y suele ser en torno al 1% del número de votos recibido por el elemento que más votos haya conseguido.
En la primera columna aparece el identificador numérico del elemento (he cogido estos datos de un sistema de más de 4000 elementos donde todos reciben votaciones, la imagen del dÃa de Observatorio.info).
En la segunda aparece r, la media de votos aritmética de ese elemento, es decir, la suma de todas las puntuaciones que ha recibido ese elemento dividido entre el número de votos que ha recibido dicho elemento.
En la tercera columna v, que es simplemente los votos que ha recibido dicho elemento.
En la cuarta vemos c, que es la media global de todos los elementos del conjunto, es decir, la suma de todas las votaciones de todos ellos, dividido por el número de votos que han recibido todos los elementos.
Y en la quinta por fÃn, el resultado de la media bayesiana.
Como se puede apreciar y como se comentaba, cuantos más votos tiene un elemento (la tabla está ordenada asà en descenso), menos se altera su media aritmética original, y mientras menos tiene, el resultado bayesiano modifica su valor acercándose más a la media global del conjunto.
Veamos un ejemplo de esta tabla que ilustra muy bien este sistema y su «justicia»:
- El elemento 2309, tiene una media aritmética normal de 7.01, conseguida con 180 votos.
- El elemento 1771, también tiene una media aritmética de 7.01, pero sólo fueron 81 personas las que votaron.
En cambio, el primero de ellos, con la fórmula bayesiana obtiene un resultado de 6.645, mucho más justo y fiel ya que se ha formado con un mayor número de personas que fueron las que votaron, mientras que el segundo obtiene un resultado bayesiano de tan sólo 6.368, habiéndose variado más y acercándose más a la media global, por el poco peso que tiene los más de la mitad de los votos que recibió respecto al primero.
Todo esto se inició mientras que veÃa un ranking de cartelera, en donde, tras votar una pelÃcula que no tenÃa ningún voto (porque fui el primero en votarla) con una puntuación de 9, se trasladó a ser «la mejor pelÃcula votada por los usuarios», cuando en realidad, otras con muchas más votaciones estaban en puestos inferiores. Esta es la solución con la que he trabajado estos dÃas para crear un sistema de votaciones mucho más justo para mi web de Observatorio y poder formar un ranking más acorde a la realidad. Espero haberme explicado bien y a partir de ahora, ya sabéis como hacer un sistema de votaciones con ranking algo más justo.
Más información en la Wikipedia: Media Bayesiana y en este documento
[tags]media, aritmética, votos, votación, ponderada, bayesiana[/tags]
Eso mismo pensaba yo
15 de enero de 2008CARIÑO, SE ME DAN MUY MAL LAS MATEMÃTICAS. ALGO MEJOR SE ME DAN LAS MEDIAS Y LOS LIGUEROS, AUNQUE CON ESTAS PATORRAS QUE TENGO, CADA DÃA ME CUESTA MÃS LLEGAR HASTA LAS SUBMOLLAS DEL OMBLIGO. SÓLO QUERÃA DECIRTE QUE TE HE VISTO EN LA TELE, Y ME HE DICHO, MANOLA, VAMOS A VER QUÉ SE CUENTA ESTE MUCHACHITO TAN MONO. CLARO QUE ME HE ENCONTRADO CON ESTO DE LAS BAYESIANAS Y ME HAS DEJADO MUERTA.
15 de enero de 2008OTRO DÃA TE DOY UN BUEN REPASO QUE ES MUY TARDE.
CIAO, BELLISIMO!!!
Muy interesante y util.
15 de enero de 2008Pero tengo una duda que pasa con el primer elemento de la serie, ese que tiene 6000 votos, la media bayesiana deja casi igual la media aritmética pero parece poco justo ya que según esos datos, ha recibido 6000 votos mas que cualquier otro elemento.
Por tanto si eso es asÃ, ese elemento sigue saliendo perjudicado claramente, ya que como bien dices lo ha visto muchÃsima mas gente que los otros y eso modifica mucho la media ya que es mas real al votar mucha gente dan su opinión y habrá tantos a favor como en contra siendo mas orientativa, en cambio que 80 o 180 personas tengan gustos mas parecidos es mas probable.
¿Cómo se solucionarÃa esto?
Y no seria mas facil establecer un numero de votos minimo para que sea tomado en cuenta una candidatura?
15 de enero de 2008Alex, como es que ignoras el mensaje de Manolagay?
15 de enero de 2008Que te ha visto en la tele!! xD
¿Sabes si hay algún script de encuestas en PHP que utilice esta técnica?
17 de enero de 2008Buenas!
Me ha parecido realmente interesante el artÃculo, pero una duda que tengo yo.
Si la media aritmética total está muy alta, ¿no puede llegar a pasar de 10?
Un saludo!
11 de febrero de 2008Buenas!!
Jaja, ahora que lo leo más detenidamente no entiendo por qué pregunté eso. Jaja.
Creo que me confundà y vi un «+ C» en vez de «Ã— C»… jaja
En fin, esa media es la que yo también utilizaré, muchas gracias! ;-)
22 de febrero de 2008Al intentar poner en practica esta formula he tenido una duda, puesto que estoy haciendo un sistema de votaciones para un photocontest, en principio que valor «m» serÃa justo?
Por que claro, según incrementes o decrementes «m» la cosa cambiará.. no? O me estoy confundiendo y «m» es el número mÃnimo de votaciones, no de un elemento si no del todo…
Jarll que pollo…
P.D: Muy buen artÃculo,.
29 de febrero de 2008OK, gracias Alex.
Ahora realmente no puedo estimar que cantidad de votos que puede tener un concurso por que esta herramienta es nueva para la web en la que se va a implementar pero situaré m en 30 como valor inicial, con el uso de dicha herramienta ya variaré m…
29 de febrero de 2008No te imaginas la cantidad de trabajo que me has ahorrado con tu solución. Es realmente útil.
13 de agosto de 2008Felicidades por ello.