stats de R
(base)Nota: Este documento responde estrictamente cada ítem del taller usando únicamente funciones de la librería base
stats(ya cargada por defecto en R). No se instalan ni cargan paquetes adicionales.
A. El propietario de una farmacia sabe que, en promedio, llegan 100 personas por hora. Encuentren:
La probabilidad de que, en un período dado de tres minutos, nadie entre a la farmacia.
La probabilidad de que, en un período de 15 minutos, entren más de 5 personas a la farmacia.
La probabilidad de que entren menos de 20 personas en 10 de las siguientes 24 horas.
La tasa es \(\lambda = 100\) por hora. Ajustamos \(\lambda\) al intervalo solicitado.
En 3 minutos (\(3/60\) horas), \(\lambda_{3m} = 100 \times (3/60) = 5\). Buscamos \(P(X=0)\) con \(X \sim \text{Poisson}(5)\).
lambda_h <- 100 # por hora
lambda_3m <- lambda_h * (3/60) # 3 minutos -> 5
p_A1 <- dpois(0, lambda_3m) # P(X=0 | λ=5)
cat("λ (3 min) =", lambda_3m, "\nP(X=0) =", fmt(p_A1, 6), "\n")
## λ (3 min) = 5
## P(X=0) = 0.006738
Resultado A.1: \(P(X=0) = 0.006738\).
En 15 minutos (\(15/60\) horas), \(\lambda_{15m} = 100 \times (15/60) = 25\). Queremos \(P(X>5)=1-P(X\le 5)\).
lambda_15m <- lambda_h * (15/60) # 25
p_leq_5 <- ppois(5, lambda_15m) # P(X <= 5)
p_A2 <- 1 - p_leq_5 # P(X > 5)
cat("λ (15 min) =", lambda_15m, "\nP(X<=5) =", fmt(p_leq_5, 6),
"\nP(X>5) =", fmt(p_A2, 6), "\n")
## λ (15 min) = 25
## P(X<=5) = 0.000001
## P(X>5) = 0.999999
Resultado A.2: \(P(X>5) = 0.999999\).
Sea \(X_i \sim \text{Poisson}(100)\) el conteo por hora. Definimos \(p = P(X_i < 20) = P(X_i \le 19)\) y \(Y \sim \text{Binomial}(n=24, p)\) el número de horas (entre 24) con menos de 20 llegadas. Buscamos \(P(Y=10)\).
# Probabilidad por hora de observar menos de 20 (λ=100)
p_hour <- ppois(19, lambda_h) # P(X <= 19 | λ=100)
# Variable Y ~ Binomial(24, p_hour)
p_A3 <- dbinom(10, size = 24, prob = p_hour)
cat("p = P(X<20 | λ=100) =", fmt(p_hour, 10), "\n",
"P(Y=10) con Y~Binom(24,p) =", fmt(p_A3, 10), "\n")
## p = P(X<20 | λ=100) = 0.0000000000
## P(Y=10) con Y~Binom(24,p) = 0.0000000000
Resultado A.3: \(p =
P(X<20) = 0.0000000000\), y \(P(Y=10) = 0.0000000000\).
> Interpretación: \(p\) es
extremadamente pequeño (evento rarísimo); en consecuencia, la
probabilidad de observar exactamente 10 horas \(P(Y=10)\) de las siguientes 24 horas con
menos de 20 personas también resulta prácticamente nula.
B. La vida promedio de cierto dispositivo médico es 10 años con una desviación estándar de 2 años. Cuando supera la vida promedio, este dispositivo genera molestias que pueden afectar la concentración de quienes laboran cerca a éste. En la institución se reemplazarán los dispositivos que fallen dentro de un periodo T fijo y no los enviará a reponer. Si está dispuesto a reemplazar sólo el 3% de los dispositivos que fallan, ¿qué duración como mínimo tendrán estos dispositivos para ser reemplazados si fallan? Supongan que la distribución de la duración del dispositivo sigue una distribución normal
La institución reemplaza dispositivos que fallen dentro de un periodo fijo \(t^*\) y desea que sea solo el 3%. Hallar \(t^*\) tal que \(P(T \le t^*) = 0.03\).
mu <- 10
sigma <- 2
t_star <- qnorm(0.03, mean = mu, sd = sigma)
cat("t* (cuantil 3%) =", fmt(t_star, 6), "años\n")
## t* (cuantil 3%) = 6.238413 años
Resultado B: \(t^* =
6.238413 años\).
> Interpretación: Se reemplazarán como máximo el 3% de
dispositivos que fallen antes de 6.24 años.
C. Una justificación teórica basada en el mecanismo de falla de cierto material, sirve de fundamento a la suposición de que la resistencia a la ductilidad X de un material tienen una distribución log-normal. Supongan que los parámetros son μ= 5 y σ= 0.1
Se interpreta que \(\log X \sim \mathcal{N}(\mu=5, \sigma^2=0.1^2)\).
Recordatorios para \(X \sim \text{Lognormal}(\mu, \sigma)\): - \(E(X) = \exp(\mu + \sigma^2/2)\) - \(\mathrm{Var}(X) = \left[\exp(\sigma^2)-1\right]\exp(2\mu + \sigma^2)\)
mu_l <- 5
sd_l <- 0.1
EX <- exp(mu_l + (sd_l^2)/2)
VarX <- (exp(sd_l^2) - 1) * exp(2*mu_l + sd_l^2)
cat("E(X) =", fmt(EX, 6), "\nVar(X) =", fmt(VarX, 6), "\n")
## E(X) = 149.157083
## Var(X) = 223.594464
Resultado C.1: la resistencia promedio
esperada es de: \(E(X)=149.157083\) con una dispersión de
\({Var}(X)=223.594464\).
> Interpretación: Valores esperados y variabilidad
en la escala original de \(X\).
p_gt_120 <- 1 - plnorm(120, meanlog = mu_l, sdlog = sd_l)
cat("P(X > 120) =", fmt(p_gt_120, 8), "\n")
## P(X > 120) = 0.98321014
Resultado C.2: la probabilidad de que la resistencia supere 120 (en las unidades del ensayo) es de: \(P(X>120)=0.98321014\).
La mediana divide la población en dos mitades: 50% de las piezas tendrán resistencia por debajo de ese valor y 50% por encima. Para una log-normal, \(\mathrm{Mediana}(X) = \exp(\mu)\).
medianaX <- exp(mu_l)
cat("Mediana(X) =", fmt(medianaX, 6), "\n")
## Mediana(X) = 148.413159
Resultado C.3: \(\mathrm{Mediana}(X)=148.413159\).
\[\mu_{\text{pob}}=\mathbb{E}[X]=\exp\!\left(\mu_\ell+\frac{\sigma_\ell^2}{2}\right),\quad \sigma_{\text{pob}}=\sqrt{\mathrm{Var}(X)}=\sqrt{\left(e^{\sigma_\ell^2}-1\right)e^{2\mu_\ell+\sigma_\ell^2}}.\]
set.seed(123)
# Parámetros log-normales del literal C (escala log)
mu_l <- 5
sd_l <- 0.1
# Parámetros poblacionales en la escala original
mu_pop <- exp(mu_l + (sd_l^2)/2)
sd_pop <- sqrt( (exp(sd_l^2) - 1) * exp(2*mu_l + sd_l^2) )
# Generador de la "población" (base R: rlnorm)
rpop <- function(m) rlnorm(m, meanlog = mu_l, sdlog = sd_l)
# Configuración de simulación
B <- 10000. #número de simulaciones
n_vals <- c(5, 30, 100)
sim_xbar <- function(n, B){
xb <- replicate(B, mean(rpop(n)))
mu_xb <- mu_pop
sd_xb <- sd_pop / sqrt(n)
hist(xb, probability = TRUE, breaks = "FD",
main = paste0("TCL con Log-normal (n=", n, ", B=", B, ")"),
xlab = expression(bar(X)),
col = "gray90", border = "gray40")
lines(density(xb), lwd = 2)
xs <- seq(min(xb), max(xb), length.out = 400)
lines(xs, dnorm(xs, mean = mu_xb, sd = sd_xb), lwd = 2, lty = 2)
c(Media_emp = mean(xb), SD_emp = sd(xb),
Media_teo = mu_xb, SD_teo = sd_xb)
}
res_n5 <- sim_xbar(5, B)
res_n30 <- sim_xbar(30, B)
res_n100 <- sim_xbar(100, B)
rbind(`n=5`=res_n5, `n=30`=res_n30, `n=100`=res_n100)
## Media_emp SD_emp Media_teo SD_teo
## n=5 149.1313 6.634752 149.1571 6.687219
## n=30 149.1919 2.728188 149.1571 2.730046
## n=100 149.1334 1.505421 149.1571 1.495308
Interpretación TCL (alineada con el punto C): Con \(X\) log-normal (asimétrica y no normal), la distribución empírica de \(\bar{X}\) se aproxima a una normal con media \(\mu_{\text{pob}}\) y DE \(\sigma_{\text{pob}}/\sqrt{n}\). Para \(n\) pequeño (p. ej., 5) aún se aprecia asimetría; para \(n=30\) y \(n=100\) la aproximación normal es muy buena, y las estimaciones empíricas (media/DE de \(\bar{X}\)) concuerdan con los valores teóricos.
Referencia de funciones d/p/q/r por distribución en R:Distribuciones de probabilidad en R (ULPGC): https://estadistica-dma.ulpgc.es/cursoR4ULPGC/10-distribProbabilidad.html |
dpois,
ppoisqnorm (cuantil requerido al
3%)plnorm,
qlnorm (aquí usamos fórmula para \(E(X)\) y plnorm para la
cola)dbinom para el conteo de
horas “con menos de 20”rexp,
mean, hist, density,
dnormTodas pertenecen a stats o
base; no se usa ningún paquete adicional.