library(knitr)
# Tu conjunto de datos
datos <- data.frame(
Modelo_Discreto= c("Bernoulli","Binomial","Poisson"),
Modelo_Continuo = c("Uniforme","Normal","Exponencial")
)
# Crear la tabla utilizando kable()
kable(datos, caption = "",col.names =c("Modelo Discreto", "Modelo Continuo"),format="pipe")
| Modelo Discreto | Modelo Continuo |
|---|---|
| Bernoulli | Uniforme |
| Binomial | Normal |
| Poisson | Exponencial |
Para hacer uso de los modelos de probabilidad en R tenga en cuenta:
# Crear una tabla que explique las diferencias entre r, d y p en R
diferencias <- data.frame(
Función = c("r", "d", "p"),
Significado = c("Genera valores aleatorios según la distribución",
"Calcula la densidad de probabilidad (PDF)",
"Calcula la función de distribución acumulativa (CDF)"),
Ejemplo = c("rnorm(n, mean, sd) genera n valores aleatorios de una distribución normal",
"dnorm(x, mean, sd) calcula la PDF de una distribución normal en x",
"pnorm(x, mean, sd) calcula la CDF de una distribución normal en x")
)
# Imprimir la tabla utilizando kable
knitr::kable(diferencias, caption = "")
| Función | Significado | Ejemplo |
|---|---|---|
| r | Genera valores aleatorios según la distribución | rnorm(n, mean, sd) genera n valores aleatorios de una distribución normal |
| d | Calcula la densidad de probabilidad (PDF) | dnorm(x, mean, sd) calcula la PDF de una distribución normal en x |
| p | Calcula la función de distribución acumulativa (CDF) | pnorm(x, mean, sd) calcula la CDF de una distribución normal en x |
A continuación se presenta de manera general las funciones para cada modelo. Nota: Dependiendo de la necesidad puede cambiar d por r o p:
# Cargar el paquete necesario (en este caso, solo se utiliza el paquete base de R)
library(stats)
# Crear una tabla con las distribuciones de probabilidad comunes
distribuciones <- data.frame(
Distribución = c("Normal", "Uniforme", "Exponencial", "Poisson", "Binomial"),
Función = c("dnorm(x, mean, sd)", "dunif(x, min, max)", "dexp(x, rate)", "dpois(x, lambda)", "dbinom(x, size, prob)"),
Parámetros = c("mean (media), sd (desviación estándar)", "min (mínimo), max (máximo)", "rate (tasa)", "lambda (tasa)", "size (número de ensayos), prob (probabilidad de éxito)"),
Descripción = c("Distribución normal", "Distribución uniforme", "Distribución exponencial", "Distribución de Poisson", "Distribución binomial")
)
# Imprimir la tabla utilizando kable
knitr::kable(distribuciones, caption = "")
| Distribución | Función | Parámetros | Descripción |
|---|---|---|---|
| Normal | dnorm(x, mean, sd) | mean (media), sd (desviación estándar) | Distribución normal |
| Uniforme | dunif(x, min, max) | min (mínimo), max (máximo) | Distribución uniforme |
| Exponencial | dexp(x, rate) | rate (tasa) | Distribución exponencial |
| Poisson | dpois(x, lambda) | lambda (tasa) | Distribución de Poisson |
| Binomial | dbinom(x, size, prob) | size (número de ensayos), prob (probabilidad de éxito) | Distribución binomial |
El experimento aleatorio más sencillo es aquel que puede resultar en uno de dos resultados posibles (Mutuamente excluyentes, porque no pueden darse simultáneamente).
Ejemplos:
- Obtener cara o sello al lanzar una moneda.
- Un pedido es entregado o no.
- Una persona se clasifica como enfermo o sano.
- Una llamada da como resultado que el cliente compre el producto o no
lo compre.
El experimento con dos resultados posibles se denomina ensayo Bernoulli.
Con frecuencia, se clasifican los dos posibles resultados como éxito y fracaso. Sin embargo, esta clasificación no implica que un resultado sea bueno y el otro malo.
La distribución de probabilidad para un ensayo Bernoulli depende sólo de un parámetro p, probabilidad de éxito donde \(0<p<1\), se le conoce como distribución Bernoulli (Se representa como \(𝑋\sim Ber(p)\)).
Sea \(𝑋\) la variable aleatoria que representa el éxito (1) ó fracaso (0) de un experimento aleatorio. Se dice entonces que 𝑋 tiene una distribución Bernoulli con función dada por:
\[ P(X = x) = \begin{cases} p & \text{si } x = 1 \\ q = 1-p & \text{si } x = 0 \end{cases} \]
Donde:
- \(p\) es la probabilidad de
éxito.
- \(q\) es la probabilidad de
fracaso.
En R, puedes usar la función rbernoulli() del paquete
base para generar valores aleatorios que sigan una distribución de
Bernoulli. Aquí hay un ejemplo:
set.seed(123)
# Parámetros de la distribución de Bernoulli
probabilidad_exito1 <- 0.5
# Generar un valor aleatorio siguiendo una distribución de Bernoulli
resultado1 <- rbinom(n=1000,size=1, probabilidad_exito1)
# Imprimir el resultado
#resultado1
Lo anterior se genera con \(rbinom(n=10,size=1, probabilidad)\) donde \(n\) representa el número de observaciones que queremos simular y \(size\) es el número de ensayos.
Tabla1=as.data.frame(table(resultado1)/1000)
# Calcular y trazar la función de probabilidad binomial
k1 <- 0:1
prob_binomial1 <- dbinom(k1, 1, probabilidad_exito1)
# Crear el gráfico
plot(k1, prob_binomial1, type = "h", xaxt = "n", xlab = "k", ylab = "P(X=k)", main = "Función de Probabilidad B(1,0.3)", ylim = c(0, 0.8), lwd = 2, col = "blue")
lines(Tabla1$resultado, Tabla1$Freq, type = "h", lwd = 2, col = "red")
legend("topright", legend = c("Función de Probabilidad Binomial", "Simulación"),
col = c("blue", "red"), lwd = c(1, 2), bty = "n")
# Personalizar las etiquetas del eje X
axis(1, at = k1, labels = k1)
Algunos experimentos consisten en la observación de una secuencia de intentos idénticos e independientes, cada uno de los cuales puede resultar en uno de dos resultados (Observación de ensayos Bernoulli). Por ejemplo:
Consideremos el experimento de lanzar una moneda 10 veces y observar el número de “caras”. Este experimento tiene las siguientes características:
-“Lanzar una moneda” es un ensayo Bernoulli.
- Se ejecuta 𝑛=10 veces.
- Los 10 experimentos son idénticos.
- Los 10 experimentos son independientes.
- La probabilidad \(p=1/2\) de observar
una “cara” permanece constante.
Este experimento es un ejemplo de un tipo especial de experimento llamado experimento binomial.
Se caracteriza por presentar dos cantidades que son \(n\) y \(p\), donde:
n: Representa el número de ensayos
p: Es la probabilidad de éxito en cada ensayo.
Una variable Binomial se representa por:
\(X \sim Binom(n,p)\)
La función de masa de probabilidad del modelo binomial es:
\[ P(X = k) = \binom{n}{k} \cdot p^k \cdot (1-p)^{n-k}\;\; x=0,1,2,3,...,n \]
Donde: - \(n\) es el número total de
ensayos.
- \(k\) es el número de éxitos
deseados.
- \(p\) es la probabilidad de éxito en
un solo ensayo.
- \(\binom{n}{k}\) se llama el
coeficiente binomial y se calcula como \(\binom{n}{k} = \frac{n!}{k!(n-k)!}\).
En R, puedes usar la función rbinom().
set.seed(123)
# Parámetros de la distribución binomial
n_ensayos <- 10
probabilidad_exito <- 0.5
# Generar un valor aleatorio siguiendo una distribución binomial
resultado <- rbinom(n=1000, n_ensayos, probabilidad_exito)
# Imprimir el resultado
#resultado
barplot(table(resultado),ylim=c(0,400))
Tabla=as.data.frame(table(resultado)/1000)
plot(dbinom(Tabla$resultado[1]:n_ensayos,n_ensayos,probabilidad_exito),type="h",xlab="k",ylab="P(X=k)",main="Función de Probabilidad B(10,0.5)",ylim=c(0,0.5),lwd = 2,col="blue")
lines(Tabla$resultado,Tabla$Freq, type = "h", lwd = 2, col = "red")
legend("topright", legend = c("Función de Probabilidad Binomial", "Simulación"),
col = c("blue", "red"), lwd = c(1, 2),bty="n")
La media para los datos simulados es de: 4.97.
Mientras que el valor esperado es: 5.
La distribución de Poisson se utiliza para describir ciertos tipos de procesos, entre los que se encuentran:
Estos ejemplos tienen en común un elemento: pueden ser descritos mediante una variable aleatoria discreta que toma valores enteros (0, 1, 2, 3, 4, 5, etc.).
El modleo Poisson es una distribución de probabilidad discreta que se utiliza para modelar la ocurrencia de eventos en un intervalo de tiempo o espacio, donde los eventos son independientes. La función de masa de probabilidad es:
\[ P(X = x) = \frac{{e^{-\lambda} \cdot \lambda^x}}{{x!}}\;\; x=0,1,2,3,... \]
Donde:
- \(x\) es el número de eventos que
queremos modelar.
- \(\lambda\) es la tasa de eventos por
unidad de tiempo o espacio.
dpois() del paquete base para
calcular la PMF de la distribución de Poisson. Aquí hay un ejemplo:
set.seed(123)
# Parámetros de la distribución de Poisson
tasa_eventos <- 4 # Tasa de eventos por unidad de tiempo o espacio
num_muestras <- 1000 # Número de muestras a generar
# Simular datos de una distribución de Poisson
datos_poisson <- rpois(num_muestras, lambda = tasa_eventos)
# Ver los primeros 10 valores generados
head(datos_poisson)
## [1] 3 6 3 6 7 1
Tabla2 <- as.data.frame(table(datos_poisson) / 1000)
# Calcular la función de probabilidad de Poisson
x <- 0:max(datos_poisson)
pmf_poisson <- dpois(x, lambda = tasa_eventos)
plot(pmf_poisson,type="h",xlab="k",ylab="P(X=k)",main="Función de Probabilidad Poisson",ylim=c(0,0.5),lwd = 2,col="blue")
# Agregar la simulación como líneas rojas al gráfico
lines(Tabla2$datos_poisson, Tabla2$Freq, type = "h", lwd = 2, col = "red")
# Agregar una leyenda
legend("topright", legend = c("Función de Probabilidad Poisson", "Simulación"),
col = c("blue", "red"), lwd = c(1, 2), bty = "n")
La media para los datos simulados es de: 3.99.
Mientras que el valor esperado es: 4.
Es un modelo de probabilidad que se utiliza para describir un conjunto de valores donde todos los valores en un intervalo tienen la misma densidad.
La función de densidad de probabilidad es:
\[ f(x) = \begin{cases} \frac{1}{b-a} & \text{si } a \leq x \leq b \\ 0 & \text{en otro caso} \end{cases} \]
Donde:
- \(a\) es el límite inferior del
intervalo.
- \(b\) es el límite superior del
intervalo.
En R, puedes utilizar la función dunif().
# Parámetros de la distribución uniforme continua
limite_inferior <- 2
limite_superior <- 5
tamano_muestra <- 10000
# Generar una muestra de datos
datos_simulados <- runif(tamano_muestra, min = limite_inferior, max = limite_superior)
# Crear un rango de valores x
x <- seq(limite_inferior, limite_superior, length.out = 100)
# Calcular la densidad de probabilidad teórica
densidad_teorica <- dunif(x, min = limite_inferior, max = limite_superior)
# Calcular la densidad de probabilidad a partir de los datos simulados
densidad_simulada <- density(datos_simulados)
# Crear un gráfico de comparación de densidades utilizando gráficos base
plot(x, densidad_teorica, type = "l", col = "blue", lty = 1, xlab = "X", ylab = expression(f(x)), main = "Comparación de Densidades")
lines(densidad_simulada$x, densidad_simulada$y, col = "red", lty = 2)
legend("topright", legend = c("Teórica", "Simulada"), col = c("blue", "red"), lty = c(1, 2),bty="n")
La media para los datos simulados es de: 3.49.
Mientras que el valor esperado es: 3.5.
Es un modelo de probabilidad continua que modela el tiempo entre eventos de un proceso de Poisson. Su función de densidad de probabilidad es:
\[ f(x;\lambda) = \lambda e^{-\lambda x}\;\; \lambda>0\;\; x>0 \]
Donde:
- \(\lambda\) (lambda) es el parámetro
de tasa, que representa la tasa de eventos por unidad de tiempo. Cuanto
mayor sea \(\lambda\), más “aguda” será
la distribución.
Nota:La distribución exponencial modela el tiempo entre eventos sucesivos en un proceso de Poisson. Es decir, si tienes un proceso de Poisson en el que los eventos ocurren de manera aleatoria con una tasa promedio de \(\lambda\) eventos por unidad de tiempo, entonces la distribución exponencial modela cuánto tiempo debes esperar hasta que ocurra el próximo evento.
En R, puedes simular una distribución exponencial utilizando la
función rexp().
set.seed(1000)
# Parámetro de tasa lambda
lambda <- 0.5
# Número de valores a generar
n <- 1000
# Generar valores aleatorios de una distribución exponencial
simulacion <- rexp(n, rate = lambda)
# Crear un histograma de la simulación
hist(simulacion, breaks = 30, freq = FALSE, main = "Simulación de Distribución Exponencial", xlab = "Valores Simulados",ylim=c(0,1))
# Calcular la densidad de probabilidad teórica
x <- seq(0, max(simulacion), length = 100)
densidad_teorica <- lambda * exp(-lambda * x)
# Superponer la densidad teórica en el gráfico
lines(x, densidad_teorica, col = "red", lw = 2)
# Agregar leyenda al gráfico
legend("topright", legend = c("Simulación", "Densidad Teórica"), col = c("black", "red"), lwd = c(1, 2),bty="n")
La media para los datos simulados es de: 2.01.
Mientras que el valor esperado es: 2.
También conocida como la distribución gaussiana, es una de las distribuciones de probabilidad más importantes en estadísticas y análisis de datos. Se caracteriza por su forma de campana y está completamente definida por dos parámetros: la media (\(\mu\)) y la desviación estándar (\(\sigma\)).
La función de densidad de probabilidad de la distribución normal es:
\[ f(x | \mu, \sigma) = \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x - \mu)^2}{2\sigma^2}} \]
Donde:
- \(\mu\) es la media de la
distribución.
- \(\sigma\) es la desviación estándar
de la distribución.
En R, puedes calcular la función de densidad de probabilidad de una
distribución normal utilizando la función dnorm().
# Parámetros de la distribución normal
media <- 2
desviacion_estandar <- 1
tamano_muestra <- 10000
# Generar una muestra de datos
datos_simulados <- rnorm(tamano_muestra, mean = media, sd = desviacion_estandar)
# Crear un rango de valores x
x <- seq(media - 4 * desviacion_estandar, media + 4 * desviacion_estandar, length.out = 400)
# Calcular la densidad de probabilidad teórica
densidad_teorica <- dnorm(x, mean = media, sd = desviacion_estandar)
# Calcular la densidad de probabilidad a partir de los datos simulados
densidad_simulada <- density(datos_simulados)
# Crear un gráfico de comparación de densidades utilizando gráficos base
plot(x, densidad_teorica, type = "l", col = "blue", lty = 1, xlab = "Valor", ylab = "Densidad de Probabilidad", main = "Comparación de Densidades")
lines(densidad_simulada$x, densidad_simulada$y, col = "red", lty = 2)
legend("topright", legend = c("Teórica", "Simulada"), col = c("blue", "red"), lty = c(1, 2),bty="n")
La media para los datos simulados es de: 2.
Mientras que el valor esperado es: 2.