1. Introducción

La distribución de Poisson es una distribución de probabilidad discreta que expresa la probabilidad de ocurrencia de un determinado número de evento durante un cierto intervalo de tiempo o espacio, a partir de una frecuencia de ocurrencia media conocida.

Fuente: Wikipedia

La variable aleatoria x representa la cantidad de eventos observados en el intervalo y se cumple que 0 <= x <= \(\infty\).

Su función de probabilidad es:

\[\LARGE P(x) = \frac {e^{-\lambda} \cdot {\lambda^x}} {x!}\]

En relación a esta distribución, R tiene 4 funciones:

  • rpois: genera valores aleatorios acorde a los parámetros indicados.
  • dpois: calcula la probabilidad puntual para un valor específico.
  • ppois: proporciona la probabilidad acumulada para un cuantil específico.
  • qpois: proporciona el cuantil para una probabilidad específica.


2. Números aleatorios

Se pueden generar números aleatorios que provengan de una distribución Poisson con parámetros específicos.


CASO A. Calculemos 3 lotes de 10 valores aleatorios a partir de una distribución Poisson con una tasa promedio lambda = 96.7 eventos por hora.

La cantidad mínima de eventos que se pueden obtener es 0 y la cantidad máxima es teóricamente infinita.

rpois(10, lambda = 96.7)
##  [1] 122  96 100 105  91  99 104  87  90 105
rpois(10, lambda = 96.7)
##  [1]  91  82  95  86  94  89  97  86 104  96
rpois(10, lambda = 96.7)
##  [1] 108  98  96 116  88  92  93  95 101  80


CASO B. Calculemos 3 lotes de 10 valores aleatorios a partir de una distribución Poisson con una tasa promedio lambda = 7.9 eventos por hora.

La cantidad mínima de eventos que se pueden obtener es 0 y la cantidad máxima es teóricamente infinita.

rpois(10, lambda = 7.9)
##  [1] 12  6  8  8  8  5  9  7 12  5
rpois(10, lambda = 7.9)
##  [1]  5  5  7  2  9 12  7  6  8 13
rpois(10, lambda = 7.9)
##  [1]  7 12  7  6  6  4 13  6  7 13


Observemos que en cada caso se obtienen diferentes rangos de valores porque aunque ambos casos son distribuciones Poisson, sus parámetros son diferentes.


3. Cálculo de probabilidades

En un fenómeno Poisson, nos interesa calcular la probabilidad de obtener un cierto número de eventos, representado por la variable aleatoria x.

Por ejemplo, si analizamos un fenómeno Poisson con una tasa promedio lambda de 15.2 eventos por día, los resultados posibles son 0, 1, 2, 3, 4, 5, … hasta el infinito.


La función dpois calcula la probabilidad puntual para cada resultado, es decir, P(X = x).

x <- c(0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13)
dpois(x, lambda = 15.2)
##  [1] 2.504516e-07 3.806865e-06 2.893217e-05 1.465897e-04 5.570408e-04
##  [6] 1.693404e-03 4.289957e-03 9.315334e-03 2.989187e-02 4.543565e-02
## [11] 6.278380e-02 7.952615e-02 9.298442e-02
#P(X = 0)
dpois(0, lambda = 15.2)
## [1] 2.504516e-07
#P(X = 1)
dpois(1, lambda = 15.2)
## [1] 3.806865e-06
#P(X = 2)
dpois(2, lambda = 15.2)
## [1] 2.893217e-05
#P(X = 7)
dpois(7, lambda = 15.2)
## [1] 0.009315334
#P(X = 8)
dpois(8, lambda = 15.2)
## [1] 0.01769914
#P(X = 9)
dpois(9, lambda = 15.2)
## [1] 0.02989187
#P(X = 13)
dpois(13, lambda = 15.2)
## [1] 0.09298442
#P(X = 14)
dpois(14, lambda = 15.2)
## [1] 0.1009545
#P(X = 15)
dpois(15, lambda = 15.2)
## [1] 0.1023006
#P(X = 1000)
dpois(1000, lambda = 15.2)
## [1] 0
#P(X = 10000)
dpois(10000, lambda = 15.2)
## [1] 0
#P(X = 1000000)
dpois(1000000, lambda = 15.2)
## [1] 0

