#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]"
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.