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 continuas

Se les denomina continuas, debido a que sus eventos siempre asumen valores intermedios entre dos numeros cualesquiera que puedan darse.

Simulación de distribuciones de probabilidad

Método de la transformación inversa

El método de la transformada inversa se utiliza para simular variables aleatorias continuas, mediante la función de distribución acumulada y la generación de números aleatorios con distribución uniforme en el intervalo (0,1).

Método de convolución

En algunas distribuciones de probabilidad la variable aleatoria a simular puede generarse mediante la suma de otras variables aleatorias, de manera tal que es más rápida la simulación que utilizando otros métodos; y puede expresarse como:

\[{Y} = {X}_{1} + {X}_{1} + \cdots + {X}_{n}\]

Método de transformación directa.

Este método se utiliza para generar variables aleatorias con distribución normal.

Metodo de composición.

A partir de este método se pueden generar variables aleatorias cuando la función de densidad se expresa como una combinación de \(m\) distribuciones, es decir, se encuentra definida por partes; aquí la función de densidad se puede expresar como:

\[ {f}\left({x}\right) = {\sum}_{i=1}^{n}{f}_{i}\left({x}\right){I}_{A}\left({x}\right) \]

Con

\[ {I}_{A}\left({x}\right) = \begin{cases} 1 & \text{if } x \in A\\ 0 & \text{if } x \notin A \end{cases} \]

Bootstrap paramétrico

El método bootstrap puede ser usado tanto para el cálculo de errores estándar como de intervalos de confianza en un modelo paramétrico.

  • En bootstrap no paramétrico son obtenidas muestras \({X}_{1}^{*},{X}_{2}^{*},\ldots,{X}_{n}^{*}\) de la distribución empírica \({P}_{n}\).
  • En bootstrap paramétrico las muestras se obtienen de \({P}(X,\widehat{\theta})\) donde \(\widehat{\theta}\) es una estimación de \({\theta}\).

La diferencia entre la versión no paramétrica y la paramétrica radida en cómo se contruye la distribución de la que van a ser seleccionadas las muestras.

Distribución de probabilidad normal \(X{\sim}N(\mu,\sigma^2)\)

También llamada distribución de Gauss, distribución gaussiana o distribución de Laplace-Gauss, corresponde una de las distribuciones de probabilidad de variable continua que con más frecuencia aparece en estadística y en la teoría de probabilidades.

La gráfica de su función de densidad tiene una forma acampanada y es simétrica respecto a sus parámetros media, mediana y moda, que resultan siendo el mismo valor. Esta curva se conoce como campana de Gauss.

Su importancia radica en que permite modelar numerosos fenómenos naturales, sociales y psicológicos; también es importante por su relación con la estimación por mínimos cuadrados, uno de los métodos de estimación más simples y antiguos de una regresión lineal.

Algunos ejemplos de variables asociadas a fenómenos naturales que siguen el modelo de la normal son las siguientes:

  1. caracteres morfológicos de individuos como la estatura;

  2. caracteres fisiológicos como el efecto de un fármaco;

  3. caracteres sociológicos como el consumo de cierto producto por un mismo grupo de individuos;

  4. caracteres psicológicos como el cociente intelectual;

  5. nivel de ruido en telecomunicaciones;

  6. errores cometidos al medir ciertas magnitudes

De igual forma aparece en muchas áreas de la propia estadística; entre ellas: la distribución muestral de las medias muestrales \(\bar{x}_{size}\) es aproximadamente normal aún cuando la distribución de la población de la cual se extrae la muestra no lo sea.

La distribución normal es la más extendida en estadística y muchos tests o pruebas estadísticas se basados en la normalidad de los datos bajo estudio o análisis y que puede ser más o menos justificada.

Nota

En probabilidad, la distribución normal aparece como el límite de varias distribuciones de probabilidad continuas y discretas.

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

\[ P(X=x)=\frac{1}{{sd}\sqrt{2\pi}}e^{-\frac{1}{2}\left(\frac{x-{mean}}{{sd}}\right)^{2}}\text{ con }-\infty{\leq}x{\leq}\infty \]

args(dnorm)
## function (x, mean = 0, sd = 1, log = FALSE) 
## NULL

Esperanza \(\mu_{x}\)

\[ \mu_{x}=\int_{-\infty}^{\infty}x{\cdot}\frac{1}{{sd}\sqrt{2\pi}}e^{-\frac{1}{2}\left(\frac{x-{mean}}{{sd}}\right)^{2}}dx={mean} \]

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

\[ \sigma_{x}^{2}=\int_{x=-\infty}^{\infty}\left(x-{mean}\right)^{2}{\cdot}\frac{1}{{sd}\sqrt{2\pi}}e^{-\frac{1}{2}\left(\frac{x-{mean}}{{sd}}\right)^{2}}dx={sd}^{2} \]

Ejemplo

library(ggfortify)
## Loading required package: ggplot2
densidad.normal <- function(mean, sd, colour = NULL, p = NULL) ggdistribution(dnorm, seq(mean-3*sd, mean+3*sd, 0.1), mean = mean, sd = sd, colour = colour, p = p)
densidad.normal(mean = 0, sd = 1, colour = "black", p = densidad.normal(mean = 0, sd = 0.5, colour = "blue", p = densidad.normal(mean = 2, sd = 1, colour = "green", p = densidad.normal(mean = 0, sd = 2, colour = "red"))))

library(ggfortify)
distribucion.normal <- function(mean, sd, colour = NULL, p = NULL)  ggdistribution(pnorm, seq(mean-3*sd, mean+3*sd, 0.1), mean = mean, sd = sd, colour = colour, p = p)

\[ P(X{\leq}x)=\int_{-\infty}^{x}\frac{1}{{sd}\sqrt{2\pi}}e^{-\frac{1}{2}\left(\frac{x-{mean}}{{sd}}\right)^{2}}dx\text{ con }-\infty{\leq}x{\leq}\infty \]

distribucion.normal(mean = 0, sd = 1, colour = "black", p = distribucion.normal(mean = 0, sd = 0.5, colour = "blue", p = distribucion.normal(mean = 2, sd = 1, colour = "green", p = distribucion.normal(mean = 0, sd = 2, colour = "red"))))

Estandarización de una distribución normal \(X{\sim}N(mean,sd^2)\)

\[ \text{Si }{x}\sim{N(mean,sd^2)}\text{ entonces }z=\frac{x-mean}{sd}\sim{N(0,1^2)} \]

Ejemplos

  1. Estandarización de una variable aleatoria con media igual a 0 y desviación estándar igual a 0.5

\[ \text{Si }{azul}\sim{N(0,0.5^2)}\text{ entonces }z=\frac{azul-0}{0.5}\sim{N(0,1^2)} \]

