#Generando los numeros pseudoaleatorios

set.seed(1802)
num_aleat <- runif(100)
num_aleat
##   [1] 0.626809427 0.836047840 0.964674897 0.724037393 0.039456150 0.690870437
##   [7] 0.773439328 0.768328395 0.170329267 0.808098799 0.519612119 0.994086457
##  [13] 0.125199195 0.387560334 0.907598584 0.479882952 0.958881033 0.367810879
##  [19] 0.128279110 0.382528938 0.590672341 0.089623909 0.914773878 0.815785401
##  [25] 0.710319415 0.624423310 0.689986905 0.045175093 0.369631635 0.515858964
##  [31] 0.881400034 0.950874858 0.512915158 0.085713308 0.507830276 0.090600814
##  [37] 0.378514382 0.500919287 0.300539533 0.118867560 0.839946852 0.621230783
##  [43] 0.140050245 0.522806144 0.114054001 0.183588486 0.658695817 0.247799520
##  [49] 0.213999488 0.253648718 0.507115194 0.976194976 0.962068633 0.646742206
##  [55] 0.472084585 0.763928783 0.696351081 0.415010128 0.244488116 0.998218508
##  [61] 0.323716399 0.187784993 0.210450412 0.004261743 0.868958096 0.160000307
##  [67] 0.514410574 0.518671305 0.496710412 0.162383573 0.458947602 0.612761853
##  [73] 0.646213232 0.481207703 0.213171754 0.488454242 0.122357833 0.573542032
##  [79] 0.673484358 0.568191261 0.660817262 0.961694613 0.693090218 0.209442851
##  [85] 0.157103785 0.359609912 0.171994765 0.533216441 0.066783574 0.862499848
##  [91] 0.672366131 0.799235856 0.873802837 0.675638183 0.962613594 0.182989694
##  [97] 0.773360319 0.746325916 0.653737337 0.318887415

##1. Prueba de uniformidad chi cuadrada

histo <- hist(num_aleat, breaks=6)

library(agricolae)
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_aleat)/length(obser) # Valor esperado en una uniforme es E= n/#intervalos
 cbind(lim_inf,lim_sup,obser,Ei) # visualizacion de las frecuencias observadas y esperadas en los intervalos.
##      lim_inf lim_sup obser Ei
## [1,]     0.0     0.2    21 20
## [2,]     0.2     0.4    16 20
## [3,]     0.4     0.6    20 20
## [4,]     0.6     0.8    24 20
## [5,]     0.8     1.0    19 20
# calculando la estadística chi cuadrada
  x2 <- (obser-Ei)^2/Ei 
 x2
## [1] 0.05 0.80 0.00 0.80 0.05
 chicuad <- sum(x2)
 chicuad # Estadistica chi cuadrada
## [1] 1.7
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]"

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.082085, p-value = 0.5106
## alternative hypothesis: two-sided
# Decision
 test_ks$p.value # P válido
## [1] 0.5106288
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]"
  1. Prueba de Independencia

2.1. Prueba de Corrida: arriba y abajo

diff(num_aleat)
##  [1]  0.209238413  0.128627058 -0.240637504 -0.684581243  0.651414287
##  [6]  0.082568891 -0.005110933 -0.597999128  0.637769532 -0.288486680
## [11]  0.474474338 -0.868887262  0.262361139  0.520038251 -0.427715632
## [16]  0.478998080 -0.591070154 -0.239531769  0.254249829  0.208143402
## [21] -0.501048432  0.825149970 -0.098988477 -0.105465986 -0.085896105
## [26]  0.065563595 -0.644811812  0.324456541  0.146227330  0.365541070
## [31]  0.069474824 -0.437959700 -0.427201850  0.422116968 -0.417229462
## [36]  0.287913568  0.122404905 -0.200379754 -0.181671973  0.721079292
## [41] -0.218716069 -0.481180539  0.382755899 -0.408752142  0.069534485
## [46]  0.475107331 -0.410896297 -0.033800032  0.039649230  0.253466476
## [51]  0.469079782 -0.014126343 -0.315326428 -0.174657621  0.291844198
## [56] -0.067577702 -0.281340953 -0.170522013  0.753730392 -0.674502109
## [61] -0.135931406  0.022665419 -0.206188669  0.864696353 -0.708957789
## [66]  0.354410267  0.004260731 -0.021960893 -0.334326839  0.296564029
## [71]  0.153814251  0.033451379 -0.165005529 -0.268035949  0.275282488
## [76] -0.366096409  0.451184199  0.099942326 -0.105293097  0.092626001
## [81]  0.300877351 -0.268604395 -0.483647367 -0.052339066  0.202506127
## [86] -0.187615147  0.361221676 -0.466432866  0.795716274 -0.190133717
## [91]  0.126869725  0.074566981 -0.198164653  0.286975411 -0.779623900
## [96]  0.590370625 -0.027034402 -0.092588580 -0.334849922
S<-ifelse(diff(num_aleat) > 0, 1, 0) # seuencia de ceros y unos
S
##  [1] 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0
## [39] 0 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0
## [77] 1 1 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0
# 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] 62
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.037183
# 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.57, df = 4, p-value = 0.97
## 
##       (sample size : 100)
## 
##  observed number  0 1 10 8 1 
##  expected number  0.032 1.9 9.6 7.7 0.77

Análisis de Resultados

Prueba de Chi-cuadrada de uniformidad

Estadístico calculado (χ²): 1.7

Valor crítico (χ² 0.05, gl = 5−1 = 4): 9.488

Como el valor calculado (1.7) es menor al valor crítico (9.488), no se rechaza la hipótesis nula.

Interpretación: No existen diferencias significativas entre las frecuencias observadas y las esperadas. Por tanto, los datos se ajustan a una distribución uniforme en el intervalo [0,1].

Prueba de Kolmogorov-Smirnov (K-S)

Estadístico D: 0.082085

Valor-p: 0.5106

Como el valor-p es mayor a 0.05, no se rechaza la hipótesis nula.

Interpretación: Los datos provienen de una distribución uniforme continua en el intervalo [0,1].

Prueba de Independencia (Corridas Arriba-Abajo)

Número de corridas observadas: 62

Esperado (media): 66.33

Estadístico Z: -1.037

Como el valor Z está dentro del rango aceptable de [−1.96, 1.96], no se rechaza la hipótesis de independencia.

Interpretación: Los números parecen ser independientes, sin evidencia de patrones sistemáticos.

Prueba de Póker

Estadístico χ²: 0.57

Grados de libertad: 4

Valor-p: 0.97

Como el valor-p es mucho mayor a 0.05, no se rechaza la hipótesis nula.

Interpretación: La secuencia no muestra irregularidades en la conformación de sus dígitos. Comportamiento consistente con números uniformemente distribuidos.

conlcucion final

Las pruebas estadísticas realizadas indican que los 100 números pseudoaleatorios generados con runif() en R, bajo semilla set.seed(1802), cumplen con las propiedades fundamentales requeridas en simulación estadística:

Uniformidad: Confirmada tanto por la prueba de Chi-cuadrada como por la de Kolmogorov-Smirnov.

Independencia: Confirmada mediante la prueba de corridas arriba y abajo.

Ausencia de patrones anómalos en la estructura de los números: Confirmada por la prueba de Póker.

Por lo tanto, los números generados pueden considerarse válidos, aleatorios y confiables para ser utilizados en estudios de simulación, muestreo, y otros procedimientos estadísticos.