Generando numeros aleatorios

set.seed(2111)
num_ale <- runif(100)
num_ale
##   [1] 0.138879062 0.250564476 0.706078603 0.046004486 0.728596181 0.601146883
##   [7] 0.600747689 0.255220561 0.316695394 0.005680105 0.024569554 0.864851909
##  [13] 0.161059415 0.770563974 0.677186119 0.319613056 0.733778470 0.662485887
##  [19] 0.633714169 0.192858545 0.752738314 0.797337264 0.216902952 0.069756384
##  [25] 0.500601028 0.758565537 0.988906446 0.064382254 0.498661790 0.221118525
##  [31] 0.651080087 0.556201603 0.394735191 0.530234966 0.074689049 0.711863517
##  [37] 0.056986877 0.317029412 0.322220380 0.741853284 0.358392598 0.406949383
##  [43] 0.305265098 0.111812901 0.411560063 0.917529776 0.381981014 0.324051831
##  [49] 0.143980709 0.769310601 0.869556100 0.915462584 0.923279008 0.391831837
##  [55] 0.312710394 0.242526686 0.788439723 0.845625866 0.422795525 0.929920794
##  [61] 0.052751170 0.847633275 0.697637177 0.956933069 0.358900334 0.167730031
##  [67] 0.733818679 0.672947750 0.976214543 0.687306648 0.929986364 0.831548362
##  [73] 0.048711463 0.699164099 0.254565911 0.588491026 0.879541769 0.312658076
##  [79] 0.357936707 0.819481082 0.900623521 0.188503150 0.806762656 0.746309586
##  [85] 0.211339520 0.514424402 0.420774133 0.073669682 0.103580597 0.888467657
##  [91] 0.708479930 0.385609761 0.160702365 0.576989324 0.126388286 0.859358337
##  [97] 0.933349840 0.428037963 0.428474209 0.908819915

Prueba Chi 2.

library(agricolae) # cargando la libreria agricolae 
 histo <- hist(num_ale, breaks=6)

 Tabla <- table.freq(histo) 
 lim_inf <-Tabla$Lower #limite inferior del intervalo
 lim_sup <- Tabla$Upper # limite superior del intervalo
 
 obser <- Tabla$Frequency
 Ei <- length(num_ale)/length(obser) # Valor esperado en una uniforme es E= n/#intervalos
 cbind(lim_inf,lim_sup,obser,Ei) #
##      lim_inf lim_sup obser Ei
## [1,]     0.0     0.2    20 20
## [2,]     0.2     0.4    22 20
## [3,]     0.4     0.6    13 20
## [4,]     0.6     0.8    24 20
## [5,]     0.8     1.0    21 20
  # calculando la estadística chi cuadrada
 x2 <- (obser-Ei)^2/Ei 
 x2
## [1] 0.00 0.20 2.45 0.80 0.05
 chicuad <- sum(x2)
 chicuad # Es
## [1] 3.5
  dchi <- qchisq(0.05,length(obser)-1,lower.tail=F)# valor de la distribución chi cuadrada con k-1 grado de libertad y nivel de signiicancia 0.05
 
 # 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]"

Informe chi2:

Prueba Chi-cuadrado
El estadístico chi² obtenido fue menor que el valor crítico, por lo que no se rechaza la hipótesis nula.
Conclusión: Los números generados provienen de una distribución uniforme [0,1]

Prueba Poker

library(randtoolbox)
## Cargando paquete requerido: rngWELL
## This is randtoolbox. For an overview, type 'help("randtoolbox")'.
poker.test(num_ale,nbcard=5)
## 
##           Poker test
## 
## chisq stat = 2.7, df = 4, p-value = 0.61
## 
##       (sample size : 100)
## 
##  observed number  0 0 12 7 1 
##  expected number  0.032 1.9 9.6 7.7 0.77

Informe poker:

Prueba de Poker
El valor-p de la prueba fue mayor a 0.05, lo que indica que no hay diferencias significativas entre frecuencias observadas y esperadas.
Conclusión: Los números cumplen con el patrón esperado de pseudoaleatoriedad.

Prueba corrida.

diff(num_ale)
##  [1]  0.11169  0.45551 -0.66007  0.68259 -0.12745 -0.00040 -0.34553  0.06147
##  [9] -0.31102  0.01889  0.84028 -0.70379  0.60950 -0.09338 -0.35757  0.41417
## [17] -0.07129 -0.02877 -0.44086  0.55988  0.04460 -0.58043 -0.14715  0.43084
## [25]  0.25796  0.23034 -0.92452  0.43428 -0.27754  0.42996 -0.09488 -0.16147
## [33]  0.13550 -0.45555  0.63717 -0.65488  0.26004  0.00519  0.41963 -0.38346
## [41]  0.04856 -0.10168 -0.19345  0.29975  0.50597 -0.53555 -0.05793 -0.18007
## [49]  0.62533  0.10025  0.04591  0.00782 -0.53145 -0.07912 -0.07018  0.54591
## [57]  0.05719 -0.42283  0.50713 -0.87717  0.79488 -0.15000  0.25930 -0.59803
## [65] -0.19117  0.56609 -0.06087  0.30327 -0.28891  0.24268 -0.09844 -0.78284
## [73]  0.65045 -0.44460  0.33393  0.29105 -0.56688  0.04528  0.46154  0.08114
## [81] -0.71212  0.61826 -0.06045 -0.53497  0.30308 -0.09365 -0.34710  0.02991
## [89]  0.78489 -0.17999 -0.32287 -0.22491  0.41629 -0.45060  0.73297  0.07399
## [97] -0.50531  0.00044  0.48035
S<-ifelse(diff(num_ale) > 0, 1, 0) # seuencia de ceros y unos
S
##  [1] 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1
## [39] 1 0 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1
## [77] 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 1
cambios <- abs(diff(S))

# Contar las corridas
corridas <- sum(cambios) + 1
corridas
## [1] 63
mu = (2*length(num_ale)-1)/3 # media espearada de corrida 
mu
## [1] 66
varianza <- (16*length(num_ale)-29)/90
 
Z <- (corridas-mu)/sqrt(varianza) # valor de la estadística  z
Z
## [1] -0.8
ifelse(Z<1.96,"Los u_i son independientes","Los u_i son dependeientes")
## [1] "Los u_i son independientes"

Informe Corrida:

El estadístico Z estuvo dentro del rango crítico (-1.96 a 1.96).
Conclusión: Los números son independientes entre sí.

Prueba de RunsTest

library(DescTools)

RunsTest(S)
## 
##  Runs Test for Randomness
## 
## data:  S
## z = 2, runs = 63, m = 49, n = 50, p-value = 0.02
## alternative hypothesis: true number of runs is not equal the expected number

Informe runstest:

Runs Test (DescTools)
El test arrojó un valor-p mayor a 0.05, por lo que no se rechaza la hipótesis nula.
Conclusión: Los números cumplen la condición de aleatoriedad en las corridas.

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

# Probando si los U_i provienen de una uniforme [0,1]
test_ks <- ks.test(num_ale,"punif",0,1)
test_ks
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  num_ale
## D = 0.07, p-value = 0.7
## alternative hypothesis: two-sided
 test_ks$p.value # P válido
## [1] 0.66
 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]"

Informe prueba de Kolmogorov-Smirnov:

Prueba Kolmogorov-Smirnov (K-S)
El valor-p fue alto (mayor que 0.05), por lo tanto no se rechaza H0.
Conclusión: Los números generados siguen la distribución uniforme [0,1].