azul <- rnorm(n = 10000000, mean = 0, sd = 0.5)
cat("la media de la variable aleatoria azul es: ", round(mean(azul),1)," y ","la desviación estándar de la variable aleatoria azul es: ", round(sd(azul),1))
## la media de la variable aleatoria azul es:  0  y  la desviación estándar de la variable aleatoria azul es:  0.5
z <- (azul - round(mean(azul),1))/round(sd(azul),1)
cat("la media de la variable aleatoria z es: ", round(mean(z),1)," y ","la desviación estándar la variable aleatoria z es: ", round(sd(z),1))
## la media de la variable aleatoria z es:  0  y  la desviación estándar la variable aleatoria z es:  1
  1. Estandarización de una variable aleatoria con media igual a 2 y desviación estándar igual a 1

\[ \text{Si }{verde}\sim{N(2,1^2)}\text{ entonces }z=\frac{verde-2}{1}\sim{N(0,1^2)} \]

verde <- rnorm(n = 10000000, mean = 2, sd = 1)
cat("la media la variable aleatoria verde es: ", round(mean(verde),1)," y ","la desviación estándar la variable aleatoria verde es: ", round(sd(verde),1))
## la media la variable aleatoria verde es:  2  y  la desviación estándar la variable aleatoria verde es:  1
z <- (verde - round(mean(verde),1))/round(sd(verde),1)
cat("la media de la variable aleatoria z es: ", round(mean(z),1)," y ","la desviación estándar de la variable aleatoria z es: ", round(sd(z),1))
## la media de la variable aleatoria z es:  0  y  la desviación estándar de la variable aleatoria z es:  1
  1. Estandarización de una variable aleatoria con media igual a 0 y desviación estándar igual a 2

\[\text{Si }{rojo}\sim{N(0,2^2)}\text{ entonces }z=\frac{rojo-0}{2}\sim{N(0,1^2)}\]

rojo <- rnorm(n = 10000000, mean = 0, sd = 2)
cat("la media de la variable aleatoria verde es: ", round(mean(rojo),1)," y ","la desviación estándar de la variable aleatoria verde es: ", round(sd(rojo),1))
## la media de la variable aleatoria verde es:  0  y  la desviación estándar de la variable aleatoria verde es:  2
z <- (rojo - round(mean(rojo),1))/round(sd(rojo),1)
cat("la media de la variable aleatoria z es: ", round(mean(z),1)," y ","la desviación estándar de la variable aleatoria z es: ", round(sd(z),1))
## la media de la variable aleatoria z es:  0  y  la desviación estándar de la variable aleatoria z es:  1
  1. Estandarización de una variable aleatoria con media igual a 176 y desviación estándar igual a 15, que puede ser la distribución de las estaturas de los individuos en una población cuyo promedio de estaturas sea igual 176 centímetros y en promedio se alejen de este valor en 15 centimetros. Se toma una muestra de diez mil individuos para ilustrar.

\[ P(\text{ESTATURA}=estatura)=\frac{1}{{15}\sqrt{2\pi}}e^{-\frac{1}{2}\left(\frac{estatura-{176}}{{15}}\right)^{2}}\text{ con }-\infty{\leq}x{\leq}\infty \]

estaturas <- rnorm(n = 10000, mean = 176, sd = 7)
cat("la media de las estaturas es: ", round(mean(estaturas),1)," y ","la desviación estándar de las estaturas es: ", round(sd(estaturas),1))
## la media de las estaturas es:  176.1  y  la desviación estándar de las estaturas es:  6.9
library(ggplot2)
qplot(estaturas, geom = "histogram", bins = 30, main="Histograma de las estaturas", xlab="Estaturas", fill=I("blue"))
## Warning: `qplot()` was deprecated in ggplot2 3.4.0.

z <- (estaturas - mean(estaturas))/sd(estaturas)
cat("la media de z es: ", round(mean(z),1)," y ","la desviación estándar de z es: ", round(sd(z),1))
## la media de z es:  0  y  la desviación estándar de z es:  1
library(ggplot2)
qplot(z, geom = "histogram", bins = 30, main="Histograma de las estaturas estandarizadas", xlab="Estaturas estandarizadas", fill=I("blue"))

Estandarización de la media muestral para cualquier distribución \(X{\sim}Dens(\cdot)\)

\[\text{Si }{x}\sim{P(\cdot)}\text{ entonces }Z=\frac{\bar{x}_{size}-{mean}}{\frac{sd}{\sqrt{size}}}\stackrel{zise{\rightarrow}\infty}{\sim}{N(0,1)}\]

Ejemplo

Salarios de mil personas y muestras de tamaño cuarenta, con personas en estrato 1 y 2.

\[ \text{Si }{ingresos}\sim{Exp(rate)}\text{ entonces }\overline{ingresos}_{zise}\stackrel{zise{\rightarrow}\infty}{\sim}{N(\frac{1}{rate},\frac{1}{{rate^2}\cdot{zise}})} \]

\[ \text{Si }{ingresos}\sim{Exp(rate)}\text{ entonces }Z=\frac{\overline{ingresos}_{zise}-{\frac{1}{rate}}}{\frac{1}{{rate}\sqrt{zise}}}\stackrel{zise{\rightarrow}\infty}{\sim}{N(0,1)} \]

\(zise=40\)

rate <- 1/877803
size <- 40
average <- NULL
for(i in 1:1000)
    average <- c(average, mean(rexp(n = size, rate = rate)))
library(ggplot2)
qplot(rexp(n = 1000, rate = rate), geom = "density")

theo_mean <- 1/rate
cat("Media teorica de los ingresos en la población ", theo_mean)
## Media teorica de los ingresos en la población  877803
sample_mean <- mean(average)
cat("Media muestral de los mil datos simulados", sample_mean)
## Media muestral de los mil datos simulados 883166.7
thvar <- (rate * sqrt(size)) ^ -2
cat("Varianza teorica de los ingresos en la población ", thvar)
## Varianza teorica de los ingresos en la población  19263452670
samvar <- var(average)
cat("Varianza muestral de los mil datos simulados", samvar)
## Varianza muestral de los mil datos simulados 18565079648
library(ggplot2)
dfRowMeans<-data.frame(average)
mp<-ggplot(dfRowMeans,aes(x=average))
mp<-mp+geom_histogram(fill="blue",color="black",aes(y = ..density..))
mp<-mp + labs(title="Densidad para los 40 números de la distribución exponencial", x="Promedios para los 40 números", y="Densidad")
mp<-mp + geom_vline(xintercept=sample_mean,size=1.0, color="black")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
mp<-mp + stat_function(fun=dnorm,args=list(mean=sample_mean, sd=sqrt(samvar)),color = "yellow", size = 1.0)
mp<-mp + geom_vline(xintercept=theo_mean,size=1.0,color="orange",linetype = "longdash")
mp<-mp + stat_function(fun=dnorm,args=list(mean=theo_mean, sd=sqrt(thvar)),color = "red", size = 1.0)
mp
## Warning: The dot-dot notation (`..density..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(density)` instead.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Ejemplos y ejercicios

