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 \]
[1] 0.1403739
P(X=3) = 0.1403739
[1] 0.1413
Compara e interpreta el resultado frente a la probabilidad teórica.
dpois(3,5)-fx3
[1] -0.0009261042
Genera 100 muestras aleatorias de tamaño n = 1000.
m= 100 # numero de muestras
n=1000 # tamaño de la muestra
y = rpois(m*n,5)
y3 = as.numeric(y ==3)
m = matrix(y3, ncol = n)
dim(m)
[1] 100 1000
Calcula la frecuencia relativa para 𝑋=3 en cada muestra.
fn3 = apply(m, 1, sum)/n
Construye un gráfico de dispersión: Eje X: Indexación por cada muestra (1 a 100). Eje Y: Frecuencias relativas 𝑓𝑛(𝑋=3) Dibuja una línea horizontal en 𝑃(𝑋=3) y comenta si existe una tendencia.
plot(1:100, fn3, las=1)
abline(h=0.1403739, 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 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 𝑓𝑛(𝑋=3)
Dibuja la línea en 𝑃(𝑋=3) y describe si aparece una tendencia.
set.seed(1234)
z = as.numeric(rpois(1000,5)==3)
fn=c(
sum(z[1:5])/5,
sum(z[1:10])/10,
sum(z[1:20])/20,
sum(z[1:30])/30,
sum(z[1:40])/40,
sum(z[1:50])/50,
sum(z[1:60])/60,
sum(z[1:70])/70,
sum(z[1:80])/80,
sum(z[1:90])/90,
sum(z[1:100])/100,
sum(z[1:200])/200,
sum(z[1:300])/300,
sum(z[1:400])/400,
sum(z[1:500])/500,
sum(z[1:600])/600,
sum(z[1:700])/700,
sum(z[1:800])/800,
sum(z[1:900])/900,
sum(z[1:1000])/1000)
plot(1:20, fn, las=1, xlab = " número de muestra")
abline(h=0.1403739, col ="red")
set.seed(1234)
# Generar la secuencia binaria
z <- as.numeric(rpois(1000, 5) == 3)
# Crear los tamaños de muestra
n_values <- c(seq(5, 100, 5), seq(200, 1000, 100))
# Calcular las proporciones acumuladas de manera vectorizada
fn <- sapply(n_values, function(n) mean(z[1:n]))
# Graficar los resultados
plot(seq_along(n_values), fn, las = 1, xlab = "Número de muestra", ylab = "Frecuencia relativa", type = "b", pch = 19)
abline(h = 0.1403739, col = "red")
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\)) y analiza la tendencia.
set.seed(1234)
s = rpois(100*1000, 5)
ms = matrix(s, ncol = 1000)
dim(ms)
[1] 100 1000
media = apply(ms, 1, mean)
plot(1:100, media, las=1)
abline(h=5, col="red")
Impacto del tamaño muestral en la media:
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.
library(dplyr)
Adjuntando el paquete: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
set.seed(1234)
n=1000
m= 1000
p = rpois(n*m,5) %>%
matrix( ncol = n)
dim(p)
[1] 1000 1000
# 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.
m5 = apply(p[,1:5],1, mean)
m10 = apply(p[,1:10],1, mean)
m20 = apply(p[,1:20],1, mean)
m30 = apply(p[,1:30],1, mean)
m40 = apply(p[,1:40],1, mean)
library(dplyr)
set.seed(1234)
n <- 1000
m <- 1000
# 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.013200 4.996800 5.013050 5.021167 5.002550 5.002860 5.001900 5.006986
80 90 100 200 300 400 500 600
5.009100 5.008044 5.003740 5.002570 5.000623 4.998790 5.002874 5.000837
700 800 900 1000
5.000121 5.000400 4.999782 4.999370
apply(means_df, 2, sd)
5 10 20 30 40 50 60
1.00695567 0.69588362 0.50110209 0.41183117 0.35791459 0.32323475 0.29266275
70 80 90 100 200 300 400
0.27284093 0.25591355 0.23938863 0.22647407 0.16193724 0.13117616 0.11177552
500 600 700 800 900 1000
0.09946355 0.09114937 0.08315122 0.07677542 0.07204963 0.06837388
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.