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.
Se les denomina continuas, debido a que sus eventos siempre asumen valores intermedios entre dos numeros cualesquiera que puedan darse.
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).
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}\]
Este método se utiliza para generar variables aleatorias con distribución normal.
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} \]
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.
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.
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:
caracteres morfológicos de individuos como la estatura;
caracteres fisiológicos como el efecto de un fármaco;
caracteres sociológicos como el consumo de cierto producto por un mismo grupo de individuos;
caracteres psicológicos como el cociente intelectual;
nivel de ruido en telecomunicaciones;
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.
En probabilidad, la distribución normal aparece como el límite de varias distribuciones de probabilidad continuas y discretas.
\[ 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
\[ \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} \]
\[ \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} \]
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"))))
\[ \text{Si }{x}\sim{N(mean,sd^2)}\text{ entonces }z=\frac{x-mean}{sd}\sim{N(0,1^2)} \]
\[ \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
\[ \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
\[\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
\[ 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"))
\[\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)}\]
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)} \]
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`.
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 \]
\[ 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
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"))
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")))
mean = -1.29, sd = 1.09 y a = 1.05
mean = -2.14, sd = 1.38 y a = -0.35
mean = 2.54, sd = 0.16 y a = 0.06
mean = -1.68, sd = 0.75 y a = -2
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) \]
\[ {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)
\[ {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)
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.
Este método se utiliza para generar variables aleatoria con distribución normal.
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)
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
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.
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.
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.
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} \]
\[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.
\[ 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
\[ \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 \]
\[ \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 \]
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"))))
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
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
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"))
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")))
df = 4 y a = 2.88
df = 5 y a = -0.56
df = 2 y a = 2.67
df = 11 y a = 0.84
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:
Distribución del tiempo de espera entre sucesos de un proceso de Poisson
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.
\[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
\[ \mu_{x}=\int_{0}^{\infty}x{\cdot}{rate}\cdot{e}^{-{rate}\cdot{x}}dx=\frac{1}{{rate}} \]
\[\sigma_{x}^{2}=\int_{0}^{\infty}\left(x-\mu_{x}\right)^{2}{\cdot}{rate}\cdot{e}^{-{rate}\cdot{x}}dx=\frac{1}{{rate}^{2}}\]
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"))))
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.
\[ 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
\[ \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} \]
\[ \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} \]
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"))))
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
\(X_{1}\) y \(X_{2}\) siguen una distribución chi-cuadrado con \(m\) y d2 grados de libertad respectivamente, y
\(m\) y \(n\) son independientes desde el punto de vista estadístico.
\[ 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
\[ \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 \]
\[ \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 \]
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"))))
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.
\[ 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
\[ \mu_{x}=\int_{0}^{\infty}x{\cdot}\frac{1}{b-a}dx=\frac{a+b}{2} \]
\[ \sigma_{x}^{2}=\int_{0}^{\infty}\left(x-\mu_{x}\right)^{2}{\cdot}\frac{1}{b-a}dx=\frac{(b-a)^2}{12} \]
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"))))
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
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
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.
\[ 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
\[ \mu_{x}=\int_{0}^{\infty}x{\cdot}\frac{1}{{scale}\cdot\Gamma(shape)}x^{shape-1}e^{-\frac{x}{{scale}}}dx={shape}\cdot{scale} \]
\[ \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} \]
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"))))
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
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
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.
\[ 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
\[ \mu_{x}=\int_{0}^{\infty}x{\cdot}\frac{x^{shape1-1}(1-x)^{shape2-1}}{\mathbf{B}(shape1,shape2)}dx=\frac{shape1}{shape1+shape2} \]
\[ \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 \]
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"))))
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
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
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.
Simular una variable aleatoria continua con distribución beta de parámetros \(\alpha=3\) y \(\beta=2\)
\[{f}_{X}(x) = {12}{x}^{2}\left({1}−{x}\right)\]
\[{x} = {\frac{2}{3}} {\rightarrow} {f}_{X}\left({\frac{2}{3}}\right) \leq {\frac{16}{9}}\]
\[{g}_{X}(x) = \frac{16}{9}\forall{x\in[0,1]}\]
\[{g}_{X}(x) {\geq} {f}_{X}(x)\]
\[{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\)
\[{f}_{X}(x) = {60}{x}^{2}\left({1}−{x}\right)^{3}\]
\[{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}\]
\[{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()`).
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 \]