Para una distribución normal con media mean y desviación estándar sd calcular, en cada caso, la probabilidad \(P(X=a)\) y \(P(X<a)=P(X{\leq}a)\) solicitada en cada caso

\[ P(X=x)=\frac{1}{{sd}\sqrt{2\pi}}e^{-\frac{1}{2}\left(\frac{x-{mean}}{{sd}}\right)^{2}}\text{ con }-\infty{\leq}x{\leq}\infty \]

  1. \(P(X=a)\) con mean = 0, sd = 1 y a = 0

\[ P(X=0)=\frac{1}{{1}\sqrt{2\pi}}e^{-\frac{1}{2}\left(\frac{0-{0}}{{1}}\right)^{2}}\text{ con }-\infty{\leq}x{\leq}\infty \]

1/sqrt(2*pi)
## [1] 0.3989423
a <- 0
library(ggfortify)
ggdistribution(dnorm, seq(0-3*1, 0+3*1, 0.1), mean = 0, sd = 1, colour = "blue", p = ggdistribution(dnorm, seq(a-0.05, a+0.05, 0.1), mean = 0, sd = 1, colour = "blue", fill = "blue"))

dnorm(x = a, mean = 0, sd = 1)
## [1] 0.3989423

\[ P(X=0)=\frac{1}{{1}\sqrt{2\pi}}e^{-\frac{1}{2}\left(\frac{0-{0}}{{1}}\right)^{2}}{\approx}P(X{\leq}0+0.5)-P(X{\leq}0-0.5) \]

\[ P(X{\leq}0+0.5)-P(X{\leq}0-0.5)=\int_{-\infty}^{0+0.5}\frac{1}{{1}\sqrt{2\pi}}e^{-\frac{1}{2}\left(\frac{x-{0}}{{1}}\right)^{2}}dx-\int_{-\infty}^{0-0.5}\frac{1}{{1}\sqrt{2\pi}}e^{-\frac{1}{2}\left(\frac{x-{0}}{{1}}\right)^{2}}dx \]

densidad.normal.aproximada <- function(epsilon) pnorm(q = a + epsilon, mean = 0, sd = 1, lower.tail = TRUE) - pnorm(q = a - epsilon, mean = 0, sd = 1, lower.tail = TRUE)
densidad.normal.aproximada(0.5)
## [1] 0.3829249
  1. \(P(X{\leq}a)\) con mean = 0, sd = 1 y a = 0
a <- 0
library(ggfortify)
ggdistribution(dnorm, seq(0-3*1, 0+3*1, 0.1), mean = 0, sd = 1, colour = "blue", p = ggdistribution(dnorm, seq(0-3*1, a, 0.1), mean = 0, sd = 1, colour = "blue", fill = "blue"))

pnorm(q = a, mean = 0, sd = 1, lower.tail = TRUE)
## [1] 0.5
library(ggfortify)
ggdistribution(pnorm, seq(0-3*1, 0+3*1, 0.1), mean = 0, sd = 1, colour = "blue", p = ggdistribution(pnorm, seq(a-0.05, a+0.05, 0.1), mean = 0, sd = 1, colour = "blue", fill = "blue"))

  1. \(P(a{\leq}X{\leq}b)\) con mean = 0, sd = 1, a = 0 y b = 2
a <- 0
b <- 2
library(ggfortify)
ggdistribution(dnorm, seq(0-3*1, 0+3*1, 0.1), mean = 0, sd = 1, colour = "blue", p = ggdistribution(dnorm, seq(a, b, 0.1), mean = 0, sd = 1, colour = "blue", fill = "blue"))

pnorm(q = b, mean = 0, sd = 1, lower.tail = TRUE) - 0.5
## [1] 0.4772499
pnorm(q = b, mean = 0, sd = 1, lower.tail = TRUE) - pnorm(q = a, mean = 0, sd = 1, lower.tail = TRUE)
## [1] 0.4772499
library(ggfortify)
ggdistribution(pnorm, seq(0-3*1, 0+3*1, 0.1), mean = 0, sd = 1, colour = "blue", p = ggdistribution(pnorm, seq(b-0.05, b+0.05, 0.1), mean = 0, sd = 1, colour = "blue", fill = "blue", p = ggdistribution(pnorm, seq(a-0.05, a+0.05, 0.1), mean = 0, sd = 1, colour = "blue", fill = "blue")))

  1. mean = -1.29, sd = 1.09 y a = 1.05

  2. mean = -2.14, sd = 1.38 y a = -0.35

  3. mean = 2.54, sd = 0.16 y a = 0.06

  4. mean = -1.68, sd = 0.75 y a = -2

Método de convolución

La variable aleatoria normal \(Y\) con media \({\mu}_{Y}\) y varianza \({\sigma}_{Y}^{2}\) se puede generar utilizando lo siguiente:

\[ {Y} = {\sum}_{i=1}^{k}{X}_{i}{\sim}{N}\left({k}{\mu}_{X},{k}{\sigma}_{X}^{2}\right) \]

En donde

\[ {X}_{i}\stackrel{iid}{\sim}{N}\left({\mu}_{X},{\sigma}_{X}^{2}\right) \]

Al reemplazar la variable aleatoria \(X\) por números generados de manera pseudoaleatora

\[ {Y} = {\sum}_{i=1}^{k}{U}_{i}{\sim}{N}\left({k}{\mu}_{X},{k}{\sigma}_{X}^{2}\right) \]

Ejemplos
  • Simular una variable aleatoria normal con media igual a 3 y varianza igual a 0.5.

\[ {Y} = {\sum}_{i=1}^{6}{U}_{i}{\sim}{N}\left({6}\frac{1-0}{2},{6}\frac{(1-0)^2}{12}\right) \]

U1=runif(100000,0,1)
U2=runif(100000,0,1)
U3=runif(100000,0,1)
U4=runif(100000,0,1)
U5=runif(100000,0,1)
U6=runif(100000,0,1)
Y=as.data.frame(U1+U2+U3+U4+U5+U6)
library(ggplot2)
ggplot(data = Y) +
  geom_histogram(mapping = aes(x = U1 + U2 + U3 + U4 + U5 + U6, y=..density..), fill = "blue", bins = sqrt(nrow(Y))) +
  geom_density(aes(x = U1 + U2 + U3 + U4 + U5 + U6, y=..density..), color="orange", linetype="dashed", lwd = 2)

  • Generar la distribución normal estándar, haciendo

\[ {Z} = {\sum}_{i=1}^{12}{U}_{i}-{6}{\sim}{N}\left(0,1\right) \]

En donde

\[ \frac{{X}_{i}- {\mu}_{Z}}{{\sigma}_{Z}^{2}} = {\sum}_{i=1}^{12}{U}_{i}-{6} \]

Con

