Tuesday, 14 April 2020

Recortes en sanidad

Ahora que estamos todos confinados, todo el mundo habla de qué se podía haber hecho mejor para evitar esta pandemia. Creo que es extremadamente pronto para hacernos esa pregunta, y que llevará muchos meses (si no años) estudiar cómo se propagó el virus, las medidas que fueron tomando los distintos países y las lecciones que debemos aprender para el futuro.

Mientras tanto, los políticos, dando una vez más un ejemplo de elegancia y concordia, sacan todo su arsenal para atacar al contrario con todo lo que tienen (especialmente los más extremistas). Y uno de los temas más recurrentes estos días, son los recortes en sanidad y en camas de hospital disponibles. ¿Hubo recortes en sanidad? Y si los hubo, ¿en qué cuantía y como se comparan con el resto de países europeos? ¿Hay diferencias por comunidades? Sin duda debería haberlas, puesto que las competencias en Sanidad están transferidas...

Son preguntas que intento responderme a mi mismo para tener una opinión mínimamente formada. Y como estaba realmente cansado de ver publicaciones manipuladas en uno u otro sentido, me he ido la fuente:


Es un ejercicio similar al realizado en este hilo de Twitter por SimonGRT (@OrcishOzu), solo que explicando las tablas concretas de las que salen los datos.

Que cada cual saque sus propias conclusiones.

Camas de hospital disponibles por cada 100.000 habitantes

En Europa, Hospitales públicos y privados

Fuente de datos EuroStat: https://bit.ly/3ehVZSR



En Europa, solo hospitales públicos

Fuente de datos EuroStat: https://bit.ly/2RFwx06




En España, Hospitales públicos y privados

Fuente de datos EuroStat: https://bit.ly/2ygNGXa



Gasto en Sanidad en Europa, en € por habitante

Nota: El gasto total (en millones de Euros) por país es un dato que no aporta mucho a la hora de comparar porque hay países mucho más grandes que otros (y que por tanto gastan muchísimo más). Por eso, hemos calculado el gasto por habitante.

Fuentes de datos EuroStat: 


Note: Health care expenditure quantifies the economic resources dedicated to health functions, excluding capital investment. Healthcare expenditure concerns itself primarily with healthcare goods and services that are consumed by resident units, irrespective of where that consumption takes place (it may be in the rest of the world) or who is paying for it. Data are collected according to SHA2011 methodology.

Gasto por habitante (€): 


Gasto total (Millones de €): https://bit.ly/3b8C72t


Población (personas): https://bit.ly/34xqxM4


Gasto en Sanidad en Europa, % del PIB


Los países no son iguales en tamaño, ni tampoco en riqueza. Es lógico pensar que los países con un mayor PIB puedan destinar más cantidad de dinero a partidas públicas, como la sanidad. Por eso tiene sentido incluir en esta comparativa la evolución del gasto en sanidad de los países europeos, expresada como porcentaje del PIB. 

Fuentes de datos EuroStat: 



PIB Países Europeos: https://bit.ly/3cbdceS










Gasto en sanidad (% del PIB): https://bit.ly/2Kaqyfj




Monday, 7 October 2019

Las probabilidades de la lotería


De vez en cuando compro un boleto de lotería, lo reconozco. ¿Por qué? Pues no lo sé. Supongo que como todos, por aquello de... "y si toca"... Supongo que todos caemos en la (falsa) idea de que a alguien le tiene que tocar. Y lo cierto, es que eso no es cierto. 😊

Mucha gente nos hemos tomado la molestia de entender cómo funciona la lotería. Vas a la web y lees los datos, las probabilidades, y listo. En un juego como el de los Euromillones, por ejemplo, la probabilidad de ganar un premio de primera categoría es de 1 entre 139,838,160 (más info aqui)

¿Pero, qué quiere decir eso exactamente? Si jugaras una apuesta en todos y cada uno de los sorteos de Euromillones, ¿cuánto tiempo crees que te costaría ganarlo? Hay quien dice que ni en un millon de años...




Qué exagerados, ¿no? ¿Cuánto tiempo dirías tu? Es evidente que no esperas ganar después de 1 año jugando, sería un chollo. Pero... ¿Y si estás 10 años jugando? ¿Y si son 50 años, toda una vida, jugando sin excepción dos veces todas las semanas? ¿Dirías que tienes una probabilidad aceptable de que te toque?

Ni remotamente.



Los que entienden algo de mates, saben que no. Que puedes estar una vida, y dos, y tres, jugando, y que no te va a tocar. Pero yo quería verlo. Experimentarlo. Quería tener una idea real de cómo de difícil es que te toque. Evidentemente, el azar es el azar y puedes ganarlos en la primera apuesta, pero también no ganarlos nunca. 

Decidí investigar, y encontré simuladores que permitían hacer eso: simular apuestas una y otra vez. Lamentablemente, en cuanto empecé a probarlos me di cuenta de que eran demasiado lentos. La cosa iba para largo, y su baja velocidad iba a hacer la prueba inviable. Así que hice lo único que se hacer: programé un simulador de Euromillones más rápido que los que había por ahí.

Es una aplicación que simula el proceso de tener 50 bolas en un bombo, y sacar 5 al azar para los números normales. Luego repite el proceso después, sacando 2 de entre 12 bolas más (para las estrellas). Además, hace esto dos veces por sorteo, una para sacar la combinación ganadora, y otra para sacar una apuesta distinta cada vez. Todo ello, 17.000 veces por segundo.

Programé la aplicación para simular 1 apuesta simple por sorteo, 2 veces por semana, con el bote máximo (190 Millones de Euros de premio). Añadí además una estimación de las cantidades que recibes en los premios (cuando resulta que hay premio) para poder tener un balance del dinero que llevas gastado y ganado. 