IMPORTANTE: Los últimos 3 resultados dan cero, pero esto es debido a la capacidad de almacenamiento numérico de la computadora, el resultado real es un número demasiado pequeño, pero no es cero. Recuerde que probabilidad de 0 significa que JAMÁS OCURRE.


La función ppois calcula la probabilidad acumulada para cada resultado, es decir, P(X <= x).

x <- c(0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13)
ppois(x, lambda = 15.2)
##  [1] 2.504516e-07 4.057317e-06 3.298949e-05 1.795792e-04 7.366199e-04
##  [6] 2.430024e-03 6.719981e-03 1.603532e-02 6.362632e-02 1.090620e-01
## [11] 1.718458e-01 2.513719e-01 3.443564e-01
#P(X = 0)
ppois(0, lambda = 15.2)
## [1] 2.504516e-07
#P(X = 1)
ppois(1, lambda = 15.2)
## [1] 4.057317e-06
#P(X = 2)
ppois(2, lambda = 15.2)
## [1] 3.298949e-05
#P(X = 7)
ppois(7, lambda = 15.2)
## [1] 0.01603532
#P(X = 8)
ppois(8, lambda = 15.2)
## [1] 0.03373445
#P(X = 9)
ppois(9, lambda = 15.2)
## [1] 0.06362632
#P(X = 13)
ppois(13, lambda = 15.2)
## [1] 0.3443564
#P(X = 14)
ppois(14, lambda = 15.2)
## [1] 0.4453109
#P(X = 15)
ppois(15, lambda = 15.2)
## [1] 0.5476114
#P(X = 1000)
ppois(1000, lambda = 15.2)
## [1] 1
#P(X = 10000)
ppois(10000, lambda = 15.2)
## [1] 1
#P(X = 1000000)
ppois(1000000, lambda = 15.2)
## [1] 1

IMPORTANTE: Los últimos 3 resultados dan uno, pero esto es debido a la capacidad de almacenamiento numérico de la computadora, el resultado real es un número demasiado cercano a uno, por lo que al redondearse, se obtiene uno, pero no lo es. Recuerde que probabilidad de 1 significa que SIEMPRE OCURRE.


Podemos construir un data frame para una representación tabular de estos cálculos de probabilidad.

x <- c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 
       15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
tabla.poisson <- data.frame(x, 
                            dpois(x, lambda = 15.2), 
                            ppois(x, lambda = 15.2))
names(tabla.poisson) <- c('x', 'P(X = x)', 'P(X <= x)')
tabla.poisson
x P(X = x) P(X <= x)
0 0.0000003 0.0000003
1 0.0000038 0.0000041
2 0.0000289 0.0000330
3 0.0001466 0.0001796
4 0.0005570 0.0007366
5 0.0016934 0.0024300
6 0.0042900 0.0067200
7 0.0093153 0.0160353
8 0.0176991 0.0337345
9 0.0298919 0.0636263
10 0.0454356 0.1090620
11 0.0627838 0.1718458
12 0.0795262 0.2513719
13 0.0929844 0.3443564
14 0.1009545 0.4453109
15 0.1023006 0.5476114
16 0.0971855 0.6447970
17 0.0868953 0.7316923
18 0.0733783 0.8050706
19 0.0587026 0.8637732
20 0.0446140 0.9083872
21 0.0322920 0.9406792
22 0.0223109 0.9629900
23 0.0147446 0.9777346
24 0.0093382 0.9870728
25 0.0056776 0.9927505
26 0.0033192 0.9960697
27 0.0018686 0.9979383


4. Cálculo de cuantiles

Un cuantil asociado a una probabilidad p, se define como el valor más pequeño posible de la variable x que cumpla que F(x) >= p, donde F(x) es la función de probabilidad acumulada.


La función qpois calcula el cuantil a partir de una probabilidad acumulada. Esta función es inversa a ppois.

Por ejemplo, si tenemos un fenómeno Poisson con tasa promedio lambda de 55 eventos por minuto, podemos calcular los cuantiles que corresponden a las probabilidades 0.25, 0.50, 0.75 con la siguiente instrucción:

p <- c(0.25, 0.50, 0.75)
qpois(p, lambda = 55)
## [1] 50 55 60


5. Ejemplo práctico

En una farmacia, se sabe que llega en promedio 20 clientes por hora.

Asumiendo que el fenómeno es Poisson y que el intervalo de referencia es una hora, la cantidad de clientes por hora define la tasa promedio:

  • lambda = 20