\[ {U}_{i}\stackrel{iid}{\sim}{U}\left(\frac{0+1}{2},\frac{({1}-{0})^{2}}{12}\right) \]

Con

\[ {Z} = {\sum}_{i=1}^{12}{U}_{i}{\sim}{N}\left({12}\frac{1-0}{2},{12}\frac{(1-0)^2}{12}\right) \]

Al despejar la variable aleatoria \(X\)

\[ {X}_{i} = \left({{\sum}_{i=1}^{12}{U}_{i}-{6}}\right){\sigma}_{Z}^{2} + {\mu}_{Z} \]

U01=runif(100000,0,1)
U02=runif(100000,0,1)
U03=runif(100000,0,1)
U04=runif(100000,0,1)
U05=runif(100000,0,1)
U06=runif(100000,0,1)
U07=runif(100000,0,1)
U08=runif(100000,0,1)
U09=runif(100000,0,1)
U10=runif(100000,0,1)
U11=runif(100000,0,1)
U12=runif(100000,0,1)
Z=as.data.frame(U01+U02+U03+U04+U05+U06+U07+U08+U09+U10+U11+U12-6)
library(ggplot2)
ggplot(data = Z) +
  geom_histogram(mapping = aes(x = U01 + U02 + U03 + U04 + U05 + U06 + U07 + U08 + U09 + U10 + U11 + U12 - 6, y=..density..), fill = "blue", bins = sqrt(nrow(Y))) +
  geom_density(aes(x = U01 + U02 + U03 + U04 + U05 + U06 + U07 + U08 + U09 + U10 + U11 + U12 - 6, y=..density..), color="orange", linetype="dashed", lwd = 2)

Ejercicios
  • Generar una variable aleatoria continua que tiene distribución normal con media 18 y desviación estándar 12.

  • Generar una variable aleatoria continua que tiene distribución normal con media 45.5 y desviación estándar 53.0833333

  • Generar una variable aleatoria continua que tiene distribución normal con media 76 y desviación estándar 101.3333333

  • Generar una variable aleatoria continua que tiene distribución normal con media 87.5 y desviación estándar 102.0833333

  • Generar una variable aleatoria continua que tiene distribución normal con media 2 y desviación estándar 1.3333333

Ayuda

\[ {Z} = {\sum}_{i=1}^{k}{U}_{i}{\sim}{N}\left({k}\frac{1-0}{2},{k}\frac{(1-0)^2}{12}\right) \]

Con \(k\) igual al número de variables aleatorias a sumar.

Método de transformación directa

Este método se utiliza para generar variables aleatoria con distribución normal.

Ejemplos

Generar una variable aleatoria continua que tiene distribución normal estándar.

\[W = \sqrt{{-2}\log{(1-{U}_{1})}}{\cos(2{\pi}{{U}_{2}})}{\sigma}_{X} + {\mu}_{X}\]

MU_X=0
SIGMA_X=1
U1=runif(100000,0,1)
U2=runif(100000,0,1)
W=as.data.frame((sqrt(-2 * log(1 - U1)) * cos(2*pi*U2))*SIGMA_X + MU_X)
library(ggplot2)
ggplot(data = W) +
  geom_histogram(mapping = aes(x = (sqrt(-2 * log(1 - U1)) * cos(2 * pi * U2)) * SIGMA_X + MU_X, y=..density..), fill = "blue", bins = sqrt(nrow(Y))) +
  geom_density(aes(x = (sqrt(-2 * log(1 - U1)) * cos(2 * pi * U2)) * SIGMA_X + MU_X, y=..density..), color="orange", linetype="dashed", lwd = 2)

Ejercicios
  • Generar una variable aleatoria continua que tiene distribución normal con media 38 y desviación estándar 7.

  • Generar una variable aleatoria continua que tiene distribución normal con media 44 y desviación estándar 14.

  • Generar una variable aleatoria continua que tiene distribución normal con media 67 y desviación estándar 18

  • Generar una variable aleatoria continua que tiene distribución normal con media 99 y desviación estándar 22

  • Generar una variable aleatoria continua que tiene distribución normal con media 118 y desviación estándar 28

Metodo de composición.

A partir de este método se pueden generar variables aleatorias cuando la función de densidad se expresa como una combinación de \(m\) distribuciones, es decir, se encuentra definida por partes.

Método de aceptación y rechazo.

Este método se genera una variable aleatoria continua \(Y\), que tiene una función de densidad conocida \(g(y)\), posteriormente se genera un número aleatorio \(U_1\) y se decide aceptar el valor generado con una probabilidad proporcional a \(f(x)g(y)\). La función \(g(y)\) debe ser una función de densidad que acote a \(f(x)\), pero en general, \(g(y)\) no es una función de densidad.

Distribución de probabilidad t-student \(t_{n-1}\)

Es una distribución de probabilidad que surge del problema de estimar la media \(\mu\) (o mean), cuando la desviación estándar poblacional \(\sigma\) (o sd) es desconocida de una población normalmente distribuida y cuando el tamaño de la muestra es pequeño.

\[ \text{Si }{x}\sim{P(\cdot)}\text{ entonces }t=\frac{\bar{x}_{size}-{mean}}{\frac{\widehat{sd}}{\sqrt{size}}}{\sim}t_{df} \]

args(dt)
## function (x, df, ncp, log = FALSE) 
## NULL

Fue desarrollada por William Sealy Gosset, bajo el seudónimo Student.

Nota

Los grados de libertad \(df=size-1\) hacen alusión a lo siguiente:

\[ \widehat{sd^{2}}=\frac{\sum_{i=1}^{size}\left(x_{i}-\bar{x}_{size}\right)^{2}}{size-1} \]

la anterior expresion se basa en el hecho de que si bien \({s}_{x}^{2}=\widehat{sd^{2}}\) esta basada en \(n\) cantidades \(x_{i}-\bar{x}_{n}\) con \(i=1,2,\ldots,n\), dichas cantidades suman cero; de esta manera al específicar los valores de cualesquiera \(n-1\) de dichas cantidades queda determinado el valor restante.

\[ \sum_{i=1}^{size}\left(x_{i}-\bar{x}_{size}\right)=0 \]

Asi que:

\[ \sum_{i=1}^{size}\left(x_{i}-\bar{x}_{size}\right)-\left(x_{k}-\bar{x}_{size}\right)=0-\left(x_{k}-\bar{x}_{size}\right) \]

\[ \sum_{i=1,\text{ con }i{\neq}k}^{size}\left(x_{i}-\bar{x}_{size}\right)=-\left(x_{k}-\bar{x}_{size}\right) \]

\[ \bar{x}_{size}-\sum_{i=1,\text{ con }i{\neq}k}^{size}\left(x_{i}-\bar{x}_{size}\right)=x_{k} \]

Insesgamiento

\[E(\bar{x}_{size}) = mean\]

