prueba de validacion

introduccion

Las pruebas de validación de números pseudoaleatorios nos ayudan a saber si una secuencia de números generados por una computadora realmente parece aleatoria. La prueba de Kolmogorov-Smirnov verifica si los números se distribuyen de manera uniforme. La prueba de corridas (run test) revisa si hay patrones repetitivos que no deberían estar. La prueba POKER analiza combinaciones de cifras, como en una mano de póker, para ver si aparecen con la frecuencia esperada. Estas pruebas nos aseguran que los números son lo suficientemente impredecibles para usarse en simulaciones o criptografía.

1. prueba de Kolmogorov-Smirnov La prueba de Kolmogorov-Smirnov (K-S) sirve para comparar una muestra de datos con una distribución teórica, como la uniforme, y así evaluar si los datos siguen esa distribución. Es útil para validar la aleatoriedad en números pseudoaleatorios. En R, se utiliza la función ks.test().

Ejemplo en R:

# Generar 100 números aleatorios uniformes
datos <- runif(100)

# Aplicar la prueba K-S contra una distribución uniforme (0,1)
ks.test(datos, "punif", min = 0, max = 1)

Este comando devuelve un valor p que indica si hay evidencia significativa para rechazar la hipótesis de que los datos siguen una distribución uniforme.

a <- 53197
c <- 3498
m <- 35645000000
X_n <- 50 # semilla
random.number<-numeric(50) # vector numérico de longitud 50
 for (i in 1:50)
   {X_n<-(a*X_n+c)%%m
   random.number[i]<-X_n/m # números en el intervalo [0,1]
   }
 random.number
##  [1] 0.0000747187 0.9748106903 0.0042893852 0.1824253974 0.4838651039
##  [6] 0.1719314971 0.2398511336 0.3607524682 0.9490524424 0.7427764392
## [11] 0.4782343043 0.6302847909 0.2600191721 0.2398960565 0.7505178144
## [16] 0.2961752899 0.6368991687 0.1250769671 0.7194214845 0.0647125333
## [21] 0.5126348365 0.6353988176 0.3109009324 0.9969018794 0.1892767296
## [26] 0.9541867306 0.8715104575 0.7418053564 0.8195461834 0.3983194831
## [31] 0.4015409279 0.7727430936 0.6143482897 0.4859697218 0.1312913479
## [36] 0.3058344904 0.4773854473 0.4736386111 0.1531967854 0.6093936443
## [41] 0.9136943231 0.7969076912 0.0984506196 0.2776114936 0.0986260746
## [46] 0.6112889273 0.7370662605 0.7138606293 0.2438948831 0.4760962203

prueba de Kolmogorov-Smirnov

Realizamos una prueba de Kolmogorov-Smirnov en exel donde cojimos como base los numeros aleatorias de la clase anterior que habiamos hecho y despues de allar y comparar dn y dns da como conclucion que no sonuniformes, se hizo lo mismo en r sudio pero all final elultimo codigo me dio error por lo que no se sabe si es uniforme o no

pruebas Rumtest

Las pruebas Rumtest son un conjunto de test psicométricos utilizados en el ámbito educativo y laboral para evaluar capacidades cognitivas, aptitudes y competencias básicas de una persona.

En general, estas pruebas buscan medir:

Razonamiento lógico y abstracto.

Habilidad verbal y numérica.

Atención y memoria.

Capacidad de resolución de problemas.

Se aplican con frecuencia en procesos de selección de personal, orientación vocacional y evaluaciones académicas, ya que permiten obtener un perfil sobre el rendimiento intelectual y las habilidades de aprendizaje de un individuo.

¿Quieres que te haga una descripción más académica (para un trabajo universitario) o una más sencilla (para explicación rápida)?

library(tseries)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
diff(random.number) 
##  [1]  0.974735972 -0.970521305  0.178136012  0.301439706 -0.311933607
##  [6]  0.067919636  0.120901335  0.588299974 -0.206276003 -0.264542135
## [11]  0.152050487 -0.370265619 -0.020123116  0.510621758 -0.454342525
## [16]  0.340723879 -0.511822202  0.594344517 -0.654708951  0.447922303
## [21]  0.122763981 -0.324497885  0.686000947 -0.807625150  0.764910001
## [26] -0.082676273 -0.129705101  0.077740827 -0.421226700  0.003221445
## [31]  0.371202166 -0.158394804 -0.128378568 -0.354678374  0.174543142
## [36]  0.171550957 -0.003746836 -0.320441826  0.456196859  0.304300679
## [41] -0.116786632 -0.698457072  0.179160874 -0.178985419  0.512662853
## [46]  0.125777333 -0.023205631 -0.469965746  0.232201337
S<-ifelse(diff(random.number) > 0, 1, 0) # seuencia de ceros y unos
S
##  [1] 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 1 0 0
## [39] 1 1 0 0 1 0 1 1 0 0 1
runs.test(as.factor(S))
## 
##  Runs Test
## 
## data:  as.factor(S)
## Standard Normal = 2.1694, p-value = 0.03005
## alternative hypothesis: two.sided
# 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] 33

con la prueba rumtest nos dio 33 corridas que al compararlo nos da que es uniforme