El siguiente es un programa en Java que de forma sencilla simula una variable aleatoria de Poisson.
¿Qué es Poisson?
Existe una distribución de probabilidad llamada Poisson, que nos permite realizar experimentos aleatorios para observar la frecuencia con que ocurre algo durante un espacio de tiempo.
Por ejemplo, si deseáramos analizar el número de llamadas que recibe un teléfono durante una hora, o la cantidad de clientes que llegan a la caja durante un minuto, etc. Poisson nos permite analizar un evento que ocurre en cierta cantidad de tiempo.
Podemos simular experimentos de Poisson en la computadora. Para esto utilizaremos el siguiente algoritmo:
El algoritmo
- Sean k = 1, p=1
- Se genera ui = U(0,1) y se hace k = k(ui);
- Si k≤ exp(-lambda), entonces x-1 es el valor buscado. En caso contrario se hace x=x+1 y se va al paso 2.
El programa
Este algoritmo llevado a una función en Java quedaría de la siguiente manera:
public static int getPoisson (double lambda){ double L = Math.exp(-lambda); double p = 1.0; int k = 0; do{ k++; p *= Math.random(); } while (p > L); return k-1; }
El programa principal sería:
public static void main(String[] args) { int n=0; for (int i=0; i<=10; i++){ n = getPoisson(4); System.out.println(" " + n); } }
Esto nos entrega 10 números que siguen una distribución Poisson con media de 4.
Caso de aplicación
Un caso de aplicación sería el siguiente:
Una empresa tiene un promedio de 4 accidentes al mes en sus instalaciones. Si cada accidente le representa un gasto de 800 pesos, ¿cuál sería la cantidad probable que gastará en un año por concepto de Pago de Accidentes?
Modificamos el programa principal para que resuelva el problema planteado y quedaría asi:
public static void main(String[] args) { int n=0; double pago, total = 0; String[] meses = {"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre","Oct", "Nov", "Dic"}; for (int i=0; i<=11; i++){ n = getPoisson(4); pago = n * 800; total = total + pago; System.out.println("Accidentes en " + meses[i] + ": " + n); } System.out.println("Gasto Probable: " + total); }
Un ejemplo de una salida de este programa sería la siguiente:
No olvides dejar tus comentarios y dudas sobre este ejercicio.
Referencias
- Mendenhall W., Beaver R., Beaver B. (2008). Introducción a la probabilidad y estadística. 12ª Edición. Ed. Cengage Learning. México.
Tu comentario
opiniones