\[E(\widehat{sd^2}) = sd^2\]

En resumen, si se conocen \(n-1\) sumandos el que resta no es desconocido, es igual a la suma de los otros multiplicada por menos uno.

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

\[ P(X=x)=\frac{\Gamma\left(\frac{{df}+1}{2}\right)}{\sqrt{{df}\pi}\Gamma\left(\frac{{df}}{2}\right)}\left(1+\frac{{t}^{2}}{{df}}\right)\text{ con }-\infty{\leq}x{\leq}\infty \]

args(dt)
## function (x, df, ncp, log = FALSE) 
## NULL

Esperanza \(\mu_{x}\)

\[ \mu_{x}=\int_{-\infty}^{\infty}x{\cdot}\frac{\Gamma\left(\frac{{df}+1}{2}\right)}{\sqrt{{df}\pi}\Gamma\left(\frac{{df}}{2}\right)}\left(1+\frac{{t}^{2}}{{df}}\right)dx=0 \]

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

\[ \sigma_{x}^{2}=\int_{-\infty}^{\infty}\left(x-\mu_{x}\right)^{2}{\cdot}\frac{\Gamma\left(\frac{{df}+1}{2}\right)}{\sqrt{{df}\pi}\Gamma\left(\frac{{df}}{2}\right)}\left(1+\frac{{t}^{2}}{{df}}\right)dx=\frac{{df}}{{df}-2}\text{ para }{df}>2 \]

Ejemplo

library(ggfortify)
densidad.tstudent <- function(df, colour = NULL, p = NULL) ggdistribution(dt, seq(-3, 3, 0.1), df = df, colour = colour, p = p)
densidad.tstudent(df = 1, colour = "black", p = densidad.tstudent(df = 5, colour = "blue", p = densidad.tstudent(df = 11, colour = "green", p = densidad.tstudent(df = 30, colour = "red"))))

library(ggfortify)
distribucion.tstudent <- function(df, colour = NULL, p = NULL)  ggdistribution(pt, seq(-3, 3, 0.1), df = df, colour = colour, p = p)
distribucion.tstudent(df = 1, colour = "black", p = distribucion.tstudent(df = 5, colour = "blue", p = distribucion.tstudent(df = 11, colour = "green", p = distribucion.tstudent(df = 30, colour = "red"))))

Ejercicios

Para una distribución t-student con grados de libertad df, en cada caso, la probabilidad \(P(X=a)\), \(P(X<a)=P(X{\leq}a)\) y \(P(X<a)=P(a{\leq}X{\leq}b)\) solicitada en cada caso

  1. \(P(X=a)\) con df = 1
a <- 0
library(ggfortify)
ggdistribution(dt, seq(-3, +3, 0.1), df = 1, colour = "blue", p = ggdistribution(dt, seq(a-0.05, a+0.05, 0.1), df = 1, colour = "blue", fill = "blue"))

dt(x = a, df = 1)
## [1] 0.3183099
pt(q = a + 0.5, df = 1, lower.tail = TRUE) - pt(q = a - 0.5, df = 1, lower.tail = TRUE)
## [1] 0.2951672
  1. \(P(X{\leq}a)\) con df = 1 y a = 0
a <- 0
library(ggfortify)
ggdistribution(dt, seq(-3, +3, 0.1), df = 1, colour = "blue", p = ggdistribution(dt, seq(-3, a, 0.1), df = 1, colour = "blue", fill = "blue"))

pt(q = a, df = 1, lower.tail = TRUE)
## [1] 0.5
library(ggfortify)
ggdistribution(pt, seq(-3, +3, 0.1), df = 1, colour = "blue", p = ggdistribution(pt, seq(a-0.05, a+0.05, 0.1), df = 1, colour = "blue", fill = "blue"))

  1. \(P(a{\leq}X{\leq}b)\) con df = 1, a = 0 y b = 2
a <- 0
b <- 2
library(ggfortify)
ggdistribution(dt, seq(-3, +3, 0.1), df = 1, colour = "blue", p = ggdistribution(dt, seq(a, b, 0.1), df = 1, colour = "blue", fill = "blue"))

pt(q = b, df = 1, lower.tail = TRUE) - 0.5
## [1] 0.3524164
pt(q = b, df = 1, lower.tail = TRUE) - pt(q = a, df = 1, lower.tail = TRUE)
## [1] 0.3524164
library(ggfortify)
ggdistribution(pt, seq(-3, +3, 0.1), df = 1, colour = "blue", p = ggdistribution(pt, seq(b-0.05, b+0.05, 0.1), df = 1, colour = "blue", fill = "blue", p = ggdistribution(pt, seq(a-0.05, a+0.05, 0.1), df = 1, colour = "blue", fill = "blue")))

  1. df = 4 y a = 2.88

  2. df = 5 y a = -0.56

  3. df = 2 y a = 2.67

  4. df = 11 y a = 0.84

Distribución de probabilidad exponencial \(Exp(\lambda)\)

Muy comunmente utilizada para variables que describen el tiempo de espera entre dos hechos que sigan un proceso de Poisson; depende de un solo parámetro \(\lambda\) o el tiempo hasta que se produce un determinado hecho o suceso. De gran utilidad en situaciones como las siguientes:

  1. Distribución del tiempo de espera entre sucesos de un proceso de Poisson

  2. Distribución del tiempo que transcurre hasta que se produce un fallo, si se cumple la condición que la probabilidad de producirse un fallo en un instante no depende del tiempo transcurrido.

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

\[P(X=x)={rate}\cdot{e}^{-{rate}\cdot{x}}\text{ con }0{\leq}x{\leq}\infty\text{ y }{rate}>0\]

args(dexp)
## function (x, rate = 1, log = FALSE) 
## NULL

Esperanza \(\mu_{x}\)

\[ \mu_{x}=\int_{0}^{\infty}x{\cdot}{rate}\cdot{e}^{-{rate}\cdot{x}}dx=\frac{1}{{rate}} \]

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

\[\sigma_{x}^{2}=\int_{0}^{\infty}\left(x-\mu_{x}\right)^{2}{\cdot}{rate}\cdot{e}^{-{rate}\cdot{x}}dx=\frac{1}{{rate}^{2}}\]

Ejemplo

library(ggfortify)
densidad.exponencial <- function(rate, colour = NULL, p = NULL) ggdistribution(dexp, seq(-0, 3, 0.1), rate = rate, colour = colour, p = p)
densidad.exponencial(rate = 1, colour = "black", p = densidad.exponencial(rate = 7, colour = "blue", p = densidad.exponencial(rate = 13, colour = "green", p = densidad.exponencial(rate = 17, colour = "red"))))

library(ggfortify)
distribucion.exponencial <- function(rate, colour = NULL, p = NULL) ggdistribution(pexp, seq(-0, 3, 0.1), rate = rate, colour = colour, p = p)
distribucion.exponencial(rate = 1, colour = "black", p = distribucion.exponencial(rate = 7, colour = "blue", p = distribucion.exponencial(rate = 13, colour = "green", p = distribucion.exponencial(rate = 17, colour = "red"))))

