library(ggplot2)
library(flextable)
library(dplyr)
El gerente del almacén de una fábrica ha construido la siguiente distribución de probabilidad para la demanda diaria (número de veces que se usa) de una herramienta en particular.
Si P(Y = 0) = 0.1, P(Y = 1) = 0.5 y P(Y = 2) = 0.4 y le cuesta a la fábrica $10 cada vez que la herramienta se usa, encuentre la varianza del costo diario por usar la herramienta.
Elabore el dataframe y la gráfica de la función de probabilidad.
y_vals <- c(0, 1, 2)
prob_y <- c(0.1, 0.5, 0.4)
costo_por_uso <- 10
X <- y_vals * costo_por_uso
tabla_ej2 <- data.frame(
Y = y_vals,
Probabilidad = prob_y,
Costo_X = X
)
flextable(tabla_ej2) %>%
set_table_properties(layout = "autofit") %>%
theme_vanilla()
Y | Probabilidad | Costo_X |
|---|---|---|
0 | 0.1 | 0 |
1 | 0.5 | 10 |
2 | 0.4 | 20 |
Gráfica de la función de probabilidad
ggplot(tabla_ej2, aes(x = Y, y = Probabilidad)) +
geom_point(col = "darkblue", size = 4) +
geom_segment(aes(x = Y, xend = Y, y = 0, yend = Probabilidad),
linetype = "dashed", col = "darkblue") +
labs(title = "Función de Probabilidad de la Demanda",
x = "Número de veces que se usa (Y)",
y = "P(Y = y)") +
theme_minimal()
Cálculo de la varianza del costo diario
E_X <- sum(X * prob_y)
E_X2 <- sum(X^2 * prob_y)
Var_X <- E_X2 - E_X^2
cat("E(X) = $", E_X, "\n")
## E(X) = $ 13
cat("E(X²) =", E_X2, "\n")
## E(X²) = 210
cat("Varianza del costo diario =", Var_X, "\n")
## Varianza del costo diario = 41
Respuesta: La varianza del costo diario es 41
La probabilidad de que un paciente se recupere de una enfermedad estomacal es 0.51. Suponga que se sabe que 1000 personas han contraído la enfermedad. ¿Cuál es la probabilidad de que al menos 340 pero no más de 480 se recuperen?
Elabore la gráfica.
n <- 1000
p <- 0.51
prob_ej3 <- pbinom(480, size = n, prob = p) - pbinom(339, size = n, prob = p)
cat("P(340 ≤ X ≤ 480) =", round(prob_ej3, 6))
## P(340 ≤ X ≤ 480) = 0.031022
Aproximación por distribución normal
Como n es grande, podemos usar la aproximación normal:
mu <- n * p
sigma <- sqrt(n * p * (1 - p))
cat("Media μ =", mu, "\n")
## Media μ = 510
cat("Desviación estándar σ =", round(sigma, 4), "\n")
## Desviación estándar σ = 15.8082
prob_normal <- pnorm(480.5, mean = mu, sd = sigma) - pnorm(339.5, mean = mu, sd = sigma)
cat("\nUsando aproximación normal:\n")
##
## Usando aproximación normal:
cat("P(340 ≤ X ≤ 480) ≈", round(prob_normal, 6))
## P(340 ≤ X ≤ 480) ≈ 0.031012
Gráfica de la distribución normal aproximada
x_graf <- seq(mu - 4*sigma, mu + 4*sigma, by = 1)
y_graf <- dnorm(x_graf, mean = mu, sd = sigma)
x_area <- seq(340, 480, by = 1)
y_area <- dnorm(x_area, mean = mu, sd = sigma)
plot(x_graf, y_graf, type = "l", col = "darkred", lwd = 2,
main = "Distribución Normal - Recuperación de pacientes",
xlab = "Número de personas recuperadas",
ylab = "Densidad")
polygon(c(340, x_area, 480), c(0, y_area, 0),
col = rgb(1, 0, 0, 0.3), border = NA)
La función de densidad de la variable aleatoria continua X, el número total de horas que una familia utiliza una aspiradora durante un año, en unidades de 100 horas se muestra adjunta.
a) Grafique la función de densidad
f_x_ej4 <- function(x) {
ifelse(x > 0 & x < 1, x,
ifelse(x >= 1 & x < 2, 2 - x, 0))
}
x_vals_ej4 <- seq(0, 2, by = 0.01)
y_vals_ej4 <- sapply(x_vals_ej4, f_x_ej4)
df_ej4 <- data.frame(x = x_vals_ej4, y = y_vals_ej4)
ggplot(df_ej4, aes(x = x, y = y)) +
geom_line(col = "purple", size = 1.2) +
geom_area(fill = "purple", alpha = 0.3) +
labs(title = "Función de Densidad - Uso de Aspiradora",
x = "Horas (en unidades de 100)",
y = "f(x)") +
theme_minimal()
b) Calcule el número promedio que las familias utilizan sus aspiradoras
integrand_1 <- function(x) x * x
E_X_parte1 <- integrate(integrand_1, lower = 0, upper = 1)$value
integrand_2 <- function(x) x * (2 - x)
E_X_parte2 <- integrate(integrand_2, lower = 1, upper = 2)$value
E_X_total <- E_X_parte1 + E_X_parte2
cat("E(X) =", round(E_X_total, 4), "\n")
## E(X) = 1
cat("El número promedio de uso es:", round(E_X_total, 4), "unidades de 100 horas\n")
## El número promedio de uso es: 1 unidades de 100 horas
cat("Es decir:", round(E_X_total * 100, 2), "horas por año")
## Es decir: 100 horas por año
Respuesta: El número promedio que las familias utilizan sus aspiradoras es 1 unidad de 100 horas = 100 horas por año
Llegan autos a una caseta de pago de peaje de acuerdo con un proceso de Poisson con media de 80 autos por hora. Si el empleado hace una llamada telefónica de 1 minuto, ¿cuál es la probabilidad de que al menos 1 auto llegue durante la llamada?
lambda_minuto <- 80 / 60
cat("Lambda por minuto:", round(lambda_minuto, 4), "\n")
## Lambda por minuto: 1.3333
prob_0 <- dpois(0, lambda = lambda_minuto)
prob_al_menos_1 <- 1 - prob_0
cat("P(X = 0) =", round(prob_0, 6), "\n")
## P(X = 0) = 0.263597
cat("P(X ≥ 1) =", round(prob_al_menos_1, 6))
## P(X ≥ 1) = 0.736403
Respuesta: La probabilidad de que al menos 1 auto llegue durante la llamada es aproximadamente 0.7364
Se observó que la cantidad semanal de dinero gastado por una compañía durante largo tiempo en mantenimiento y reparaciones, está normalmente distribuida en forma aproximada con media de $400 y desviación estándar de $20.
Si están presupuestados $450 para la próxima semana, ¿cuál es la probabilidad de que los costos reales rebasen la cantidad presupuestada?
Elabore la gráfica y la región solicitada.
mu_ej6 <- 400
sigma_ej6 <- 20
prob_ej6 <- pnorm(450, mean = mu_ej6, sd = sigma_ej6, lower.tail = FALSE)
cat("P(X > 450) =", round(prob_ej6, 6))
## P(X > 450) = 0.00621
x_vals_ej6 <- seq(mu_ej6 - 4*sigma_ej6, mu_ej6 + 4*sigma_ej6, by = 0.5)
y_vals_ej6 <- dnorm(x_vals_ej6, mean = mu_ej6, sd = sigma_ej6)
df_ej6 <- data.frame(x = x_vals_ej6, y = y_vals_ej6)
x_area_ej6 <- seq(450, mu_ej6 + 4*sigma_ej6, by = 0.5)
y_area_ej6 <- dnorm(x_area_ej6, mean = mu_ej6, sd = sigma_ej6)
df_area_ej6 <- data.frame(x = x_area_ej6, y = y_area_ej6)
ggplot(df_ej6, aes(x = x, y = y)) +
geom_line(col = "darkgreen", size = 1.2) +
geom_area(data = df_area_ej6, aes(x = x, y = y),
fill = "darkgreen", alpha = 0.4) +
geom_vline(xintercept = 450, linetype = "dashed", col = "red") +
annotate("text", x = 450, y = max(y_vals_ej6)*0.8,
label = "$450", col = "red", size = 5) +
labs(title = "Distribución Normal - Costos de Mantenimiento",
subtitle = paste("P(X > 450) =", round(prob_ej6, 6)),
x = "Costo ($)",
y = "Densidad") +
theme_minimal()
Respuesta: La probabilidad de que los costos rebasen los $450 es 0.00621
El operador de una estación de bombeo ha observado que la demanda de agua durante las primeras horas de la tarde tiene una distribución aproximadamente exponencial con media de 100 pcs (pcs cúbicos por segundo).
Encuentre la probabilidad de que la demanda sea mayor que 200 pcs durante las primeras horas de la tarde en un día seleccionado al azar.
lambda_ej7 <- 1/100
prob_ej7 <- pexp(200, rate = lambda_ej7, lower.tail = FALSE)
cat("Media =", 100, "pcs\n")
## Media = 100 pcs
cat("Tasa λ =", lambda_ej7, "\n")
## Tasa λ = 0.01
cat("P(X > 200) =", round(prob_ej7, 6))
## P(X > 200) = 0.135335
x_vals_ej7 <- seq(0, 500, by = 1)
y_vals_ej7 <- dexp(x_vals_ej7, rate = lambda_ej7)
df_ej7 <- data.frame(x = x_vals_ej7, y = y_vals_ej7)
x_area_ej7 <- seq(200, 500, by = 1)
y_area_ej7 <- dexp(x_area_ej7, rate = lambda_ej7)
df_area_ej7 <- data.frame(x = x_area_ej7, y = y_area_ej7)
ggplot(df_ej7, aes(x = x, y = y)) +
geom_line(col = "darkorange", size = 1.2) +
geom_area(data = df_area_ej7, aes(x = x, y = y),
fill = "darkorange", alpha = 0.4) +
geom_vline(xintercept = 200, linetype = "dashed", col = "red") +
labs(title = "Distribución Exponencial - Demanda de Agua",
subtitle = paste("P(X > 200) =", round(prob_ej7, 4)),
x = "Demanda (pcs)",
y = "Densidad") +
theme_minimal()
Respuesta: La probabilidad de que la demanda sea mayor que 200 pcs es 0.1353 o aproximadamente 13.53%