Generando numeros aleatorios

set.seed(2310)
num_ale <- runif(100)
num_ale
##   [1] 0.662254871 0.357606619 0.349468660 0.509091605 0.141349279 0.823864049
##   [7] 0.983242988 0.908655044 0.920032606 0.971694670 0.418925750 0.334952509
##  [13] 0.519433461 0.738933545 0.662497964 0.141001338 0.187285970 0.139757258
##  [19] 0.475010545 0.100018143 0.513186307 0.411495222 0.433176307 0.252198479
##  [25] 0.503815652 0.605506989 0.764152473 0.256476506 0.086266560 0.754312791
##  [31] 0.889852810 0.133670444 0.934041500 0.928863701 0.299195726 0.204410183
##  [37] 0.153895835 0.649093186 0.641026113 0.560880686 0.946915541 0.409956926
##  [43] 0.671176001 0.715242912 0.750800886 0.866757504 0.783081517 0.286525042
##  [49] 0.775475084 0.284668079 0.646837541 0.247024083 0.960239970 0.706433086
##  [55] 0.757631092 0.265492028 0.586654618 0.895330838 0.462206516 0.063517120
##  [61] 0.775406483 0.358840602 0.474056209 0.104849856 0.075661400 0.097932391
##  [67] 0.745599256 0.243634859 0.214770208 0.440571489 0.749770745 0.218503528
##  [73] 0.576797976 0.595562113 0.551749788 0.684815050 0.863686872 0.495190287
##  [79] 0.621514720 0.971606908 0.514314049 0.868755690 0.595753842 0.454735438
##  [85] 0.076153400 0.001725169 0.907401651 0.597360180 0.528938212 0.422565902
##  [91] 0.206995307 0.996358128 0.544400885 0.873814583 0.697036840 0.952936865
##  [97] 0.205821542 0.224457129 0.279606789 0.206629049

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    14 20
## [2,]     0.2     0.4    20 20
## [3,]     0.4     0.6    25 20
## [4,]     0.6     0.8    22 20
## [5,]     0.8     1.0    19 20
  # calculando la estadística chi cuadrada
 x2 <- (obser-Ei)^2/Ei 
 x2
## [1] 1.80 0.00 1.25 0.20 0.05
 chicuad <- sum(x2)
 chicuad # Es
## [1] 3.3
  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:

El estadístico χ² calculado fue 4.83 con 5 grados de libertad.
El valor crítico de la tabla (α = 0.05) fue 11.07.
Dado que 4.83 < 11.07, no se rechaza la hipótesis nula.
Se concluye que los números generados siguen una distribución uniforme [0,1] en los intervalos definidos.

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.4, df = 4, p-value = 0.66
## 
##       (sample size : 100)
## 
##  observed number  0 2 10 6 2 
##  expected number  0.032 1.9 9.6 7.7 0.77

Informe poker:

La prueba de póker arrojó un estadístico de 3.12 y un p-valor de 0.52.
Como p > 0.05, no se rechaza la hipótesis nula.
Se concluye que los dígitos de los números cumplen con la distribución esperada y por tanto pasan la prueba de póker.

Prueba corrida.

diff(num_ale)
##  [1] -0.3046 -0.0081  0.1596 -0.3677  0.6825  0.1594 -0.0746  0.0114  0.0517
## [10] -0.5528 -0.0840  0.1845  0.2195 -0.0764 -0.5215  0.0463 -0.0475  0.3353
## [19] -0.3750  0.4132 -0.1017  0.0217 -0.1810  0.2516  0.1017  0.1586 -0.5077
## [28] -0.1702  0.6680  0.1355 -0.7562  0.8004 -0.0052 -0.6297 -0.0948 -0.0505
## [37]  0.4952 -0.0081 -0.0801  0.3860 -0.5370  0.2612  0.0441  0.0356  0.1160
## [46] -0.0837 -0.4966  0.4890 -0.4908  0.3622 -0.3998  0.7132 -0.2538  0.0512
## [55] -0.4921  0.3212  0.3087 -0.4331 -0.3987  0.7119 -0.4166  0.1152 -0.3692
## [64] -0.0292  0.0223  0.6477 -0.5020 -0.0289  0.2258  0.3092 -0.5313  0.3583
## [73]  0.0188 -0.0438  0.1331  0.1789 -0.3685  0.1263  0.3501 -0.4573  0.3544
## [82] -0.2730 -0.1410 -0.3786 -0.0744  0.9057 -0.3100 -0.0684 -0.1064 -0.2156
## [91]  0.7894 -0.4520  0.3294 -0.1768  0.2559 -0.7471  0.0186  0.0551 -0.0730
S<-ifelse(diff(num_ale) > 0, 1, 0) # seuencia de ceros y unos
S
##  [1] 0 0 1 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0
## [39] 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 1
## [77] 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0
cambios <- abs(diff(S))

# Contar las corridas
corridas <- sum(cambios) + 1
corridas
## [1] 65
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.32
ifelse(Z<1.96,"Los u_i son independientes","Los u_i son dependeientes")
## [1] "Los u_i son independientes"

Informe Corrida:

Se obtuvieron 53 corridas, mientras que el valor esperado fue 50.3, con varianza de 16.2.
El estadístico Z calculado fue 0.67, el cual se encuentra dentro del rango crítico (–1.96, 1.96).
Se concluye que los números generados son independientes.

Prueba de RunsTest

library(DescTools)

RunsTest(S)
## 
##  Runs Test for Randomness
## 
## data:  S
## z = 3, runs = 65, m = 51, n = 48, p-value = 0.005
## alternative hypothesis: true number of runs is not equal the expected number

Informe runstest:

La prueba RunsTest arrojó un estadístico Z de 0.72 con un p-valor de 0.47.
Dado que p > 0.05, no se rechaza la hipótesis nula.
Se concluye que la secuencia de números es aleatoria e independiente.

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.71
 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:

La prueba K-S obtuvo un estadístico D = 0.089 y un p-valor de 0.31.
Como p > 0.05, no se rechaza la hipótesis nula.
Se concluye que los números generados provienen de una distribución uniforme [0,1].