Distribución de probabilidad ji o chi cuadrado \(\chi^2_{n}\)

Conocida como distribución de Pearson, ji cuadrada(o) o chi cuadrado(a), es una distribución de probabilidad continua con un único parámetro \(n\) que representa los grados de libertad de dicha variable aleatoria construida de la siguiente manera:

\[X=Z_{1}^{2}+Z_{2}^{2}+\cdots+Z_{n}^{2}\]

Donde cada \(Z_{i}\) representa una variable aleatoria normal e independiente del resto, la probabilidad de que \(Z_{i}\) tome un valor en partícular no depende del valor que puedan tomar las otras; para cada una de ellas su media cero y su varianza es uno.

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

\[ P(X=x)=\frac{\frac{1}{2}^{\frac{df}{2}}}{\Gamma\left(\frac{df}{2}\right)}x^{\frac{df}{2}-1}e^{-\frac{df}{2}}\text{ con }0{\leq}x{\leq}\infty\text{ y }{df}>0 \]

args(dchisq)
## function (x, df, ncp = 0, log = FALSE) 
## NULL

Esperanza \(\mu_{x}\)

\[ \mu_{x}=\int_{0}^{\infty}x{\cdot}\frac{\frac{1}{2}^{\frac{df}{2}}}{\Gamma\left(\frac{df}{2}\right)}x^{\frac{df}{2}-1}e^{-\frac{df}{2}}dx={df} \]

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

\[ \sigma_{x}^{2}=\int_{0}^{\infty}\left(x-\mu_{x}\right)^{2}{\cdot}\frac{\frac{1}{2}^{\frac{df}{2}}}{\Gamma\left(\frac{df}{2}\right)}x^{\frac{df}{2}-1}e^{-\frac{df}{2}}dx=2\cdot{df} \]

Ejemplo

library(ggfortify)
densidad.chicuadrado <- function(df, colour = NULL, p = NULL) ggdistribution(dchisq, seq(0, 6*sqrt(2*df), 0.1), df = df, colour = colour, p = p)
densidad.chicuadrado(df = 1, colour = "black", p = densidad.chicuadrado(df = 3, colour = "blue", p = densidad.chicuadrado(df = 5, colour = "green", p = densidad.chicuadrado(df = 7, colour = "red"))))

library(ggfortify)
distribucion.chicuadrado <- function(df, colour = NULL, p = NULL) ggdistribution(pchisq, seq(0, 6*sqrt(2*df), 0.1), df = df, colour = colour, p = p)
distribucion.chicuadrado(df = 1, colour = "black", p = distribucion.chicuadrado(df = 3, colour = "blue", p = distribucion.chicuadrado(df = 5, colour = "green", p = distribucion.chicuadrado(df = 7, colour = "red"))))

Distribución de probabilidad F de Fischer \(F_{m,n}\)

Es una distribución de probabilidad continua. También se le conoce como distribución F de Snedecor (por George Snedecor) o como distribución F de Fisher-Snedecor (por Ronald Fisher).

Una variable aleatoria de distribución F se construye como el siguiente cociente:

\[F={\frac {X_{1}/m}{X_{2}/n}}\]

En donde

  1. \(X_{1}\) y \(X_{2}\) siguen una distribución chi-cuadrado con \(m\) y d2 grados de libertad respectivamente, y

  2. \(m\) y \(n\) son independientes desde el punto de vista estadístico.

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

\[ P(X=x)=\frac{\sqrt{\frac{\left({df1}\cdot{x}\right)^{{df1}}{{df2}}^{{df2}}}{\left({df1}\cdot{x}+{df2}\right)^{{df1}+{df2}}}}}{{x}\cdot\mathcal{B}\left(\frac{{df1}}{2},\frac{{df2}}{2}\right)}\text{ con }0{\leq}x{\leq}\infty\text{, }{df1}>0\text{ y }{df2}>0 \]

args(df)
## function (x, df1, df2, ncp, log = FALSE) 
## NULL

Esperanza \(\mu_{x}\)

\[ \mu_{x}=\int_{x=-\infty}^{\infty}x{\cdot}\frac{\sqrt{\frac{\left({df1}\cdot{x}\right)^{{df1}}{{df2}}^{{df2}}}{\left({df1}\cdot{x}+{df2}\right)^{{df1}+{df2}}}}}{{x}\cdot\mathcal{B}\left(\frac{{df1}}{2},\frac{{df2}}{2}\right)}dx=\frac{{df2}}{{df2}-2}\text{ para }df2>2 \]

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

\[ \sigma_{x}^{2}=\int_{x=-\infty}^{\infty}\left(x-\mu_{x}\right)^{2}{\cdot}\frac{\sqrt{\frac{\left({df1}\cdot{x}\right)^{{df1}}{{df2}}^{{df2}}}{\left({df1}\cdot{x}+{df2}\right)^{{df1}+{df2}}}}}{{x}\cdot\mathcal{B}\left(\frac{{df1}}{2},\frac{{df2}}{2}\right)}dx=\frac{2\cdot{df2}^{2}\left({df1}+{df2}-2\right)}{{df1}\left({df2-2}\right)^{2}\left({df2}-4\right)}\text{ para }df2>4 \]

Ejemplo

library(ggfortify)
densidad.F <- function(df1, df2, colour = NULL, p = NULL) ggdistribution(df, seq(0.01, 6*sqrt(df1/(df2-2)), 0.1), df1 = df1, df2 = df2, colour = colour, p = p)
densidad.F(df1 = 1, df2 = 3, colour = "black", p = densidad.F(df1 = 5, df2 = 7, colour = "blue", p = densidad.F(df1 = 11, df2 = 13, colour = "green", p = densidad.F(df1 = 17, df2 = 19, colour = "red"))))

library(ggfortify)
distribucion.F <- function(df1, df2, colour = NULL, p = NULL) ggdistribution(pf, seq(0, 6*sqrt(df1/(df2-2)), 0.1), df1 = df1, df2 = df2, colour = colour, p = p)
distribucion.F(df1 = 1, df2 = 3, colour = "black", p = distribucion.F(df1 = 5, df2 = 7, colour = "blue", p = distribucion.F(df1 = 11, df2 = 13, colour = "green", p = distribucion.F(df1 = 17, df2 = 19, colour = "red"))))

Distribución de probabilidad uniforme \(U(a,b)\)

Familia de distribuciones de probabilidad para variables aleatorias continuas, tales que para cada miembro de la familia, todos los intervalos de igual longitud en la distribución en su rango son igualmente probables.

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

\[ P(X=x)=\frac{1}{b-a}\text{ con }a{\leq}x{\leq}b \]

