Una empresa de servicio técnico recibe, en promedio, 5 solicitudes de reparación por hora. Suponiendo que el número de solicitudes sigue una distribución de Poisson, realiza las siguientes actividades:
Calcula la probabilidad de que en una hora lleguen exactamente 3 solicitudes usando la fórmula de la distribución de Poisson. Expresa el resultado como \(P(𝑋=3)\)
\[P(X=3) = \dfrac{5^{3}}{3!} \exp{\{-5 \}} = 0.1403739\]
5^3/factorial(3)*exp(-5)
[1] 0.1403739
f3 =dpois(3,5)
Genera una muestra aleatoria de tamaño n = 1000 con rpois(n, lambda = 5). Calcula la frecuencia relativa para \(𝑋=3\) (\(f_n(𝑋=3)\)). Compara e interpreta el resultado frente a la probabilidad teórica.
# set.seed(1234)
n=1000
x = rpois(n,5)
fn3 =sum(as.numeric(x==3))/n
cat("fn(3) =", fn3)
fn(3) = 0.135
f3 - fn3
[1] 0.005373896
# library(dplyr)
m =100 # numero de muestras
n = 1000 # tamaño de la muestra
y = rpois(m*n,5)
y = as.numeric(y==3) %>% # asigna 1 cuando es 3 y 0 en cualquier otro caso
matrix(ncol = n)
fx3 = apply(y, 1, sum)/n
plot(1:m, fx3, las =1, xlab = "número de la muestra")
abline(h=0.1403739 , col ="red")
mean(fx3)
[1] 0.14057
# library(ggplot2)
# library(dplyr)
# set.seed(123) # Para reproducibilidad
m <- 100 # Número de muestras
n <- 1000 # Tamaño de la muestra
y <- rpois(m * n, 5)
y <- as.numeric(y == 3) %>% matrix(ncol = n)
fx3 <- apply(y, 1, mean)
# Crear un dataframe para ggplot
df <- data.frame(
muestra = 1:m,
proporcion = fx3
)
# Crear el gráfico
ggplot(df, aes(x = muestra, y = proporcion)) +
geom_point(color = "blue", alpha = 0.6) + # Puntos con transparencia
geom_line(color = "blue", alpha = 0.4) + # Línea que conecta los puntos
geom_hline(yintercept = 0.1403739, color = "red", linetype = "dashed") + # Línea de referencia
labs(
title = "Proporción de valores iguales a 3 en cada muestra",
x = "Número de la muestra",
y = "Proporción"
) +
theme_minimal() # Estilo limpio y moderno
Genera muestras aleatorias con tamaños: 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000.
Calcula la frecuencia relativa de \(𝑋=3\) para cada tamaño.
Construye un gráfico de dispersión: Eje X: Indexación (1 al 20) por cada tamaño muestral. Eje Y: Frecuencias relativas \(f_n(𝑋=3)\) Dibuja la línea en \(𝑃(𝑋=3)\) y describe si aparece una tendencia.
# Definir los tamaños de muestra
tam_muestras <- c(5, 10, 20, 30, 40, 50, 60, 70, 80, 90,
100, 200, 300, 400, 500, 600, 700, 800, 900, 1000)
# Generar la muestra completa
# set.seed(123) # Para reproducibilidad
n <- 1000
z <- rpois(n, 5)
# Calcular las medias muestrales
medias_muestrales <- sapply(tam_muestras, function(t) mean(z[1:t]))
# Crear un dataframe para mejor visualización
df_medias <- data.frame(
tamaño_muestra = tam_muestras,
media_muestral = medias_muestrales
)
# Imprimir resultados
print(df_medias)
tamaño_muestra media_muestral
1 5 4.400000
2 10 5.000000
3 20 4.600000
4 30 4.933333
5 40 4.775000
6 50 4.660000
7 60 4.766667
8 70 4.771429
9 80 4.837500
10 90 4.744444
11 100 4.770000
12 200 4.775000
13 300 4.853333
14 400 4.845000
15 500 4.870000
16 600 4.851667
17 700 4.902857
18 800 4.895000
19 900 4.940000
20 1000 4.928000
# Visualización con ggplot2
# library(ggplot2)
ggplot(df_medias, aes(x = tamaño_muestra, y = media_muestral)) +
geom_point(color = "blue", size = 2) +
geom_line(color = "blue", alpha = 0.5) +
geom_hline(yintercept = 5, color = "red", linetype = "dashed") + # Línea esperada para λ = 5
labs(title = "Convergencia de la Media Muestral",
x = "Tamaño de la muestra",
y = "Media muestral") +
theme_minimal()
Genera 100 muestras de tamaño n = 1000. Calcula el promedio muestral de solicitudes en cada muestra. Construye un gráfico de dispersión: Eje X: Indexación por cada muestra (1 a 100). Eje Y: Promedios muestrales. Traza la línea horizontal en la media teórica (\(\lambda =5\)) y analiza la tendencia.
n =1000
m =100
s = rpois(n*m, 5) %>%
matrix(ncol = n)
ms = apply(s, 1, mean)
plot(1:100, ms, las=1)
abline(h=5, col= "red")
Genera muestras aleatorias con tamaños: 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000. Calcula el promedio muestral para cada tamaño. Construye un gráfico de dispersión: Eje X: Indexación (1 al 20) por cada tamaño muestral. Eje Y: Promedios muestrales. Dibuja la línea horizontal en la media teórica (\(\lambda =5\)) y compara si el promedio se aproxima a medida que crece el tamaño.
m= 100
n= 1000
p = rpois(m*n,5) %>%
matrix(ncol = n)
m5 = p[,1:5] ; mx5 =apply(m5, 1, mean)
m10 = p[,1:10] ; mx10 =apply(m10, 1, mean)
m20 = p[,1:20] ; mx20 =apply(m20, 1, mean)
# Genera muestras aleatorias con tamaños: 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000.
library(dplyr)
# set.seed(1234)
n <- 1000
m <- 100
# Generar la matriz de Poisson
p <- matrix(rpois(n * m, 5), ncol = n)
# Vector con los tamaños de muestra
sample_sizes <- c(5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000)
# Aplicar mean sobre diferentes tamaños de muestra usando lapply y convertir a una lista nombrada
means_list <- lapply(sample_sizes, function(size) apply(p[, 1:size], 1, mean))
# Convertir la lista en un dataframe
means_df <- as.data.frame(means_list)
names(means_df) <- paste0(sample_sizes)
boxplot(means_df, las =1)
abline(h=5, col="red")
apply(means_df, 2, mean)
5 10 20 30 40 50 60 70
5.194000 5.066000 4.993500 5.016667 4.987500 5.002800 5.004333 5.014429
80 90 100 200 300 400 500 600
5.016875 5.015222 5.008600 5.001750 5.011167 5.011100 5.007100 5.004417
700 800 900 1000
5.008443 5.004663 5.001556 5.000870
apply(means_df, 2, sd)
5 10 20 30 40 50 60
1.10333013 0.76014618 0.50435753 0.39566960 0.35411542 0.28014455 0.25395436
70 80 90 100 200 300 400
0.22162510 0.22227144 0.20997482 0.21145012 0.15213527 0.12618762 0.10699955
500 600 700 800 900 1000
0.09943207 0.08821473 0.07941164 0.07615314 0.06877566 0.06357127
Condiciones de entrega La solución se debe presentar en un archivo HTML generado mediante RMarkdown (.Rmd).
Responde a los ejercicios en orden (de la a hasta la f).
Por cada ejercicio, incluye:
Código R: Con comentarios explicativos. Gráficos y cálculos: Según lo solicitado. Interpretación: Explicación clara de los resultados obtenidos. El archivo .Rmd y el HTML generado deben entregarse juntos.
Establece la semilla con tu código de estudiante: set.seed(codigo).
Asegúrate de que todos los códigos compilen correctamente antes de la entrega.