Introducción a las distribuciones de probabilidad

Se puede describir de forma completa una variable aleatoria sin más que especificar la probabilidad asociada a cada uno de sus posibles valores. Esta especificación se conoce con el nombre de distribución de probabilidad. Sin embargo, la forma en que se puede especificar dicha distribución de probabilidad depende del tipo de variable aleatoria con la que se esté trabajando. En el caso de variables discretas basta con determinar la probabilidad de cada uno de los posibles resultados observables de la variable, pero no ocurre de la misma forma con las variables continuas donde es imposible conocer todas las probabilidades asociadas con cada uno de sus posibles valores.

Distribuciones de probabilidad discretas

Se les denomina discretas, debido a que sus eventos no asumen valores intermedios entre dos numeros enteros.

Distribución de probabilidad binomial \(X{\sim}Bin(size, prob)\)

Se le conoce tambien como distribucion de la probabilidad puntual o de Bernoulli, debido al suizo Jacques Bernoulli, quien por primera vez desarrollo el concepto de ensayos independientes.

Función de probabilidades \(f_{X}\)

\[ P\left(X=x\right)=\binom{size}{x}{prob}^{x}\left(1-{prob}\right)^{size-x}\text{ con }0{\leq}{prob}{\leq}1\text{ y }x=0,1,2,\ldots,{size} \]

densidad.binomial <- function(x, size, prob) choose(size,x)*prob**x*(1-prob)**(size-x)

Esperanza \(\mu_{x}\)

\[ \mu_{x}=\sum_{x=0}^{size}x{\cdot}\binom{size}{x}{prob}^{x}\left(1-{prob}\right)^{size-x}={size}{\cdot}{prob} \]

esperanza.binomial <- function(size, prob) sum((0:size)*choose(size,(0:size))*prob**(0:size)*(1-prob)**(size-(0:size)))

Varianza \(\sigma_{x}^{2}\)

\[ \sigma_{x}^{2}=\sum_{x=0}^{size}\left(x-\mu_{x}\right)^{2}{\cdot}\binom{size}{x}{prob}^{x}\left(1-{prob}\right)^{{size}-x}={size}{\cdot}{prob}{\cdot}\left(1-{prob}\right) \]

varianza.binomial <- function(size, prob) sum((0:size-esperanza.binomial(size, prob))**2*choose(size,(0:size))*prob**(0:size)*(1-prob)**(size-(0:size)))

Características:

  1. Los ensayos de Bernoulli se llevan a cabo size (o n) veces,

  2. Los ensayos son independientes,

  3. La probabilidad de exito prob (o p) no cambia entre los ensayos,

  4. Solo hay dos posibles resultados en cada ensayo.

Ejemplo

Una medida de aislamiento preventivo obligatorio para contener la expansión de un virus mortal, el COVID-19, ha exito hasta el punto de que 80% de los habitantes de un país se han quedado en sus casas. Para verificar el acatamiento de la medida un grupo de 400 familias ha sido seleccionada para hacer un seguimiento a dicha medida. Con base en lo anterior encuentre las siguientes probabilidades.