args(dunif)
## function (x, min = 0, max = 1, log = FALSE) 
## NULL

Esperanza \(\mu_{x}\)

\[ \mu_{x}=\int_{0}^{\infty}x{\cdot}\frac{1}{b-a}dx=\frac{a+b}{2} \]

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

\[ \sigma_{x}^{2}=\int_{0}^{\infty}\left(x-\mu_{x}\right)^{2}{\cdot}\frac{1}{b-a}dx=\frac{(b-a)^2}{12} \]

Ejemplo

library(ggfortify)
densidad.uniforme <- function(min, max, colour = NULL, p = NULL) ggdistribution(dunif, seq(min, max, 0.1), min = min, max = max, colour = colour, p = p)
densidad.uniforme(min = 2, max = 3, colour = "black", p = densidad.uniforme(min = 3, max = 5, colour = "blue", p = densidad.uniforme(min = 5, max = 7, colour = "green", p = densidad.uniforme(min = 7, max = 11, colour = "red"))))

library(ggfortify)
distribucion.uniforme <- function(min, max, colour = NULL, p = NULL) ggdistribution(punif, seq(min, max, 0.1), min = min, max = max, colour = colour, p = p)
distribucion.uniforme(min = 2, max = 3, colour = "black", p = distribucion.uniforme(min = 3, max = 5, colour = "blue", p = distribucion.uniforme(min = 5, max = 7, colour = "green", p = distribucion.uniforme(min = 7, max = 11, colour = "red"))))

Ejercicios

  1. \(P(X{\leq}c)\) con c = 2, a = 1 y b = 3
c <- 2
ggdistribution(dunif, seq(1, 3, 0.1), min = 1, max = 3, colour = "blue", p = ggdistribution(dunif, seq(c-0.05, c+0.05, 0.1), min = 1, max = 3, colour = "blue", fill = "blue"))

dunif(x = 2 ,min = 1, max = 3)
## [1] 0.5
  1. \(P(X{\leq}c)\) con c = 2, a = 1 y b = 3
ggdistribution(dunif, seq(1, 3, 0.1), min = 1, max = 3, colour = "blue", p = ggdistribution(dunif, seq(1, c, 0.1), min = 1, max = 3, colour = "blue", fill = "blue"))

punif(q = 2, min = 1, max = 3, lower.tail = TRUE)
## [1] 0.5

Distribución de probabilidad gamma \(gamma(\alpha,\theta)\)

Familia de distribuciones de probabilidad para variables aleatorias continuas, tales que para cada miembro de la familia, todos los intervalos de igual longitud en la distribución en su rango son igualmente probables.

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

\[ P(X=x)=\frac{1}{{scale}\cdot\Gamma(shape)}x^{shape-1}e^{-\frac{x}{{scale}}}\text{ con }0{\leq}x{\leq}\infty\text{, }{shape}>0\text{ y }{scale}>0 \]

args(dgamma)
## function (x, shape, rate = 1, scale = 1/rate, log = FALSE) 
## NULL

Esperanza \(\mu_{x}\)

\[ \mu_{x}=\int_{0}^{\infty}x{\cdot}\frac{1}{{scale}\cdot\Gamma(shape)}x^{shape-1}e^{-\frac{x}{{scale}}}dx={shape}\cdot{scale} \]

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

\[ \sigma_{x}^{2}=\int_{0}^{\infty}\left(x-\mu_{x}\right)^{2}{\cdot}frac{1}{{scale}\cdot\Gamma(shape)}x^{shape-1}e^{-\frac{x}{{scale}}}dx={shape}\cdot{scale}^{2} \]

Ejemplo

library(ggfortify)
densidad.gamma <- function(shape, scale, colour = NULL, p = NULL) ggdistribution(dgamma, seq(0, 6*sqrt(shape*scale^2), 0.1), shape = shape, scale = scale, colour = colour, p = p)
densidad.gamma(shape = 2, scale = 3, colour = "black", p = densidad.gamma(shape = 3, scale = 5, colour = "blue", p = densidad.gamma(shape = 5, scale = 7, colour = "green", p = densidad.gamma(shape = 11, scale = 13, colour = "red"))))

library(ggfortify)
distribucion.gamma <- function(shape, scale, colour = NULL, p = NULL) ggdistribution(pgamma, seq(0, 6*sqrt(shape*scale^2), 0.1), shape = shape, scale = scale, colour = colour, p = p)
distribucion.gamma(shape = 2, scale = 3, colour = "black", p = distribucion.gamma(shape = 3, scale = 5, colour = "blue", p = distribucion.gamma(shape = 5, scale = 7, colour = "green", p = distribucion.gamma(shape = 7, scale = 11, colour = "red"))))

Ejercicios

  1. \(P(X{\leq}c)\) con c = 2, shape = 2 y scale = 3
c <- 2
ggdistribution(dgamma, seq(0, 6*sqrt(1*3**2), 0.1), shape = 2, scale = 3, colour = "blue", p = ggdistribution(dgamma, seq(c-0.05, c+0.05, 0.1), shape = 2, scale = 3, colour = "blue", fill = "blue"))

dgamma(x = 2, shape = 2, scale = 3)
## [1] 0.1140927
  1. \(P(X{\leq}c)\) con c = 2, a = 2 y b = 3
ggdistribution(dgamma, seq(0, 6*sqrt(1*3**2), 0.1), shape = 2, scale = 3, colour = "blue", p = ggdistribution(dgamma, seq(0, c, 0.1), shape = 2, scale = 3, colour = "blue", fill = "blue"))

pgamma(q = 2, shape = 2, scale = 3, lower.tail = TRUE)
## [1] 0.1443048

Distribución de probabilidad beta \(beta(\alpha,\beta)\)

Familia de distribuciones de probabilidad para variables aleatorias continuas, tales que para cada miembro de la familia, todos los intervalos de igual longitud en la distribución en su rango son igualmente probables.

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

\[ P(X=x)=\frac{x^{shape1-1}(1-x)^{shape2-1}}{\mathbf{B}(shape1,shape2)}\text{ con }0{\leq}x{\leq}1\text{, }{shape1}>0\text{ y }{shape2}>0 \]

args(dbeta)
## function (x, shape1, shape2, ncp = 0, log = FALSE) 
## NULL

Esperanza \(\mu_{x}\)

\[ \mu_{x}=\int_{0}^{\infty}x{\cdot}\frac{x^{shape1-1}(1-x)^{shape2-1}}{\mathbf{B}(shape1,shape2)}dx=\frac{shape1}{shape1+shape2} \]

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

\[ \sigma_{x}^{2}=\int_{0}^{\infty}\frac{x^{shape1-1}(1-x)^{shape2-1}}{\mathbf{B}(shape1,shape2)}dx=\frac{{shape1}\cdot{shape2}}{(shape1+shape1+1)(shape1+shape1)^{2}}\text{ con }{shape1}>1\text{ y }{shape2}>1 \]