¿QUé probabilidad hay de que en la siguiente hora lleguen exactamente 12 clientes a la farmacia?

Para responder, hay que calcular la probabilidad de que x sea 12 con la función dpois.

P(X = 12)

# P(X = 12)

dpois(12, lambda = 20)
## [1] 0.01762517


¿QUé probabilidad hay de que en la siguiente hora lleguen máximo 12 clientes a la farmacia?

Para responder, hay que calcular la probabilidad de que x sea 0 clientes o 1 cliente o 2 clientes hasta 12 clientes, para esto se suman las probabilidades puntuales de cada caso con la función dpois o se calcula la probabilidad acumulada hasta 12 con la función ppois.

P(X <= 12)

# OPCIóN 1. Sumando las probabilidades individuales --> P(X = 0) + ... + P(X = 12)

dpois(0, lambda = 20) + dpois(1, lambda = 20) + dpois(2, lambda = 20) +
dpois(3, lambda = 20) + dpois(4, lambda = 20) + dpois(5, lambda = 20) +
dpois(6, lambda = 20) + dpois(7, lambda = 20) + dpois(8, lambda = 20) +
dpois(9, lambda = 20) + dpois(10, lambda = 20) + dpois(11, lambda = 20) +
dpois(12, lambda = 20)
## [1] 0.03901199
# OPCIÓN 2. Calculando directamente la probabilidad acumulada --> P(X <= 12)

ppois(12, lambda = 20)
## [1] 0.03901199


¿QUé probabilidad hay de que en la siguiente hora lleguen menos de 12 clientes a la farmacia?

Para responder, hay que calcular la probabilidad de que x sea 0 clientes o 1 cliente o 2 clientes hasta 11 clientes, para esto se suman las probabilidades puntuales de cada caso con la función dpois o se calcula la probabilidad acumulada hasta 11 con la función ppois.

P(X < 12)

[ Equivalente a P(X <= 11) ]

# OPCIóN 1. Sumando las probabilidades individuales --> P(X = 0) + ... + P(X = 11)

dpois(0, lambda = 20) + dpois(1, lambda = 20) + dpois(2, lambda = 20) +
dpois(3, lambda = 20) + dpois(4, lambda = 20) + dpois(5, lambda = 20) +
dpois(6, lambda = 20) + dpois(7, lambda = 20) + dpois(8, lambda = 20) +
dpois(9, lambda = 20) + dpois(10, lambda = 20) + dpois(11, lambda = 20)
## [1] 0.02138682
# OPCIÓN 2. Calculando directamente la probabilidad acumulada --> P(X <= 11)

ppois(11, lambda = 20)
## [1] 0.02138682


¿QUé probabilidad hay de que en la siguiente hora lleguen al menos 12 clientes a la farmacia?

Para responder, usamos las propiedades de un evento y su complemento, por lo tanto, hay que restarle a 1 la probabilidad del caso complementario que sería la llegada de menos de 12 clientes.

P(X >= 12)

[ Equivalente a 1 - P(X < 12) ]

1 - ppois(11, lambda = 20)
## [1] 0.9786132


¿QUé probabilidad hay de que en la siguiente hora lleguen más de 12 clientes a la farmacia?

Para responder, usamos las propiedades de un evento y su complemento, por lo tanto, hay que restarle a 1 la probabilidad del caso complementario que sería la llegada de máximo 12 clientes.

P(X > 12)

[ Equivalente a 1 - P(X <= 12) ]

1 - ppois(12, lambda = 20)
## [1] 0.960988


IMPORTANTE. El valor de lambda debe ser consistente con el intervalo analizado, es decir, en el ejemplo anterior, si la pregunta fuera:

  • en la siguiente media hora lleguen …? El valor lambda debería ser 10 clientes por cada media hora.
  • en los siguiente 15 minutos lleguen …? El valor lambda debería ser 5 clientes por cada 15 minutos.
  • en los siguientes 3 minutos lleguen …? El valor lambda debería ser 1 clientes por cada 3 minutos.



Anexo. Relación de funciones

Las siguientes son las funciones que es recomendable revisar la documentación para ir entendiendo que hace cada función y que opciones tiene.

  • rpois
  • dpois
  • ppois
  • qpois

     

 

Dr. José Luis Barrera Canto

Profesor Investigador

División de Ingeniería y Ciencias Exactas
Universidad Anáhuac Mayab

jose.luis.barrera.canto@gmail.com