library(readxl)Warning: package 'readxl' was built under R version 4.3.3
library(readxl)Warning: package 'readxl' was built under R version 4.3.3
restaurante <- read_excel("C:/Users/MINEDUCYT/Desktop/CICLOII_2025/SEMINARIOII/Restaurante.xlsx")
head(restaurante)# A tibble: 6 × 9
Horario T Lunes Martes Miércoles Jueves Viernes Sábado Domingo
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 06:00 a. m. 0 0 0 0 0 0 0 0
2 07:00 a. m. 1 6 8 13 8 10 16 16
3 08:00 a. m. 2 11 12 12 15 18 14 10
4 09:00 a. m. 3 14 6 13 9 10 16 15
5 10:00 a. m. 4 7 7 9 7 8 16 8
6 11:00 a. m. 5 8 8 14 8 11 21 14
restaurante= restaurante[,c(3,4,5,6,7,8,9)]
head(restaurante)# A tibble: 6 × 7
Lunes Martes Miércoles Jueves Viernes Sábado Domingo
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 0 0 0 0 0 0 0
2 6 8 13 8 10 16 16
3 11 12 12 15 18 14 10
4 14 6 13 9 10 16 15
5 7 7 9 7 8 16 8
6 8 8 14 8 11 21 14
restaurante=data.frame(restaurante)
head(restaurante) Lunes Martes Miércoles Jueves Viernes Sábado Domingo
1 0 0 0 0 0 0 0
2 6 8 13 8 10 16 16
3 11 12 12 15 18 14 10
4 14 6 13 9 10 16 15
5 7 7 9 7 8 16 8
6 8 8 14 8 11 21 14
# Tus datos de la columna "Lunes"
restaurante_lunes <- c(0,6,11,14,7,8,9,11,8,10,7,11)
# Estimamos lambda como la media de los datos
lambda <- mean(restaurante_lunes)
lambda[1] 8.5
# Prueba de Kolmogorov-Smirnov para Poisson
resultado_ks <- ks.test(restaurante_lunes, "ppois", lambda)Warning in ks.test.default(restaurante_lunes, "ppois", lambda): ties should not
be present for the Kolmogorov-Smirnov test
resultado_ks
Asymptotic one-sample Kolmogorov-Smirnov test
data: restaurante_lunes
D = 0.21893, p-value = 0.613
alternative hypothesis: two-sided
El valor promedio de eventos es de 8.5 que es valor de lambda
La máxima diferencia (D) entre la distribución empirica y la de Poisson es aproximadamente un 21.9%, lo cual no es estadísticamente significativo según el p_value de 0.613 y que es mayor que 0.05.
H0: Los datos siguen una distribución de Poisson
H1: Los datos no siguen una distribución de Poisson.
Como p_value es de 0.613 y estos es mayor que 0.05, no rechazamos H0 por lo que los datos siguen una distribución de Poisson.
# Nombres de los días
dias <- c("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo")
# Aplicar la prueba a cada día
for (dia in dias) {
datos <- restaurante[[dia]]
lambda <- mean(datos)
cat("\n---", dia, "---\n")
print(lambda)
print(ks.test(datos, "ppois", lambda))
}
--- Lunes ---
[1] 8.5
Warning in ks.test.default(datos, "ppois", lambda): ties should not be present
for the Kolmogorov-Smirnov test
Asymptotic one-sample Kolmogorov-Smirnov test
data: datos
D = 0.21893, p-value = 0.613
alternative hypothesis: two-sided
--- Martes ---
[1] 7.416667
Warning in ks.test.default(datos, "ppois", lambda): ties should not be present
for the Kolmogorov-Smirnov test
Asymptotic one-sample Kolmogorov-Smirnov test
data: datos
D = 0.25671, p-value = 0.4077
alternative hypothesis: two-sided
--- Miércoles ---
[1] 10.83333
Warning in ks.test.default(datos, "ppois", lambda): ties should not be present
for the Kolmogorov-Smirnov test
Asymptotic one-sample Kolmogorov-Smirnov test
data: datos
D = 0.37346, p-value = 0.07036
alternative hypothesis: two-sided
--- Jueves ---
[1] 8.75
Warning in ks.test.default(datos, "ppois", lambda): ties should not be present
for the Kolmogorov-Smirnov test
Asymptotic one-sample Kolmogorov-Smirnov test
data: datos
D = 0.18805, p-value = 0.7898
alternative hypothesis: two-sided
--- Viernes ---
[1] 9
Warning in ks.test.default(datos, "ppois", lambda): ties should not be present
for the Kolmogorov-Smirnov test
Asymptotic one-sample Kolmogorov-Smirnov test
data: datos
D = 0.20599, p-value = 0.6886
alternative hypothesis: two-sided
--- Sábado ---
[1] 14.16667
Warning in ks.test.default(datos, "ppois", lambda): ties should not be present
for the Kolmogorov-Smirnov test
Asymptotic one-sample Kolmogorov-Smirnov test
data: datos
D = 0.24132, p-value = 0.4869
alternative hypothesis: two-sided
--- Domingo ---
[1] 11.83333
Warning in ks.test.default(datos, "ppois", lambda): ties should not be present
for the Kolmogorov-Smirnov test
Asymptotic one-sample Kolmogorov-Smirnov test
data: datos
D = 0.28689, p-value = 0.2767
alternative hypothesis: two-sided
Lunes
El valor promedio de eventos es de 8.5 que es valor de lambda
La máxima diferencia (D) entre la distribución empirica y la de Poisson es aproximadamente un 21.9%, lo cual no es estadísticamente significativo según el p_value de 0.613 y que es mayor que 0.05.
H0: Los datos siguen una distribución de Poisson
H1: Los datos no siguen una distribución de Poisson.
Como p_value es de 0.613 y estos es mayor que 0.05, no rechazamos H0 por lo que los datos siguen una distribución de Poisson.
Martes
La máxima diferencia (D) entre la distribución empirica y la de Poisson es aproximadamente un 25.67%, lo cual no es estadísticamente significativo según el p_value de 0.4077 y que es mayor que 0.05.
H0: Los datos siguen una distribución de Poisson
H1: Los datos no siguen una distribución de Poisson.
Como p_value es de 0.4077 y estos es mayor que 0.05, no rechazamos H0 por lo que los datos siguen una distribución de Poisson.
Miercoles
La máxima diferencia (D) entre la distribución empirica y la de Poisson es aproximadamente un 37.34%, lo cual no es estadísticamente significativo según el p_value de 0.07036 y que es mayor que 0.05.
H0: Los datos siguen una distribución de Poisson
H1: Los datos no siguen una distribución de Poisson.
Como p_value es de 0.07036 y estos es mayor que 0.05, no rechazamos H0 por lo que los datos siguen una distribución de Poisson.
Jueves
La máxima diferencia (D) entre la distribución empirica y la de Poisson es aproximadamente un 18.80%, lo cual no es estadísticamente significativo según el p_value de 0.7898 y que es mayor que 0.05.
H0: Los datos siguen una distribución de Poisson
H1: Los datos no siguen una distribución de Poisson.
Como p_value es de 0.7898 y estos es mayor que 0.05, no rechazamos H0 por lo que los datos siguen una distribución de Poisson.
Viernes
La máxima diferencia (D) entre la distribución empirica y la de Poisson es aproximadamente un 20.59%, lo cual no es estadísticamente significativo según el p_value de 0.6886 y que es mayor que 0.05.
H0: Los datos siguen una distribución de Poisson
H1: Los datos no siguen una distribución de Poisson.
Como p_value es de 0.6886 y estos es mayor que 0.05, no rechazamos H0 por lo que los datos siguen una distribución de Poisson.
Sabado
La máxima diferencia (D) entre la distribución empirica y la de Poisson es aproximadamente un 24.13%, lo cual no es estadísticamente significativo según el p_value de 0.4869 y que es mayor que 0.05.
H0: Los datos siguen una distribución de Poisson
H1: Los datos no siguen una distribución de Poisson.
Como p_value es de 0.4869 y estos es mayor que 0.05, no rechazamos H0 por lo que los datos siguen una distribución de Poisson.
Domingo
La máxima diferencia (D) entre la distribución empirica y la de Poisson es aproximadamente un 28.68%, lo cual no es estadísticamente significativo según el p_value de 0.2767 y que es mayor que 0.05.
H0: Los datos siguen una distribución de Poisson
H1: Los datos no siguen una distribución de Poisson.
Como p_value es de 0.2767y estos es mayor que 0.05, no rechazamos H0 por lo que los datos siguen una distribución de Poisson.
import pandas as pd
# Leer el archivo Excel
restaurante = pd.read_excel("Restaurante.xlsx")
restaurante = restaurante.iloc[:, 2:9]
# Ver las primeras filas
print(restaurante.head()) Lunes Martes Miércoles Jueves Viernes Sábado Domingo
0 0 0 0 0 0 0 0
1 6 8 13 8 10 16 16
2 11 12 12 15 18 14 10
3 14 6 13 9 10 16 15
4 7 7 9 7 8 16 8
import numpy as np
from scipy import stats
# Tus datos de la columna "Lunes"
restaurante_lunes = [0,6,11,14,7,8,9,11,8,10,7,11]
# Estimamos lambda como la media de los datos
lambda_est = np.mean(restaurante_lunes)
print(lambda_est)8.5
# Prueba de Kolmogorov-Smirnov para Poisson
resultado_ks = stats.kstest(restaurante_lunes, 'poisson', args=(lambda_est,))
# Imprimir el resultado de la prueba
print(resultado_ks)KstestResult(statistic=np.float64(0.21893043516048602), pvalue=np.float64(0.541708878626628), statistic_location=np.int64(7), statistic_sign=np.int8(-1))
Como el p_value fue de 0.54 y esto es mayo que 0.05 por lo que no se rechaza H0: los datos de Lunes se ajustan a una distribución Poisson.
import pandas as pd
import numpy as np
from scipy import stats
# Lista de días de la semana (columnas en tu Excel)
dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"]
# Recorrer cada día y aplicar la prueba KS
for dia in dias:
# Extraer los datos de ese día
datos = restaurante[dia].dropna()
# Calcular lambda (media)
lambda_est = np.mean(datos)
# Prueba Kolmogorov–Smirnov
resultado_ks = stats.kstest(datos, 'poisson', args=(lambda_est,))
# Mostrar resultados
print(f"\n Día: {dia}")
print(f"Lambda estimado: {lambda_est:.2f}")
print(f"KS Statistic: {resultado_ks.statistic:.4f}")
print(f"P-valor: {resultado_ks.pvalue:.4f}")
Día: Lunes
Lambda estimado: 8.50
KS Statistic: 0.2189
P-valor: 0.5417
Día: Martes
Lambda estimado: 7.42
KS Statistic: 0.2567
P-valor: 0.3469
Día: Miércoles
Lambda estimado: 10.83
KS Statistic: 0.3735
P-valor: 0.0520
Día: Jueves
Lambda estimado: 8.75
KS Statistic: 0.1880
P-valor: 0.7238
Día: Viernes
Lambda estimado: 9.00
KS Statistic: 0.2060
P-valor: 0.6175
Día: Sábado
Lambda estimado: 14.17
KS Statistic: 0.2413
P-valor: 0.4204
Día: Domingo
Lambda estimado: 11.83
KS Statistic: 0.2869
P-valor: 0.2283
H0: Los datos siguen una distribución de Poisson.
H1: Los datos no siguen una distribución de Poisson.
Lunes: No se rechaza H0 por lo que los datos se ajustan a una distribución Poisson.
Martes: No se rechaza H0 por lo que los datos se ajustan a una distribución Poisson.
Miercoles: No se rechaza H0 por lo que los datos se ajustan a una distribución Poisson.
Jueves: No se rechaza H0 por lo que los datos se ajustan a una distribución Poisson.
Viernes: No se rechaza H0 por lo que los datos se ajustan a una distribución Poisson.
Sabado: No se rechaza H0 por lo que los datos se ajustan a una distribución Poisson.
Domingo: No se rechaza H0 por lo que los datos se ajustan a una distribución Poisson.
n <- 12
alpha <- 0.05
C_alpha <- sqrt(-0.5 * log(alpha / 2))
C_alpha[1] 1.358102
constante crítica C_alpha se utiliza en la prueba de Kolmogorov–Smirnov (KS).
valor crítico C_alpha es de 1.358102 es adecuado para un nivel de significancia del 5%.
n <- 12 # Tamaño de la muestra
alpha <- 0.05 # Nivel de significancia
# Constante crítica para alfa = 0.05
c_alpha <- 1.358102
# Valor crítico de KS
D_alpha <- c_alpha / sqrt(n)
D_alpha[1] 0.3920503
El valor D_alpha es de 0.3920503 es el umbral de comparación con el valor calculado de la prueba KS.
Si D_alpha es menor o igual a 0.3920503 No rechazamos la H0 (los datos se ajustan a la distribucion de Poisson)
Si D_alpha es mayor a 0.3920503 se rechaza la H0 (los datos no se ajustan a la distibucion de Poisson)
import numpy as np
# Parámetros
n = 12
alpha = 0.05
# Cálculo del valor crítico C_alpha
C_alpha = np.sqrt(-0.5 * np.log(alpha / 2))
print("C_alpha =", C_alpha)C_alpha = 1.3581015157406195
import numpy as np
# Parámetros
n = 12
alpha = 0.05
# Constante crítica para alfa = 0.05
c_alpha = 1.358102
# Valor crítico de KS
D_alpha = c_alpha / np.sqrt(n)
print(D_alpha)0.39205027764348455
El valor de D_alpha es de 0.3920 y es el “margen de tolerancia” de diferencia entre los datos reales y la Poisson esperada.
Si la diferencia empírica (D_alpha) es menor o igual a 0.3920, los datos se ajustan a la distribución Poisson.
Si D_alpha es mayor que 0.3920, los datos no se ajustan.
Por lo que se considera que siguen razonablemente una distribución Poisson.
Probabilidades
Probabilidad #1
¿Cuál es la probabilidad de que un lunes lleguen exactamente 10 clientes al restaurante?
# Lambda estimado (promedio de lunes)
lambda_lunes <- mean(restaurante$Lunes)
# Probabilidad de que lleguen 10 clientes
P_lunes_10 <- dpois(10, lambda = lambda_lunes)
P_lunes_10[1] 0.1103883
Probabilidad #2
¿Cuál es la probabilidad de que un martes lleguen más de 12 clientes?
lambda_martes <- mean(restaurante$Martes)
# P(X > 12) = 1 - P(X <= 12)
P_martes_mas12 <- 1 - ppois(12, lambda = lambda_martes)
P_martes_mas12[1] 0.03969359
Probabilidad #3
¿Cuál es la probabilidad de que un miércoles lleguen menos de 8 clientes?
lambda_miercoles <- mean(restaurante$Miércoles)
# P(X < 8) = P(X <= 7)
P_miercoles_menos8 <- ppois(7, lambda = lambda_miercoles)
P_miercoles_menos8[1] 0.1542842
Probabilidad #4
¿Cuál es la probabilidad de que un jueves lleguen entre 9 y 12 clientes (inclusive)?
lambda_jueves <- mean(restaurante$Jueves)
# P(9 <= X <= 12) = P(X <= 12) - P(X <= 8)
P_jueves_9a12 <- ppois(12, lambda = lambda_jueves) - ppois(8, lambda = lambda_jueves)
P_jueves_9a12[1] 0.4041824
Probabilidad #5
¿Cuál es la probabilidad de que un viernes lleguen exactamente 15 clientes?
lambda_viernes <- mean(restaurante$Viernes)
# P(X = 15)
P_viernes_15 <- dpois(15, lambda = lambda_viernes)
P_viernes_15[1] 0.01943067
Probabilidad #6
¿Cuál es la probabilidad de que un sábado lleguen más de 18 clientes?
lambda_sabado <- mean(restaurante$Sábado)
# P(X > 18)
P_sabado_mas18 <- 1 - ppois(18, lambda = lambda_sabado)
P_sabado_mas18[1] 0.126817
Probabilidad #7
¿Cuál es la probabilidad de que un domingo lleguen entre 8 y 14 clientes?
lambda_domingo <- mean(restaurante$Domingo)
# P(8 <= X <= 14)
P_domingo_8a14 <- ppois(14, lambda = lambda_domingo) - ppois(7, lambda = lambda_domingo)
P_domingo_8a14[1] 0.6898499
La mayoría de las personas no conocen la prueba de Poisson ni su utilidad práctica.
Esta prueba es muy importante porque permite analizar y estimar la cantidad de clientes que llegan al restaurante “El Castaño” durante la semana, ya sea de forma diaria o semanal.
A través de esta información, el restaurante puede tener una proyección más precisa sobre la cantidad de alimentos que necesita preparar o comprar.
Esto ayuda a optimizar los recursos, evitando el desperdicio de comida o la falta de productos frescos para los clientes.
En otras palabras, la prueba de Poisson se convierte en una herramienta útil para planificar la producción y las compras, garantizando un mejor control del inventario y una gestión más eficiente del negocio.