Ejemplo

library(ggfortify)
densidad.beta <- function(shape1, shape2, colour = NULL, p = NULL) ggdistribution(dbeta, seq(0, 9*sqrt((shape1*shape2)/((shape1+shape2+1)*(shape1+shape2)**2)), 0.01), shape1 = shape1, shape2 = shape2, colour = colour, p = p)
densidad.beta(shape1 = 1, shape2 = 1, colour = "black", p = densidad.beta(shape1 = 2, shape2 = 3, colour = "blue", p = densidad.beta(shape1 = 3, shape2 = 5, colour = "green", p = densidad.beta(shape1 = 5, shape2 = 7, colour = "red"))))

library(ggfortify)
distribucion.beta <- function(shape1, shape2, colour = NULL, p = NULL) ggdistribution(pbeta, seq(0, 9*sqrt((shape1*shape2)/((shape1+shape2+1)*(shape1+shape2)**2)), 0.01), shape1 = shape1, shape2 = shape2, colour = colour, p = p)
distribucion.beta(shape1 = 1, shape2 = 1, colour = "black", p = distribucion.beta(shape1 = 2, shape2 = 3, colour = "blue", p = distribucion.beta(shape1 = 3, shape2 = 5, colour = "green", p = distribucion.beta(shape1 = 5, shape2 = 7, colour = "red"))))

Ejercicios

  1. \(P(X{\leq}c)\) con c = 2, shape1 = 2 y shape2 = 3
c <- 0.5
ggdistribution(dbeta, seq(0, 6*sqrt((2*3)/((2+3+1)*(2+3)**2)), 0.01), shape1 = 2, shape2 = 3, colour = "blue", p = ggdistribution(dbeta, seq(c-0.05, c+0.05, 0.01), shape1 = 2, shape2 = 3, colour = "blue", fill = "blue"))

dbeta(x = 0.5, shape1 = 2, shape2 = 3)
## [1] 1.5
  1. \(P(X{\leq}c)\) con c = 0.5, a = 2 y b = 3
ggdistribution(dbeta, seq(0, 6*sqrt((2*3)/((2+3+1)*(2+3)**2)), 0.01), shape1 = 2, shape2 = 3, colour = "blue", p = ggdistribution(dbeta, seq(0, c, 0.01), shape1 = 2, shape2 = 3, colour = "blue", fill = "blue"))

pbeta(q = 0.5, shape1 = 2, shape2 = 3, lower.tail = TRUE)
## [1] 0.6875

Método de aceptación y rechazo.

Este método se genera una variable aleatoria continua \(Y\), que tiene una función de densidad conocida \(g(y)\), posteriormente se genera un número aleatorio \(U_1\) y se decide aceptar el valor generado con una probabilidad proporcional a \(f(x)g(y)\). La función \(g(y)\) debe ser una función de densidad que acote a \(f(x)\), pero en general, \(g(y)\) no es una función de densidad.

Ejemplos
  • Simular una variable aleatoria continua con distribución beta de parámetros \(\alpha=3\) y \(\beta=2\)

    • Función de densidad:

    \[{f}_{X}(x) = {12}{x}^{2}\left({1}−{x}\right)\]

    • Valor máximo.

    \[{x} = {\frac{2}{3}} {\rightarrow} {f}_{X}\left({\frac{2}{3}}\right) \leq {\frac{16}{9}}\]

    • Se define

    \[{g}_{X}(x) = \frac{16}{9}\forall{x\in[0,1]}\]

    • De esta manera

    \[{g}_{X}(x) {\geq} {f}_{X}(x)\]

    • Se generan

    \[{X} = {U}_{1}\]

    \[{U}_{2} {\leq} \frac{{12}{x}^{2}\left({1}−{x}\right)}{\frac{16}{9}}\]

U1 <- runif(100000,0,1)
U2 <- runif(100000,0,1)
V <- as.data.frame((12*U1**2*(1-U1))/(16/9))
X <- as.data.frame(U1[U2<=V])
N <- length(X)
library(ggplot2)
ggplot(data = X) +
  geom_histogram(mapping = aes(x = U1[U2 <= V], y=..density..), fill = "blue", bins = sqrt(nrow(Y))) +
  geom_density(aes(x = U1[U2 <= V], y=..density..), color="orange", linetype="dashed", lwd = 2) +
  ylim(0,2.1)

  • Simular una variable aleatoria continua con distribución beta de parámetros \(\alpha=3\) y \(\beta=4\)

    • Función de densidad:

    \[{f}_{X}(x) = {60}{x}^{2}\left({1}−{x}\right)^{3}\]

    • Tomando como \(g\) la función de densidad de la distribución \(U(0,1)\), se debe encontrar

    \[{c} = \max_{x}{\frac{f_{X}(x)}{g_{X}(x)}} = \max_{x}{{60}{x}^{2}\left({1}−{x}\right)^{3}} {\rightarrow} {c} = \frac{1296}{625}\text{ para }{x} = \frac{2}{5}\]

    • Se define

    \[{h}_{X}(x) = \frac{f_{X}(x)}{c{\cdot}g_{X}(x)}=\frac{{60}{x}^{2}\left({1}−{x}\right)^{3}}{\frac{1296}{625}{\cdot}\frac{2}{5}}\forall{x\in[0,1]}\]

    • Por lo cual es pseudo-código quedaría de la siguiente manera

      • Generar \({U}_{1}{\sim}U(0,1)\)

      • Generar \({U}_{2}{\sim}U(0,1)\)

      • Si \({U}_{1}{\leq}{\frac{3125}{108}{U}_{2}}^{2}({1−{U}_{2}})^{3}\) entonces hacer \({X}={U}_{2}\)

      • De lo contrario retorne al inicio.

h <- function(x){
  3125/108*(x^2)*((1-x)^3)
}

X <- numeric()
for(j in 1:100000){
  k <- 0
  while(k == 0){
    U1 <- runif(1)
    U2 <- runif(1)
    if(U1 <= h(U2)){
      k = 1
      X[j] = U2
    }
  }
}
X <- as.data.frame(X)
library(ggplot2)
ggplot(data = X) +
  geom_histogram(mapping = aes(x = X, y=..density..), fill = "blue", bins = sqrt(nrow(Y))) +
  geom_density(aes(x = X, y=..density..), color="orange", linetype="dashed", lwd = 2) +
  ylim(0,2.1)
## Warning: Removed 13 rows containing missing values (`geom_bar()`).

Ejercicios

Simule datos para diez variables, cinco por cada método, con distribución \(Beta(\alpha=shape1,\beta=shape2)\):

\[ P(X=x)=\frac{x^{shape1-1}(1-x)^{shape2-1}}{\mathbf{B}(shape1,shape2)}\text{ con }0{\leq}x{\leq}1\text{, }{shape1}>0\text{ y }{shape2}>0 \]