set.seed(0507)
num_aleat <- runif(100)
num_aleat
##   [1] 0.85055039 0.26894659 0.81246658 0.34619090 0.82982958 0.75116355
##   [7] 0.16810329 0.88866329 0.35652532 0.28685031 0.94257439 0.80511639
##  [13] 0.71694744 0.35222658 0.81262071 0.52455731 0.30149485 0.14379436
##  [19] 0.11493349 0.89378079 0.75642288 0.15827227 0.41363215 0.92047278
##  [25] 0.07830906 0.83065817 0.50306731 0.70097733 0.42264490 0.58234489
##  [31] 0.97315570 0.85822121 0.73863696 0.82360227 0.59408754 0.70648737
##  [37] 0.53603863 0.64182123 0.72861797 0.11310894 0.21172778 0.21484473
##  [43] 0.34264920 0.93644677 0.40033863 0.45345591 0.09394243 0.86964713
##  [49] 0.89871941 0.22341364 0.64845587 0.26116703 0.90258959 0.77670031
##  [55] 0.09636680 0.25215301 0.74115573 0.57306372 0.96495723 0.64510440
##  [61] 0.89089489 0.91663052 0.52750861 0.33703443 0.78822402 0.69349083
##  [67] 0.18672618 0.10840857 0.59556258 0.28487523 0.32565613 0.77570455
##  [73] 0.23170122 0.11047412 0.36870301 0.03837617 0.44575135 0.93312810
##  [79] 0.03595518 0.12752954 0.79178027 0.52344941 0.27180638 0.13374405
##  [85] 0.49659561 0.66802931 0.75577729 0.37259232 0.25023467 0.52399994
##  [91] 0.55634197 0.84889527 0.92608095 0.70324450 0.66829378 0.51534582
##  [97] 0.01029977 0.02909727 0.06919605 0.47020329

1. Prueba de uniformidad chi cuadradada

hist(num_aleat, breaks=5)$count

## [1] 18 20 19 20 23
 histo <- hist(num_aleat, breaks=5)
library(agricolae)

 Tabla <- table.freq(histo)

#limite inferior del intervalo
 lim_inf <-Tabla$Lower
 
 # limite superior del intervalo
 lim_sup <- Tabla$Upper 
 
 obser <- Tabla$Frequency
 
 # Valor esperado en una uniforme es E= n/#intervalos
 Ei <- length(num_aleat)/length(obser) 
 
 # visualizacion de las frecuencias observadas y esperadas en los intervalos.
 cbind(lim_inf,lim_sup,obser,Ei)
##      lim_inf lim_sup obser Ei
## [1,]     0.0     0.2    18 20
## [2,]     0.2     0.4    20 20
## [3,]     0.4     0.6    19 20
## [4,]     0.6     0.8    20 20
## [5,]     0.8     1.0    23 20
 # calculando la estadística chi cuadrada
  x2 <- (obser-Ei)^2/Ei 
 x2
## [1] 0.20 0.00 0.05 0.00 0.45
chicuad <- sum(x2)

# Estadistica chi cuadrada
 chicuad 
## [1] 0.7
# 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 [0,1]", "Los $U_i no siguen una uniforme [0,1] ")
## [1] "Los $U_i$ provienen de una distribución uniforme [0,1]"

1.2 Prueba de Kolmogorov-Smirnov (Prueba K-S).

test_ks <- ks.test(num_aleat,"punif",0,1)
test_ks
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  num_aleat
## D = 0.073491, p-value = 0.6526
## alternative hypothesis: two-sided
# Decision
 test_ks$p.value # P válido
## [1] 0.6526078
ifelse(test_ks$p.value < 0.05, " Los u_i no siguen una distribución uniforme","Los u_i siguen la distribución uniforme [0,1]") # 
## [1] "Los u_i siguen la distribución uniforme [0,1]"

2. Prueba de Independencia.

2.1. Prueba de Corrida: Arriba y abajo

diff(num_aleat)
##  [1] -0.581603796  0.543519992 -0.466275689  0.483638684 -0.078666032
##  [6] -0.583060253  0.720559998 -0.532137973 -0.069675012  0.655724080
## [11] -0.137457994 -0.088168948 -0.364720869  0.460394138 -0.288063401
## [16] -0.223062466 -0.157700483 -0.028860871  0.778847303 -0.137357910
## [21] -0.598150615  0.255359881  0.506840625 -0.842163716  0.752349108
## [26] -0.327590854  0.197910019 -0.278332435  0.159699988  0.390810818
## [31] -0.114934494 -0.119584254  0.084965309 -0.229514728  0.112399838
## [36] -0.170448745  0.105782600  0.086796743 -0.615509029  0.098618832
## [41]  0.003116953  0.127804474  0.593797564 -0.536108132  0.053117278
## [46] -0.359513478  0.775704692  0.029072279 -0.675305768  0.425042237
## [51] -0.387288849  0.641422568 -0.125889285 -0.680333513  0.155786212
## [56]  0.489002721 -0.168092013  0.391893519 -0.319852838  0.245790490
## [61]  0.025735636 -0.389121908 -0.190474181  0.451189583 -0.094733184
## [66] -0.506764647 -0.078317615  0.487154007 -0.310687350  0.040780904
## [71]  0.450048415 -0.544003327 -0.121227099  0.258228893 -0.330326844
## [76]  0.407375183  0.487376746 -0.897172918  0.091574355  0.664250735
## [81] -0.268330862 -0.251643026 -0.138062330  0.362851559  0.171433698
## [86]  0.087747982 -0.383184974 -0.122357651  0.273765270  0.032342033
## [91]  0.292553299  0.077185676 -0.222836440 -0.034950723 -0.152947966
## [96] -0.505046041  0.018797493  0.040098780  0.401007243
S<-ifelse(diff(num_aleat) > 0, 1, 0) # seuencia de ceros y unos
S
##  [1] 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1
## [39] 0 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1
## [77] 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 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] 60
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] -1.515882
# 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 = 0.81, df = 4, p-value = 0.94
## 
##       (sample size : 100)
## 
##  observed number  0 1 9 9 1 
##  expected number  0.032 1.9 9.6 7.7 0.77

Se aplicaron pruebas de uniformidad (χ² y Kolmogorov–Smirnov) y de independencia (corridas y poker) a la muestra generada con runif(100). Las pruebas de uniformidad no rechazaron la hipótesis nula: las frecuencias observadas en los intervalos se ajustan a las esperadas y la comparación de la función de distribución empírica con la teórica tampoco mostró desviaciones significativas.

En cuanto a independencia, la prueba de corridas arrojó un número de corridas cercano al esperado y la estadística no resultó significativa; el test tipo poker tampoco mostró frecuencias anómalas en las combinaciones analizadas.

En conjunto, los resultados indican que la muestra se comporta como una secuencia de números uniformes en [0,1] y sin dependencia detectable con las pruebas empleadas.