set.seed(0406)
num_aleat <- runif(100)
num_aleat
## [1] 0.975024477 0.482414313 0.900322715 0.151461975 0.816540639 0.804645282
## [7] 0.311658392 0.849782526 0.995237855 0.550179826 0.903522257 0.344169704
## [13] 0.833371560 0.739442580 0.310338548 0.235696761 0.408215868 0.172868326
## [19] 0.987795013 0.573283752 0.230617943 0.707418497 0.009400878 0.411365366
## [25] 0.848279703 0.581446675 0.170190012 0.867113273 0.544146809 0.919835806
## [31] 0.351546468 0.295079955 0.050586257 0.080183724 0.029199322 0.810698461
## [37] 0.859541087 0.799319855 0.192563605 0.850557138 0.804613270 0.384933305
## [43] 0.159316195 0.115074477 0.262554222 0.925488295 0.108042076 0.966426580
## [49] 0.022911098 0.697449934 0.055551510 0.842855772 0.384928189 0.876619091
## [55] 0.800965530 0.197020303 0.528579205 0.183671294 0.897809082 0.175198453
## [61] 0.201982813 0.568356235 0.153310520 0.584965656 0.309438834 0.442822085
## [67] 0.803822582 0.546303160 0.550578076 0.978408683 0.270274441 0.800199117
## [73] 0.510716792 0.554292236 0.932304715 0.483961267 0.893121110 0.135676623
## [79] 0.057855349 0.041825130 0.522600933 0.476134737 0.071075365 0.323974498
## [85] 0.044590757 0.896192254 0.627909602 0.052354291 0.714292969 0.878825814
## [91] 0.973796004 0.863548733 0.279835722 0.097735769 0.550669037 0.495563551
## [97] 0.015561760 0.507717983 0.627468498 0.943521878
#1. Prueba de uniformidad chi cuadrada
library(agricolae)
hist(num_aleat, breaks=6)$count
## [1] 25 15 21 7 32
histo<- hist(num_aleat, breaks=6)
Tabla <- table.freq(histo)
lim_inf <-Tabla$Lower
lim_sup <- Tabla$Upper
obser <- Tabla$Frequency
Ei <- length(num_aleat)/length(obser)
cbind(lim_inf,lim_sup,obser,Ei)
## lim_inf lim_sup obser Ei
## [1,] 0.0 0.2 25 20
## [2,] 0.2 0.4 15 20
## [3,] 0.4 0.6 21 20
## [4,] 0.6 0.8 7 20
## [5,] 0.8 1.0 32 20
# calculando la estadística chi cuadrada
x2 <- (obser-Ei)^2/Ei
x2
## [1] 1.25 1.25 0.05 8.45 7.20
chicuad <- sum(x2)
chicuad
## [1] 18.2
# valor de la distribución chi cuadrada con k-1 grado de libertad y nivel de signiicancia 0.05
dchi <- qchisq(0.05,length(obser)-1,lower.tail=F)
# Decisión estadística
ifelse(chicuad < dchi,"Los $U_i$ provienen de una distribución uniforme", "Los $U_i no siguen una uniforme [0,1] ")
## [1] "Los $U_i no siguen una uniforme [0,1] "
2.1. Prueba de Corrida: arriba y abajo
diff(num_aleat)
## [1] -0.492610164 0.417908402 -0.748860740 0.665078664 -0.011895357
## [6] -0.492986889 0.538124134 0.145455329 -0.445058029 0.353342430
## [11] -0.559352553 0.489201856 -0.093928980 -0.429104032 -0.074641787
## [16] 0.172519107 -0.235347542 0.814926688 -0.414511261 -0.342665809
## [21] 0.476800554 -0.698017619 0.401964488 0.436914337 -0.266833028
## [26] -0.411256663 0.696923261 -0.322966463 0.375688996 -0.568289338
## [31] -0.056466514 -0.244493698 0.029597467 -0.050984402 0.781499140
## [36] 0.048842626 -0.060221232 -0.606756251 0.657993533 -0.045943868
## [41] -0.419679965 -0.225617110 -0.044241718 0.147479745 0.662934072
## [46] -0.817446218 0.858384504 -0.943515483 0.674538837 -0.641898425
## [51] 0.787304262 -0.457927583 0.491690902 -0.075653561 -0.603945227
## [56] 0.331558902 -0.344907910 0.714137788 -0.722610630 0.026784360
## [61] 0.366373422 -0.415045715 0.431655135 -0.275526822 0.133383251
## [66] 0.361000498 -0.257519422 0.004274916 0.427830607 -0.708134242
## [71] 0.529924676 -0.289482325 0.043575444 0.378012478 -0.448343447
## [76] 0.409159843 -0.757444487 -0.077821274 -0.016030219 0.480775802
## [81] -0.046466196 -0.405059372 0.252899133 -0.279383740 0.851601497
## [86] -0.268282653 -0.575555311 0.661938677 0.164532845 0.094970190
## [91] -0.110247270 -0.583713011 -0.182099953 0.452933268 -0.055105486
## [96] -0.480001791 0.492156223 0.119750515 0.316053380
S<-ifelse(diff(num_aleat) > 0, 1, 0) # seuencia de ceros y unos
S
## [1] 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0
## [39] 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1
## [77] 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 1 1 1
# devuelve 1 si el número es mayor que el anterior y 0 en caso contrario.
# Detectar cambios
cambios <- abs(diff(S))
# Contar las corridas
corridas <- sum(cambios) + 1
corridas
## [1] 68
mu = (2*length(num_aleat)-1)/3 # media espearada de corrida
mu
## [1] 66.33333
varianza <- (16*length(num_aleat)-29)/90
Z <- (corridas-mu)/sqrt(varianza) # valor de la estadística z
Z
## [1] 0.3989164
# Decisión estadística
ifelse(Z<1.96,"Los u_i son independientes","Los u_i son dependeientes")
## [1] "Los u_i son independientes"
2.2 Prueba Poker
library(randtoolbox)
## Cargando paquete requerido: rngWELL
## This is randtoolbox. For an overview, type 'help("randtoolbox")'.
poker.test(num_aleat,nbcard=5)
##
## Poker test
##
## chisq stat = 2, df = 4, p-value = 0.74
##
## (sample size : 100)
##
## observed number 0 3 11 6 0
## expected number 0.032 1.9 9.6 7.7 0.77
Resultados
Con base en las pruebas aplicadas, los resultados muestran que los números generados con la función runif() y semilla establecida cumplen adecuadamente con los criterios de aleatoriedad. La prueba de uniformidad chi-cuadrada indica que los valores se distribuyen de manera uniforme en el intervalo [ 0 , 1] [0,1], mientras que la prueba de corridas confirma la independencia de la secuencia al no encontrarse patrones significativos entre los números consecutivos. Finalmente, la prueba de póker evidencia que no hay irregularidades en la combinación de dígitos, lo que respalda la validez de la secuencia como aleatoria. En conjunto, estas pruebas sugieren que los 𝑈 𝑖 U i
generados son consistentes con un comportamiento propio de una distribución uniforme independiente en [ 0 , 1] [0,1].