###Generando los números pseudoaleatorios

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 chi2
 library(agricolae) # cargando la libreria agricolae 
 histo <- hist(num_aleat, breaks=6)

 Tabla <- table.freq(histo) 
 lim_inf <-Tabla$Lower #limite inferior del intervalo
 lim_sup <- Tabla$Upper # limite superior del intervalo

*Informe chi2:

La prueba Chi-cuadrado mostró que las frecuencias observadas en los intervalos del histograma no difieren de manera significativa de las frecuencias esperadas bajo una distribución uniforme, por lo que se concluye que los números generados se distribuyen de manera adecuada en el intervalo [0,1].

  1. 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

*Informe poker:

El análisis de Póker evidenció que la distribución de los dígitos decimales de los números pseudoaleatorios coincide con las probabilidades teóricas esperadas, lo que indica que no existen patrones extraños y que los números cumplen con la condición de uniformidad e independencia.

  1. Prueba de corrida
diff(num_aleat)
##  [1] -0.4926  0.4179 -0.7489  0.6651 -0.0119 -0.4930  0.5381  0.1455 -0.4451
## [10]  0.3533 -0.5594  0.4892 -0.0939 -0.4291 -0.0746  0.1725 -0.2353  0.8149
## [19] -0.4145 -0.3427  0.4768 -0.6980  0.4020  0.4369 -0.2668 -0.4113  0.6969
## [28] -0.3230  0.3757 -0.5683 -0.0565 -0.2445  0.0296 -0.0510  0.7815  0.0488
## [37] -0.0602 -0.6068  0.6580 -0.0459 -0.4197 -0.2256 -0.0442  0.1475  0.6629
## [46] -0.8174  0.8584 -0.9435  0.6745 -0.6419  0.7873 -0.4579  0.4917 -0.0757
## [55] -0.6039  0.3316 -0.3449  0.7141 -0.7226  0.0268  0.3664 -0.4150  0.4317
## [64] -0.2755  0.1334  0.3610 -0.2575  0.0043  0.4278 -0.7081  0.5299 -0.2895
## [73]  0.0436  0.3780 -0.4483  0.4092 -0.7574 -0.0778 -0.0160  0.4808 -0.0465
## [82] -0.4051  0.2529 -0.2794  0.8516 -0.2683 -0.5756  0.6619  0.1645  0.0950
## [91] -0.1102 -0.5837 -0.1821  0.4529 -0.0551 -0.4800  0.4922  0.1198  0.3161
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
varianza <- (16*length(num_aleat)-29)/90
 
Z <- (corridas-mu)/sqrt(varianza) # valor de la estadística  z
Z
## [1] 0.4
# Decisión estadística 

ifelse(Z<1.96,"Los u_i son independientes","Los u_i son dependeientes")
## [1] "Los u_i son independientes"

*Informe prueba de corrida:

La prueba de corridas determinó que el número de cambios en la secuencia de valores está dentro del rango esperado, y el estadístico Z obtenido se encuentra dentro de los límites críticos, lo que confirma que los números generados son independientes entre sí.

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

La prueba K-S arrojó un p-value mayor al nivel de significancia (0.05), lo que indica que no se rechaza la hipótesis nula y, en consecuencia, los números generados provienen de una distribución uniforme en el intervalo [0,1].