\[ P(\text{# de familias que acatan la norma}=x)=\binom{400}{x}{0.8}^{x}\left(1-{0.8}\right)^{400-x}\text{ con }0{\leq}{0.8}{\leq}1\text{ y }x=0,1,2,\ldots,{400} \]

  1. ¿Cuál es la probabilidad de que en el grupo hayan cumplido estrictamente con la norma 200 familias?

\[ P(\text{# de familias que acatan la norma}=200)=\binom{400}{200}{0.8}^{200}\left(1-{0.8}\right)^{400-200} \]

choose(400,200)*0.8**200*(1-0.8)**(400-200)
## [1] 6.864888e-41
densidad.binomial(x = 200, size = 400, prob = 0.8)
## [1] 6.864888e-41
dbinom(x = 200, size = 400, prob = 0.8)
## [1] 6.864888e-41
  1. ¿Cuál es la probabilidad de que en el grupo hayan cumplido estrictamente con la norma 320 familias?

\[ P(\text{# de familias que acatan la norma}=320)=\binom{400}{320}{0.8}^{320}\left(1-{0.8}\right)^{400-320} \]

choose(400,320)*0.8**320*(1-0.8)**(400-320)
## [1] 0.04981327
densidad.binomial(x = 320, size = 400, prob = 0.8)
## [1] 0.04981327
dbinom(x = 320, size = 400, prob=0.80)
## [1] 0.04981327
  1. ¿Y cómo máximo 200 cumplan con la norma de aislamiento preventivo obligatorio?

\[ P(\text{# de familias que acatan la norma }{\leq}200)=\sum_{x=0}^{200}P(\text{# de familias que acatan la norma}=x) \] \[ \sum_{x=0}^{200}P(\text{# de familias que acatan la norma}=x)=\sum_{x=0}^{200}\binom{400}{x}{0.8}^{x}\left(1-{0.8}\right)^{400-x} \]

sum(densidad.binomial(0:200, 400, 0.8))
## [1] 9.128211e-41
sum(dbinom(x = 0:200, size = 400, prob = 0.80))
## [1] 9.128211e-41
pbinom(q = 200, size = 400, prob = 0.80, lower.tail = TRUE)
## [1] 9.128211e-41
  1. ¿Y como mínimo 300 familias sean las que acatan la norma de aislamiento preventivo obligatorio?

\[ P(\text{# de familias que acatan la norma }{\geq}300)=1-P(\text{# de familias que acatan la norma}{\leq}299) \]

\[ 1-P(\text{# de familias que acatan la norma}{\leq}299)=1-\sum_{x=0}^{299}P(\text{# de familias que acatan la norma}=x) \]

\[ 1-\sum_{x=0}^{299}P(\text{# de familias que acatan la norma}=x)=1-\sum_{x=0}^{299}\binom{400}{x}{0.8}^{x}\left(1-{0.8}\right)^{400-x} \]

1 - sum(densidad.binomial(0:299, 400, 0.8))
## [1] 0.9938071
1 - sum(dbinom(x = 0:299, size = 400, prob = 0.80))
## [1] 0.9938071
1 - pbinom(q = 299, size = 400, prob = 0.80, lower.tail = TRUE)
## [1] 0.9938071

También se puede encontrar esta probabilidad haciendo el calculo siguiente:

\[ P(\text{# de familias que acatan la norma }{\geq}300)=\sum_{x=300}^{400}P(\text{# de familias que acatan la norma}=x) \]

\[ \sum_{x=300}^{400}P(\text{# de familias que acatan la norma}=x)=\sum_{x=300}^{400}\binom{400}{x}{0.8}^{x}\left(1-{0.8}\right)^{400-x} \]

sum(densidad.binomial(300:400, 400, 0.8))
## [1] 0.9938071
sum(dbinom(x = 300:400, size = 400, prob = 0.80))
## [1] 0.9938071
pbinom(q = 299, size = 400, prob = 0.80, lower.tail = FALSE)
## [1] 0.9938071

Nota

La suma de las probabilidades sobre todos los valores que puede tomar la variable aleatoria es igual a 1

\[ P(\text{# de familias que acatan la norma }{\leq}299)+P(\text{# de familias que acatan la norma }{\geq}300)=1 \]

pbinom(q = 299, size = 400, prob = 0.80, lower.tail = TRUE) + pbinom(q = 299, size = 400, prob = 0.80, lower.tail = FALSE)
## [1] 1

De lo anterior y despejando, se puede obtener la formula del complemento de una probabilidad, y es por esto que las probabilidades son iguales

all.equal(pbinom(q = 299, size = 400, prob = 0.80, lower.tail = FALSE), 1 - pbinom(q = 299, size = 400, prob = 0.80, lower.tail = TRUE))
## [1] TRUE
  1. ¿Y qué sean como máximo las 400 las familias las que acatan la norma, es decir, cero familias o una familia o dos familias, etc?

\[ P(\text{# de familias que acatan la norma} {\leq} 400)=\sum_{x = 0}^{400}{P(\text{# de familias que acatan la norma}=x)} \]

\[ \sum_{x = 0}^{400}{P(\text{# de familias que acatan la norma}=x)}=\sum_{x=0}^{400}\binom{400}{x}{0.8}^{x}\left(1-{0.8}\right)^{400-x} \]

sum(densidad.binomial(0:400, 400, 0.8))
## [1] 1
sum(dbinom(x = 0:400, size = 400, prob = 0.80))
## [1] 1
pbinom(q = 400, size = 400, prob = 0.80, lower.tail = TRUE)
## [1] 1
  1. Analizar el éxito o fracaso de la medida de asilamento preventivo en la muestra aleatoria de 400 famiilias.
ensayos <- 400
pobabilidad.de.exito <- 0.80
valores.posibles <- 0:ensayos
fx.binomial <- dbinom(x = valores.posibles, size = ensayos, prob = pobabilidad.de.exito)
fbb = pbinom(q = valores.posibles, size = ensayos, prob = pobabilidad.de.exito, lower.tail = TRUE)
fx.binomial = data.frame(x = valores.posibles, "f(X)" = fx.binomial, "F(X)" = fbb)
#tail(fx.binomial)
library(ggplot2)
## Warning: replacing previous import 'lifecycle::last_warnings' by
## 'rlang::last_warnings' when loading 'tibble'
## Warning: replacing previous import 'ellipsis::check_dots_unnamed' by
## 'rlang::check_dots_unnamed' when loading 'tibble'
## Warning: replacing previous import 'ellipsis::check_dots_used' by
## 'rlang::check_dots_used' when loading 'tibble'
## Warning: replacing previous import 'ellipsis::check_dots_empty' by
## 'rlang::check_dots_empty' when loading 'tibble'
p1 <- ggplot(fx.binomial, aes(x = x, y = f.X.)) +
  geom_bar(aes(color = x), stat = "identity", fill = "white") + theme(legend.position = "none") + xlab("") + ylab("Densidad f(x)")
library(ggplot2)
p2 <- ggplot(fx.binomial, aes(x = x, y = F.X.)) +
  geom_bar(aes(color = x), stat = "identity", fill = "white") + theme(legend.position = "none") + xlab("") + ylab("Distribución F(x)")
library(gridExtra)
grid.arrange(p1, p2, nrow = 2, top = "Distribución binomial")

  1. Calcular el valor esperado del número de familias que se espera acaten la norma al seleccionar una muestra aleatoria de 400
esperanza.binomial(400,0.8)
## [1] 320
400*0.8
## [1] 320
  1. Calcular la varianza del número de familias que se espera acaten la norma al seleccionar una muestra aleatoria de 400
varianza.binomial(400,0.8)
## [1] 64
400*0.8*(1-0.8)
## [1] 64

Distribución de probabilidad geométrica \(X{\sim}Geom(1,prob)\)

Es cualquiera de las dos distribuciones de probabilidad discretas siguientes:

  1. la distribución de probabilidad del número \(X\) del ensayo de Bernoulli necesaria para obtener un éxito, contenido en el conjunto \(\left\{ 1, 2, 3,\ldots,\right\}\) o
  2. la distribución de probabilidad del número \(Y = X − 1\) de fallos antes del primer éxito, contenido en el conjunto \(\left\{ 0, 1, 2,\ldots\right\}\).

Función de probabilidades \(f_{X}\)

  1. Aquí la idea es contar el número de ensayos antes de obtener el primer éxito con probabilidad prob

\[ P(X=x)={prob}\left(1-{prob}\right)^{x-1}\text{ con }0{\leq}{prob}{\leq}1\text{ y }x=1,2,\ldots \]

  1. Aquí cuento el número de fracasos antes de obtener el primer éxito con probabilidad prob

\[ P(X=x)={prob}\left(1-{prob}\right)^{x}\text{ con }0{\leq}{prob}{\leq}1\text{ y }x=0,1,\ldots \]

densidad.geometrica <- function(x, prob) prob*(1-prob)**(x)

Esperanza \(\mu_{x}\)

\[ \mu_{x}=\sum_{x=0}^{\infty}x{\cdot}{prob}\left(1-{prob}\right)^{x}=\frac{1-prob}{prob} \]

esperanza.geometrica <- function(size, prob) sum((0:size)*prob*(1-prob)**(0:size))

Varianza \(\sigma_{x}^{2}\)

\[ \sigma_{x}^{2}=\sum_{x=0}^{\infty}\left(x-\mu_{x}\right)^{2}{\cdot}{prob}\left(1-{prob}\right)^{x}=\frac{1-{prob}}{{prob}^{2}} \]

varianza.geometrica <- function(size, prob) sum((0:size-esperanza.geometrica(size, prob))**2*prob*(1-prob)**(0:size))

Ejemplo

Si con relación a cierta pandemia que ha azotado la población de un país se sabe por una muestra aleatoria que un viajero ha contraido la enfermedad y que ha tenido contacto con cien personas, y dado que esta enfermedad es muy contagiosa teniendo un contacto cercano se transmite en el 99% de los casos.

\[ P(X=x)={0.99}\left(1-{0.99}\right)^{x}\text{ con }0{\leq}{0.99}{\leq}1\text{ y }x=0,1,\ldots \]

  1. calcue la probabilidad que el viajero haya contagiado a la primera persona que contacto, es decir, no haya tenido que contactar a nadie previamente para transferir el mal al primer ser humano con quien estableció contacto.

\[ P(\text{# contactos previos al primer contagio}=0)={0.99}\left(1-0.99\right)^{0} \]

densidad.geometrica(0, 0.99)
## [1] 0.99
dgeom(x = 0, prob = 0.99)
## [1] 0.99
  1. calcue la probabilidad de que tan solo la segunda persona en tener contacto con este viajero haya sido contagiada del virus, o en otras palabras, se haya dado tan solo un contacto previo del viajero antes de contaminar a alguien.

\[ P(\text{# contactos previos al primer contagio}=1)={0.99}\left(1-0.99\right)^{1} \]

densidad.geometrica(x = 1, prob = 0.99)
## [1] 0.0099
dgeom(x = 1, prob = 0.99)
## [1] 0.0099
  1. calcue la probabilidad de que tan solo la tercera persona en tener contacto con este viajero haya sido contagiada del virus, o en otras palabras, el viajero haya tenido dos contactos previos antes de contaminar a un ser humano.

\[ P(\text{# contactos previos al primer contagio}=2)={0.99}\left(1-0.99\right)^{2} \]

densidad.geometrica(x = 2, prob = 0.99)
## [1] 9.9e-05
dgeom(x = 2, prob = 0.99)
## [1] 9.9e-05
  1. halle la probabilidad de que el viajero no haya contagiado a los 99 primeros seres humanos en tener contacto con él pero si haya contagiado al último, es decir, se hayan dado 99 contactos previos a la contaminación del primer individuo.

\[ P(\text{# contactos previos al primer contagio}=99)={0.99}\left(1-0.99\right)^{99} \]

densidad.geometrica(x = 99, prob = 0.99)
## [1] 9.9e-199
dgeom(x = 99, prob = 0.99)
## [1] 9.9e-199
  1. halle la probabilidad de que el viajero no haya contagiado ninguna de los primeros 100 seres humanos con los que tuvo contacto, es decir, se hayan dado 100 contactos previos y el primer contagiado sea el siguiente individuo en ser contactado.

\[ P(\text{# contactos previos al primer contagio}=99)={0.99}\left(1-0.99\right)^{100} \]

densidad.geometrica(x = 100, prob = 0.99)
## [1] 9.9e-201
dgeom(x = 100, prob = 0.99)
## [1] 9.9e-201
  1. Si usted fuera el Ministro de salud de dicho país, estaría interesado en saber la probabilidad de que un viajero en partícular no contagie a otros con quien tuvo contacto; estudie dicha situación.

\[ P(\text{# contactos previos al primer contagio}>x)=1-P(\text{# contactos previos al primer contagio}{\leq}x) \]

\[ 1-P(\text{# contactos previos al primer contagio}{\leq}x)=1-\sum_{x=0}^{x}P(\text{# contactos previos al primer contagio}=x) \]

\[ 1-\sum_{x=0}^{x}P(\text{# contactos previos al primer contagio}=x)=1-\sum_{x=0}^{x}{0.99}\left(1-{0.99}\right)^{100-x} \]

ensayos <- 100
probabilidad.de.contagio <- 0.99
valores.posibles <- 0:ensayos
fx.geometrica <- dgeom(x = valores.posibles, prob = probabilidad.de.contagio)
fbg = pgeom(q = valores.posibles, prob = probabilidad.de.contagio, lower.tail = TRUE)
fx.geometrica = data.frame(x = valores.posibles, "f(X)" = fx.geometrica, "F(X)" = fbg)
#head(fx.geometrica)
library(ggplot2)
p3 <- ggplot(fx.geometrica, aes(x = x, y = f.X.)) +
  geom_bar(aes(color = x), stat = "identity", fill = "white") + theme(legend.position = "none") + xlab("") + ylab("Densidad f(x)")
library(ggplot2)
p4 <- ggplot(fx.geometrica, aes(x = x, y = F.X.)) +
  geom_bar(aes(color = x), stat = "identity", fill = "white") + theme(legend.position = "none") + xlab("") + ylab("Distribución F(x)")
library(gridExtra)
grid.arrange(p3, p4, nrow = 2, top = "Distribución geométrica")

  1. El número esperado de contactos previos al primer contagio es igual a:
esperanza.geometrica(size = 1000000, prob = 0.99)
## [1] 0.01010101
(1-0.99)/0.99
## [1] 0.01010101
  1. La distancia promedio, elevada al cuadrado, al valor esperado del número de contactos previos al primer contagiado es igual a:
varianza.geometrica(size = 10000000, prob = 0.99)
## [1] 0.01020304
(1-0.99)/0.99**2
## [1] 0.01020304

Distribución de probabilidad binomial negativa \(X{\sim}BN(size,pob)\)

Es cualquiera de las dos distribuciones de probabilidad discretas siguientes:

  1. la distribución de probabilidad del número \(X\) del ensayo de Bernoulli necesaria para obtener r éxitos, contenido en el conjunto \(\left\{ 1, 2, 3,\ldots,\right\}\) o
  2. la distribución de probabilidad del número \(Y = X − 1\) de fallos antes de que se obtengan r éxitos, contenido en el conjunto \(\left\{ 0, 1, 2,\ldots\right\}\).

Función de probabilidades \(f_{X}\)

  1. Aquí la idea es contar el número de ensayos para obtener size éxitos con probabilidad prob

\[ P(X=x)=\binom{x-1}{size-1}{prob}^{size}\left(1-{prob}\right)^{x-size}\text{ con }0{\leq}{prob}{\leq}1\text{ y }x=\mathcal{size},\mathcal{size+1},\ldots \]

o

\[ P(X=x)=\binom{x-1}{x-size}{prob}^{size}\left(1-{prob}\right)^{x-size}\text{ con }0{\leq}{prob}{\leq}1\text{ y }x=\mathcal{size},\mathcal{size+1},\ldots \]

  1. Aquí cuento el número de fracasos para obtener el size-ésimo éxito con probabilidad prob

\[ P(X=x)=\binom{x+size-1}{size-1}{prob}^{size}\left(1-{prob}\right)^{x}\text{ con }0{\leq}{prob}{\leq}1\text{ y }x=0,1,\ldots \]

o

\[ P(X=x)=\binom{x+size-1}{x}{prob}^{size}\left(1-{prob}\right)^{x}\text{ con }0{\leq}{prob}{\leq}1\text{ y }x=0,1,\ldots \]

densidad.binomialnegativa <- function(x, size, prob) choose(x+size-1,x)*prob**size*(1-prob)**x

Esperanza \(\mu_{x}\)

\[ \mu_{x}=\sum_{x=0}^{\infty}x{\cdot}\binom{x+size-1}{x}{prob}^{size}\left(1-{prob}\right)^{x}=size\cdot\frac{1-prob}{prob} \]

esperanza.binomialnegativa <- function(size, prob) sum((0:size)*choose((0:size)+size-1,(0:size))*prob**size*(1-prob)**(0:size))

Varianza \(\sigma_{x}^{2}\)

\[ \sigma_{x}^{2}=\sum_{x=0}^{\infty}\left(x-\mu_{x}\right)^{2}{\cdot}{prob}\left(1-{prob}\right)^{x}=size\cdot\frac{1-{prob}}{{prob}^{2}} \]

varianza.binomialnegativa <- function(size, prob) sum((0:size-esperanza.binomialnegativa(size, prob))**2*choose((0:size)+size-1,(0:size))*prob**size*(1-prob)**(0:size))

Ejemplo

Si con relación a cierta pandemia que ha azotado la población de un país, se sabe por una muestra aleatoria que un viajero ha contraido la enfermedad y que ha contactado a cien personas. Dado que esta enfermedad es muy contagiosa, pues, teniendo un contacto cercano se transmite en el 99% de los casos. Si se sabe que este viajero ha contagiado a 25 personas.

\[ P(X=x)=\binom{x+25-1}{x}{0.99}^{25}\left(1-{0.99}\right)^{x}\text{ con }0{\leq}{0.99}{\leq}1\text{ y }x=0,1,\ldots \]

  1. calcue la probabilidad que el viajero al contactar al vigésimo quinto ser humano haya contagiado a veintícinco personas, es decir, haya contactado y contagiado a cero personas al transferir el mal a veinticínco seres humanos con quien estableció contacto.

\[ P(\text{# no contagiados hasta que se dan veintinco contagios}=0)=\binom{0+25-1}{0}{0.99}^{25}\left(1-{0.99}\right)^{0} \]

densidad.binomialnegativa(x = 0, size = 25, prob = 0.99)
## [1] 0.7778214
dnbinom(x = 0, size = 25, prob = 0.99)
## [1] 0.7778214
  1. calcue la probabilidad que el viajero al contactar al quincuagésimo ser humano haya contagiado a veintícinco personas cualquiera sea la configuración de las personas que han sido contagiadas, es decir, que halla contactado y no contagiado a veinticinco personas al contagiar al mismo número de personas.

\[ P(\text{# no contagiados hasta que se dan veintinco contagios}=25)=\binom{25+25-1}{25}{0.99}^{25}\left(1-{0.99}\right)^{25} \]

densidad.binomialnegativa(x = 25, size = 25, prob = 0.99)
## [1] 4.916243e-37
dnbinom(x = 25, size = 25, prob = 0.99)
## [1] 4.916243e-37
  1. calcue la probabilidad de que el viajero haya tenido cincuenta contactos no contagiados al contagiar a veintícinco personas, o en otras palabras, la persona número setenta y cinco en ser contactada por el viajero haya sido la número veinticínco en ser contagiada.

\[ P(\text{# no contagiados hasta que se dan veintinco contagios}=50)=\binom{50+25-1}{50}{0.99}^{25}\left(1-{0.99}\right)^{50} \]

densidad.binomialnegativa(x = 50, size = 25, prob = 0.99)
## [1] 1.363483e-81
dnbinom(x = 50, size = 25, prob = 0.99)
## [1] 1.363483e-81
  1. halle la probabilidad de que el viajero haya tenido setenta y cinco contactos no contagiados al contagiar a veintícinco personas, o en otras palabras, la persona número cien en ser contactada por el viajero haya sido la número veinticínco en ser contagiada.

\[ P(\text{# no contagiados hasta que se dan veintinco contagios}=75)=\binom{75+25-1}{75}{0.99}^{25}\left(1-{0.99}\right)^{75} \]

densidad.binomialnegativa(x = 75, size = 25, prob = 0.99)
## [1] 4.715917e-128
dnbinom(x = 75, size = 25, prob = 0.99)
## [1] 4.715917e-128
  1. halle la probabilidad de que el viajero haya tenido cien contactos no contagiados al contagiar a veintícinco personas, o en otras palabras, la persona número ciento veinticinco en ser contactada por el viajero haya sido la número veinticínco en ser contagiada.

\[ P(\text{# no contagiados hasta que se dan veintinco contagios}=100)=\binom{100+25-1}{100}{0.99}^{25}\left(1-{0.99}\right)^{100} \]

densidad.binomialnegativa(x = 100, size = 25, prob = 0.99)
## [1] 2.023189e-175
dnbinom(x = 100, size = 25, prob = 0.99)
## [1] 2.023189e-175
  1. Si usted fuera el Ministro de salud de dicho país, estaría interesado en saber la probabilidad de que un viajero en partícular no contagie a otros con quien tuvo contacto; estudie dicha situación.

\[ P(\text{# contactos previos al primer contagio}>x)=1-P(\text{# contactos previos al primer contagio}{\leq}x) \]

\[ 1-P(\text{# no contagiados hasta que se dan veintinco contagios}{\leq}x)=1-\sum_{x=0}^{x}P(\text{# no contagiados hasta que se dan veintinco contagios}=x) \]

\[ 1-\sum_{x=0}^{x}P(\text{# no contagiados hasta que se dan veintinco contagios}=x)=1-\sum_{x=0}^{x}\binom{x+25-1}{x}{0.99}^{25}\left(1-{0.99}\right)^{x} \]

ensayos <- 100
probabilidad.de.contagio <- 0.99
valores.posibles <- 0:ensayos
fx.binomialnegativa <- dnbinom(x = valores.posibles, size = 25, prob = 0.99)
fbg = pnbinom(q = valores.posibles, size = 25, prob = 0.99, lower.tail = TRUE)
fx.binomialnegativa = data.frame(x = valores.posibles, "f(X)" = fx.binomialnegativa, "F(X)" = fbg)
#head(fx.binomialnegativa)
library(ggplot2)
p3 <- ggplot(fx.binomialnegativa, aes(x = x, y = f.X.)) +
  geom_bar(aes(color = x), stat = "identity", fill = "white") + theme(legend.position = "none") + xlab("") + ylab("Densidad f(x)")
library(ggplot2)
p4 <- ggplot(fx.binomialnegativa, aes(x = x, y = F.X.)) +
  geom_bar(aes(color = x), stat = "identity", fill = "white") + theme(legend.position = "none") + xlab("") + ylab("Distribución F(x)")
library(gridExtra)
grid.arrange(p3, p4, nrow = 2, top = "Distribución binomial negativa")

  1. El número esperado de contactos no contagiados al haber contagiado a veinticinco personas es:
esperanza.binomialnegativa(size = 25, prob = 0.99)
## [1] 0.2525253
25*(1-0.99)/0.99
## [1] 0.2525253
  1. La distancia promedio, elevada al cuadrado, al valor esperado del número de contactos no contagiados al haber contagiado a veinticinco seres humanos es igual a:
varianza.binomialnegativa(size = 25, prob = 0.99)
## [1] 0.255076
25*(1-0.99)/0.99**2
## [1] 0.255076

Distribución de probabilidad hipergeométrica \(X{\sim}H(m,m+n)\)

Especialmente útil en todos aquellos casos en los que se extraigan muestras en donde se extraen secuencialmente elementos sin devolución del elemento extraído o, en otras palabras, sin retornar a la situación experimental inicial como es el caso de la binomial.

Función de probabilidades \(f_{X}\)

\[ P(X=x)=\frac{\binom{m}{x}\binom{n}{k-x}}{\binom{m+n}{k}}\text{ con }{0}{\leq}k{\leq}{n+m}\text{ y }\max{\left\{{0},{k}-{n}\right\}}{\leq}x{\leq}\min{\left\{{k},{m}\right\}} \]

densidad.hipergeometrica <- function(x, m, n, k) choose(m,x)*choose(n,k-x)/choose(m+n,k)

Esperanza \(\mu_{x}\)

\[ \mu_{x}=\sum_{x=0}^{\infty}x{\cdot}\frac{\binom{m}{x}\binom{n}{k-x}}{\binom{m+n}{k}}=k{\cdot}\frac{m}{m+n} \]

esperanza.hipergeometrica <- function(m, n, k) sum((0:k)*choose(m,(0:k))*choose(n,k-(0:k))/choose(m+n,k))

Varianza \(\sigma_{x}^{2}\)

\[ \sigma_{x}^{2}=\sum_{x=0}^{\infty}\left(x-\mu_{x}\right)^{2}{\cdot}\frac{\binom{m}{x}\binom{n}{k-x}}{\binom{m+n}{k}}=\frac{m+n-k}{m+n-1}{\cdot}k{\cdot}\frac{m}{m+n}\left(1-\frac{m}{m+n}\right) \]

varianza.hipergeometrica <- function(m, n, k) sum((0:k-esperanza.hipergeometrica(m, n, k))**2*choose(m,(0:k))*choose(n,k-(0:k))/choose(m+n,k))

Ejemplo

Una clínica ha adquirido quinientas pruebas rápidas para COVID-19, se seleccionan aleatoriamente ochenta de ellas y se someten a una prueba para encontrar posibles defectos. Si el fabricante en la anterior ocasion envío dieciséis de otras 500 pruebas defectuosas probadas la anterior ocasión.

  1. ¿Cuál es la probabilidad de que la muestra contenga a lo más cinco pruebas defectuosas?

\[ P\left(\text{# de pruebas defectuosas}{\leq}5\right) = P\left(\text{# de pruebas defectuosas}=0\right) + \cdots + P\left(\text{# de pruebas defectuosas}=5\right) \]

sum(densidad.hipergeometrica(x=0:5, m = 16, n = 500 - 16, k = 80))
## [1] 0.9707682
sum(dhyper(x=0:5, m = 16, n = 500 - 16, k = 80))
## [1] 0.9707682

\[ P\left(\text{# de pruebas defectuosas}{\leq}5\right)=\sum_{x=0}^{5}{P\left(\text{# de pruebas defectuosas}=x\right)} \]

phyper(q = 5, m = 16, n = 500 - 16, k = 80, lower.tail = TRUE)
## [1] 0.9707682
  1. ¿Cuál es la probabilidad de que la muestra contenga mas de cinco pruebas defectuosos?

\[ P\left(\text{# de pruebas defectuosas}>5\right) = \sum_{x=6}^{80}{P\left(\text{# de pruebas defectuosas}{\leq}x\right)} \]

sum(densidad.hipergeometrica(x=6:16, m = 16, n = 500 - 16, k = 80))
## [1] 0.02923178
sum(dhyper(x=6:16, m = 16, n = 500 - 16, k = 80))
## [1] 0.02923178
phyper(q = 5, m = 16, n = 500 - 16, k = 80, lower.tail = FALSE)
## [1] 0.02923178

La distribución de probabilidades del número de pruebas defectuosas sería:

extracciones <- 80
pruebas.malas <- 16
pruebas.buenas <- 500 - 16
valores.posibles <- max(0, extracciones - pruebas.buenas): min(extracciones, pruebas.malas)
fx.hipergeometrica <- dhyper(x = valores.posibles, m = pruebas.malas, n = pruebas.buenas, k = extracciones)
fbh = phyper(q = valores.posibles, m = pruebas.malas, n = pruebas.buenas, k = extracciones, lower.tail = TRUE)
fx.hipergeometrica = data.frame(x = valores.posibles, "f(X)" = fx.hipergeometrica, "F(X)" = fbh)
#tail(fx.hipergeometrica)
library(ggplot2)
p5 <- ggplot(fx.hipergeometrica, aes(x = x, y = f.X.)) +
  geom_bar(aes(color = x), stat = "identity", fill = "white") + theme(legend.position = "none") + xlab("") + ylab("Densidad f(x)")
library(ggplot2)
p6 <- ggplot(fx.hipergeometrica, aes(x = x, y = F.X.)) +
  geom_bar(aes(color = x), stat = "identity", fill = "white") + theme(legend.position = "none") + xlab("") + ylab("Distribución F(x)")
library(gridExtra)
grid.arrange(p5, p6, nrow = 2, top = "Distribución hipergeométrica")

  1. El número esperado de pruebas de mala calidad es igual a:
esperanza.hipergeometrica(m = 16,n = 500-16, k = 80)
## [1] 2.56
80*16/(16+500-16)
## [1] 2.56
  1. La distancia promedio al valor esperado, elevada al cuadrado, del número de pruebas de mala calidad es igual a:
varianza.hipergeometrica(m = 16,n = 500-16, k = 80)
## [1] 2.085759
(16+500-16-80)/(16+500-16-1)*80*16/(16+500-16)*(1-16/(16+500-16))
## [1] 2.085759

Distribución de probabilidad poisson \(X{\sim}P(\lambda)\)

Es una distribucion discreta al igual que la distribucion binomial, y solo tiene un solo parametro de la media que se le denomina (lambda o \(\lambda\)).

Función de probabilidades \(f_{X}\)

\[ P(X=x)=\frac{e^{-lambda}lambda^{x}}{x!}\text{ con }lambda{=}\mu_{x}{=}\sigma_{x}^{2}\text{ y }x=0,1,2,\ldots \]

densidad.poisson <- function(x, lambda) exp(-lambda)*lambda**x/factorial(x)

Esperanza \(\mu_{x}\)

\[ \mu_{x}=\sum_{x=0}^{\infty}x{\cdot}\frac{e^{-lambda}lambda^{x}}{x!}=lambda \]

esperanza.poisson <- function(size, lambda) sum((0:size)*exp(-lambda)*lambda**(0:size)/factorial(0:size))

Varianza \(\sigma_{x}^{2}\)

\[ \sigma_{x}^{2}=\sum_{x=0}^{\infty}\left(x-\mu_{x}\right)^{2}{\cdot}\frac{e^{-lambda}lambda^{x}}{x!}=lambda \]

varianza.poisson <- function(size, lambda) sum((0:size-esperanza.poisson(size, lambda))**2*exp(-lambda)*lambda**(0:size)/factorial(0:size))

Ejemplo

La tasa o índice de letalidad se refiere al cociente de fallecimientos en relación a las peronas que se han contagiado de COVID-19 y cuyo resultado suele mostrase en porcentaje. Si en cierto país la tasa de letalidad para el primer més de aislamiento ha sido de 1830 muertes entre 36210, es decir, una tasa de letalidad de \(1830/36210\); lo cual es aproximadamente el 5% o, en terminos diarios, 61 muertos por cada 1207 enfermos. Con base en lo anteriormente expuesto calcule:

  1. la probabilidad de que haya más de un sesenta y un muertes diarias entre las personas contagiadas.

\[ P\left(\text{# de muertos}>61\right)=1-P\left(\text{# de muertos}{\leq}61\right) \]

\[ 1-P\left(\text{# de muertos}{\leq}61\right)=1-\sum_{x = 0}^{61}{P\left(\text{# de muertos}=x\right)} \]

\[ 1-\sum_{x = 0}^{61}{P\left(\text{# de muertos}=x\right)}=1-\sum_{x = 0}^{61}\frac{e^{-61}61^{x}}{x!} \]

1 - sum(densidad.poisson(x = 0:61, lambda = 61))
## [1] 0.4660183
1 - sum(dpois(x = 0:61, lambda = 61))
## [1] 0.4660183

\[ P\left(\text{# de infectados}>61\right)=\sum_{x = 62}^{\infty}{P\left(\text{# de infectados}=x\right)} \]

ppois(q = 61, lambda = 61, lower.tail = FALSE)
## [1] 0.4660183
  1. ¿cuál sería en dicha ciudad el número esperado de enfermos que morirán diariamente de mantenerse la medida de aislamiento?
esperanza.poisson(size=120, lambda = 61)
## [1] 61
61
## [1] 61

En otas palabras, aproximadamente 61 por cada mil doscientos siete habitantes

  1. Mediante la función de R
personas.enfermas <- 32610
muertes.esperadas <- 1820
valores.posibles <- 0:personas.enfermas
fx <- function(x) x*dpois(x = x, lambda = muertes.esperadas)
Ex <- sum(fx(valores.posibles))
Ex
## [1] 1820
  1. Mediante simulación
muertos.simulados <- as.data.frame(rpois(n = 3261, lambda = 182))
mean(muertos.simulados$`rpois(n = 3261, lambda = 182)`)
## [1] 182.3201
  1. Estudie la probabilidad de que dado un número determinado de enfermos, el actual, muera un número significativo de estos el siguiente mes si las condiciones se mantienen como hasta ahora.
personas.enfermas <- 32610
muertes.esperadas <- 1820
valores.posibles <- 0:personas.enfermas
fx.poisson <- dpois(x = valores.posibles, lambda = muertes.esperadas)
fbp = ppois(q = valores.posibles, lambda = muertes.esperadas, lower.tail = TRUE)
fx.poisson = data.frame(x = valores.posibles, "f(X)" = fx.poisson, "F(X)" = fbp)
#head(fx.poisson)
library(ggplot2)
p7 <- ggplot(fx.poisson, aes(x = x, y = f.X.)) +
  geom_bar(aes(color = x), stat = "identity", fill = "white") + theme(legend.position = "none") + xlab("") + ylab("Densidad f(x)")
library(ggplot2)
p8 <- ggplot(fx.poisson, aes(x = x, y = F.X.)) +
  geom_bar(aes(color = x), stat = "identity", fill = "white") + theme(legend.position = "none") + xlab("") + ylab("Distribución F(x)")
library(gridExtra)
grid.arrange(p7, p8, nrow = 2, top = "Distribución poisson")