Prueba chi cuadrada para validar la uniformidad de los números pseudoaleatorios.

La prueba de bondad de ajuste Chi-cuadrado se emplea para evaluar si una secuencia de números pseudoaleatorios puede considerarse generada por una distribución uniforme en el intervalo \([0,1)\). Para ello, se divide el rango en \(k\) intervalos de igual longitud y se comparan las frecuencias observadas \(O_i\) con las frecuencias esperadas \(E_i\) que habría bajo uniformidad (todas iguales). Con un tamaño muestral \(n\), la expectativa por intervalo es \(E_i = n/k\).

La discrepancia global se resume mediante el estadístico \[ \chi^2 \;=\; \sum_{i=1}^{k}\frac{(O_i - E_i)^2}{E_i}, \] que, bajo la hipótesis nula de uniformidad y asumiendo independencia entre observaciones, sigue aproximadamente una distribución \(\chi^2\) con \(k-1\) grados de libertad (cuando no se estiman parámetros). Un valor grande del estadístico, o un \(p\)-valor menor que el nivel de significancia \(\alpha\), conduce a rechazar la uniformidad.

Para asegurar la validez de la aproximación se recomienda elegir \(k\) de modo que cada \(E_i \ge 5\). Esta prueba contrasta la forma marginal de la distribución; por sí sola no detecta dependencias temporales, por lo que suele complementarse con pruebas de corridas o Kolmogórov–Smirnov para una evaluación más completa del generador. EJEMPLO

a <- 101 
c <- 17  
m <- 214496317
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] 2.362278e-05 2.385980e-03 2.409841e-01 3.393938e-01 2.787691e-01
##  [6] 1.556809e-01 7.237758e-01 1.013599e-01 2.373513e-01 9.724792e-01
## [11] 2.203966e-01 2.600534e-01 2.653928e-01 8.046690e-01 2.715729e-01
## [16] 4.288621e-01 3.150731e-01 8.223876e-01 6.115128e-02 1.762797e-01
## [21] 8.042468e-01 2.289228e-01 1.212078e-01 2.419913e-01 4.411235e-01
## [26] 5.534688e-01 9.003516e-01 9.355139e-01 4.869077e-01 1.776800e-01
## [31] 9.456760e-01 5.132789e-01 8.411659e-01 9.577510e-01 7.328529e-01
## [36] 1.814441e-02 8.325859e-01 9.117639e-02 2.088151e-01 9.032194e-02
## [41] 1.225158e-01 3.740955e-01 7.836423e-01 1.478728e-01 9.351486e-01
## [46] 4.500136e-01 4.513738e-01 5.887512e-01 4.638713e-01 8.509979e-01
library(agricolae)
histo <- hist(random.number, breaks=6)

hist(random.number, breaks=6)$count # obteniendo las frecuencias observadas con 6 intervalos
## [1] 13 13  9  3 12
 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(random.number)/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    13 10
## [2,]     0.2     0.4    13 10
## [3,]     0.4     0.6     9 10
## [4,]     0.6     0.8     3 10
## [5,]     0.8     1.0    12 10
 # calculando la estadística chi cuadrada
  x2 <- (obser-Ei)^2/Ei 
 x2
## [1] 0.9 0.9 0.1 4.9 0.4
  chicuad <- sum(x2)
 chicuad # Estadistica chi cuadrada
## [1] 7.2
 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: Se aplicó la prueba de bondad de ajuste Chi-cuadrado a una serie de números pseudoaleatorios para verificar su ajuste a una distribución Uniforme(0,1). El rango [0,1) se dividió en cinco intervalos de igual amplitud y se fijó una frecuencia esperada de 10 observaciones por intervalo. Al contrastar las frecuencias observadas con las esperadas, el estadístico obtenido fue χ² = 7,4. Con 4 grados de libertad y α = 0,05 (valor crítico ≈ 9,4877), este resultado no supera el umbral, por lo que no se rechaza la hipótesis de uniformidad; en consecuencia, la muestra analizada es consistente con una distribución uniforme.