El resultado, como podéis ver en el vídeo de más arriba, es desalentador. 

1.383.899 años jugando
Más de 78 millones de euros perdidos

Y eso a pesar de haber ganado un bote de 190 millones de euros. Lo cierto es que en el vídeo se ve claramente que, cuanto más juegas, más pierdes.

¿Es más probable ganar con apuestas aleatorias, o siempre la misma?

La teoría nos dice que la probabilidad de ganar es la misma (si no fuera la misma, tened bien claro que su precio no sería el mismo tampoco), pero gracias a este simulador, podemos comprobarlo.

He ejecutado la simulación desmarcando la opción de que regenera la apuesta cada vez, para que siempre sea la misma. ¿El resultado? Pues igual. En este caso en 1500 millones de años ni siquiera ha logrado ganar el primer premio. Cuando llevaba un número de años similar a la simulación anterior, los resultados eran muy muy parecidos:




Dado que ha tardado más en ganar el primer premio, ¿quiere decir que una apuesta fija tiene una probabilidad más baja de ganar? No, tiene la misma. Dado que solo esperamos a que se gane el primer premio 1 vez (el número de muestras de ese evento es bajo), hay bastante variabilidad acerca del momento en el que se consigue. Sin embargo, si esperáramos a que la simulación gane el primer premio muchas veces, las cifras tenderían a igualarse.

¿Y qué sucede con las apuestas múltiples?

Las apuestas múltiples sí tienen más probabilidad, evidentemente. Por eso cuestan más, mucho más.

El juego de los Euromillones, por ejemplo, permite hacer apuestas en las que no escoges 5 números y 2 estrellas, sino más. Hasta un máximo de 10 números y 5 estrellas. Evidentemente, la probabilidad de ganar con una apuesta así es mucho mayor, teóricamente equivalente a hacer 2520 apuestas sencillas. Por eso, su precio es 2520 veces mayor, nada menos que 6300 € por apuesta múltiple.

Ahora bien, ¿merece la pena? ¿cómo de probable es ganar con una apuesta así de fuerte (y de cara)? Veámoslo:




Como podemos comprobar, el resultado es igual de desalentador. En los primeros 100 años, la inversión en apuestas es de 66 millones de euros, y apenas se ha ganado más de medio millón.

El primer premio de primera categoría se obtiene tras 600 años jugando, y aunque hay varios puntos de la simulación en los que el balance es positivo (a los 1200, 1400, 1700, 2200 y 2700 años jugando) la tendencia a la larga es exactamente la misma. Cuanto más juegas, más pierdes. Así que no, no merece la pena.

Y si es tan improbable, ¿por qué toca tan a menudo? 

Pues porque juega muchísima gente (se prueban muchísimas combinaciones distintas cada día), normalmente entre 20 y 60 millones por sorteo, dependiendo del bote que haya. Así que la probabilidad de que le toque a alguien es razonablemente alta. Pero lamentablemente, la probabilidad de que ese “alguien” seas tú sigue siendo bajísima.

¿Como diseñan estos sorteos?

Está claro que si tocara muy a menudo, el bote no crecería (y no despertaría demasiado interés), y si tocara muy poco, la consecuencia sería la misma (la gente no se interesaría por el sorteo).

Así que si os fijáis, dado que juegan 20-60 millones de personas cada día, y hay un número de combinaciones de 139 millones, el juego está perfectamente diseñado para que toque el gordo cada pocos sorteos. Por supuesto, el azar es el azar, y a veces tarda más, o menos, pero por regla general, la probabilidad se cumple.

¿Realmente se cumplen las probabilidades?

Si, a rajatabla.

Veamos la tabla de probabilidades oficial de los Euromillones:



Si os fijáis en el número de veces que ha tocado cada tipo de premio en el siguiente pantallazo, sacado del final del video:



 En nuestra simulación se han hecho más de 144 millones de sorteos. Veréis que las probabilidades teóricas se cumplen a rajatabla (especialmente en los premios de abajo, con mayor número de muestras):

- El premio 2 + 0 ha tocado 1 vez de cada 21.9 veces
- El premio 2 + 1 ha tocado 1 vez de cada 49.23 veces
- El premio 1 + 2 ha tocado 1 vez de cada 187.9 veces
- El premio 3 + 0 ha tocado 1 vez de cada 313.6 veces
...
Y así sucesivamente. Los números son muy muy aproximados a los de la tabla de arriba, proviniente de la página oficial de los Euromillones.

Eso muestra que mi programa está bien hecho, y que las probabilidades que ofrecen en la web del sorteo son 100% reales. 

Aun así, ya ves que ganar es muy, muy, muy poco probable. Podrías estar mil vidas jugando, y ni aproximarte a ganar...

Suerte!



Tuesday, 16 April 2019

Azure IoT Device Client SDK v 1.2.0 doesn't work with Xamarin Android apps

Several hours lost trying to deal with a connectivity issue between our Android app and a test Azure IoT server, just to find out that the problem was just having update the Client SDK nuget package (https://github.com/Azure/azure-iot-sdk-csharp)

The SendEventAsync seemed to never finish the task when using MQTT, and it threw an exception when AMQP (something related to Amqp constructor could not intialize the Configuration System).

After several hours assuming it was a fault in my code, or in the Azure setup, I checked the SDK release notes ( https://github.com/Azure/azure-iot-sdk-csharp/releases ), to find that last version was released a few days ago, with a major AMQP redesign.

Downgrading to version 1.19 simply did the trick...

Friday, 14 July 2017

World Enduro Rally

I'm happy to share the result of the work I've been doing in the last months: yesterday, World Enduro Rally came to light.



The game is available for XBoxOne, Steam, Android and Windows. You can get all the details at its Facebook page, or download directly here:





Hope you like it!