Está en la página 1de 5

Evaluación de la Calidad de Generadores de

Números Pseudoaleatorios: Enfoque Analógico y


Digital
Camila Atehortua Duarte Aldo Cascante Gutierrez
Correo: camila.atehortua@ucr.ac.cr Correo: aldo.cascante@ucr.ac.cr
C20857 C21767


Resumen—Este proyecto aborda la evaluación de generado- generadores con 0.5 y sus desviaciones estándar con 1/ 12,
res de números pseudoaleatorios desde enfoques analógicos y siendo estos los de una distribución U(0,1). Nuestras hipótesis
digitales. Se realiza una detallada comparación de las medias y nulas son las siguientes:
desviaciones estándar de cinco métodos con los valores esperados
de una distribución U(0,1). Los métodos considerados abarcan
generadores digitales implementados en C++, GeoGebra y R, ası́ 1
como números generados analógicamente mediante tiradas de H0 : σR = √ (1)
12
monedas y la aguja de Buffon.
A través de un minucioso contraste de hipótesis, la evaluación
1
H0 : µR = (2)
de intervalos de confianza y valores p, se llega a la conclusión 2
de que todos los métodos demuestran una adaptación efectiva a y las hipótesis alternativas son:
la distribución U(0,1). Si bien los resultados respaldan la calidad
de los generadores tanto en entornos digitales como analógicos,
se destaca que los números aleatorios generados por GeoGebra 1
exhiben una calidad superior en comparación con los demás Ha : σR ̸= √ (3)
12
métodos.
1
Index Terms—números aleatorios, generadores pseudoaleato- Ha : µR ̸= (4)
rios, distribución uniforme, estadı́stica. 2
III. M ETODOLOG ÍA
I. I NTRODUCCI ÓN
Muestreo
En el ámbito de la simulación, los números aleatorios des-
empeñan un papel crucial y son generados a menudo mediante Se generarán 100 números aleatorios en cada plataforma
algoritmos que producen secuencias de valores asumidos como y método analógico. Los métodos utilizados para generar las
realizaciones de variables aleatorias U(0,1) [1]. A pesar de muestras son los siguientes:
asumir que estos valores provienen de variables aleatorias U(0, RStudio: Se utilizará la función runif(100) en el lenguaje
1) independientes e idénticamente distribuidas, los generadores R para generar números pseudoaleatorios.
de números aleatorios son en realidad programas deterministas GeoGebra: Se empleará la funcionalidad de generación
que intentan emular una secuencia que parezca aleatoria. de números aleatorios en GeoGebra: UniformeAleato-
Este proyecto explora las implicaciones de esta discrepancia ria(0,1,100).
y evalúa la efectividad de las transformaciones utilizadas C++: Se utilizará la función popular para generar núme-
en la simulación. Se realizará una evaluación de diferentes ros aleatorios en C++, que es rand().
generadores de números pseudoaleatorios, ası́ como métodos Monedas: Se tomarán como números en binario de 5
analógicos, utilizando herramientas estadı́sticas aprendidas en dı́gitos, siendo el escudo un 1 y la cara un 0. Para
el curso. Se explorarán y compararán los generadores im- encontrar el valor aleatorio en el intervalo [0,1], se divide
plementados en tres entornos distintos: RStudio, GeoGebra y por 31.
C++, ası́ como métodos analógicos como la tirada de monedas Agujas de Buffon: Se arroja una aguja sobre un papel
y la aguja de Buffon. con lı́neas paralelas que midan lo mismo que la aguja.
En este proyecto, se espera determinar cuál de los genera- Se mide la distancia x desde el centro de la aguja hasta
dores de números pseudoaleatorios es más efectivo buscando la lı́nea más cercana entre la aguja y las lı́neas; esta
cuál se ajusta mejor a una distribución U(0,1), con el fin de distancia se multiplica por 2 y se divide entre la distancia
examinar la calidad de cada método. de la aguja.

II. H IP ÓTESIS Análisis estadı́stico


Para determinar cuál de los generadores de números alea- En esta sección, se utilizará RStudio para facilitar el cálculo
torios es más efectivo, se contrastarán las medias de los de los intervalos de confianza y del valor p.

1
Análisis de la Desviación Estándar: Utilizando R:
• Intervalo de Confianza: Se utiliza la distribución chi-
cuadrado para construir el intervalo de confianza para
s = sd(rStudio)
la desviación estándar.
• Valor p para la Hipótesis Nula: Se calcula el valor Xbar = mean(rStudio)
p utilizando la distribución chi-cuadrado. q = qnorm(0,995, sd = s/sqrt(100))
Análisis de la Media: (intervalo = c(Xbar − q, Xbar + q))
• Intervalo de Confianza: La elección de la distri- ## 0. 4 426 665 0. 5 830 809
bución normal estándar se basa en el Teorema del
Lı́mite Central. El intervalo de confianza para la Finalmente se calcula el valor p asociado tal que:
media se construye considerando la aproximación
normal de la distribución de la media de la muestra
(p = 2 ∗ pt(abs((mean(rStudio) − 0,5))/...
para tamaños de muestra suficientemente grandes.
• Valor p para la Hipótesis Nula: Se utiliza la distri- ... (s/sqrt(100)), ni, lower.tail = F ALSE))
bución t de Student para calcular el valor p. ## 0. 6 377 359
A. RStudio B. Geogebra
Comenzando por la hipótesis nula 1, se calculan los inter- Para el intervalo de confianza de la hipótesis nula 1 utiliza-
valos a contrastar. Para ello se utilizará la siguiente ecuación: mos la ecuación 5 aplicada con RStudio de esta forma, siendo
“geogebra” la muestra recogida:
νs2 νs2
P r{ <σ< } = 1 − α (5)
qx2 (1 − α/2, ν) qx2 (1 − α/2, ν)
ni = length(geogebra) − 1
Aplicándola con RStudio, siendo “rStudio” la muestra re-
s = sd(geogebra)
cogida:
a = sqrt(ni ∗ sˆ2/qchisq(0,995, ni))
b = sqrt(ni ∗ sˆ2/qchisq(0,005, ni))
ni = length(rStudio) − 1
(intervalo = c(a, b))
s = sd(rStudio)
## 0. 2 455 476 0. 3 549 593
a = sqrt(ni ∗ sˆ2/qchisq(0,995, ni))
b = sqrt(ni ∗ sˆ2/qchisq(0,005, ni)) De igual forma con RStudio y la ecuación 6:
(intervalo = c(a, b))
## 0. 2 300 358 0. 3 325 358 sigma H0 = 1/sqrt(12)
Resultando ası́ con el intervalo de confianza, se continua a qobs = ni ∗ sˆ2/sigma H0ˆ2
calcular su valor p con la siguiente formula: (p = pchisq(qobs, ni))
( ## 0. 5 626 297
P r{X 2 ≥ qobs } (2 ∗ min(p, 1 − p))
2min (6)
P r{X 2 ≤ qobs } ## 0. 8 747 406
Nuevamente utilizamos RStudio para aplicarla Para la hipótesis nula 2 utilizando la ecuación 7:

sigma H0 = 1/sqrt(12)
s = sd(geogebra)
qobs = ni ∗ sˆ2/sigma H0ˆ2
Xbar = mean(geogebra)
(p = pchisq(qobs, ni))
q = qnorm(0,995, sd = s/sqrt(100))
## 0. 2 280 782
(intervalo = c(Xbar − q, Xbar + q))
(2 ∗ min(p, 1 − p))
## 0. 4 378 586 0. 5 877 414
## 0. 4 561 565
Y su valor p asociado:
Continuando con la hipótesis nula restante, la hipótesis 2.
Calculando este intervalo de confianza tal que:
(p = 2 ∗ pt(abs((mean(geogebra) − 0,5))/...
qnorm (0, 995)σX ... (s/sqrt(100)), ni, lower.tail = F ALSE))
X̄ ± √ (7)
n ## 0. 660 931

2
C. C++
Para el intervalo de confianza de la hipótesis nula 1 utiliza- sigma H0 = 1/sqrt(12)
mos la ecuación 5 aplicada con RStudio de esta forma, siendo qobs = ni ∗ sˆ2/sigma H0ˆ2
“cpp” la muestra recogida:
(p = pchisq(qobs, ni))
## 0. 8 825 476
ni = length(cpp) − 1 (2 ∗ min(p, 1 − p))
s = sd(cpp) ## 0. 2 349 048
a = sqrt(ni ∗ sˆ2/qchisq(0,995, ni))
Para la hipótesis nula 2 utilizando la ecuación 7:
b = sqrt(ni ∗ sˆ2/qchisq(0,005, ni))
(intervalo = c(a, b)) s = sd(monedas)
## 0. 2 491 551 0. 3 601 743 Xbar = mean(monedas)
De igual forma con RStudio y la ecuación 6: q = qnorm(0,995, sd = s/sqrt(100))
(intervalo = c(Xbar − q, Xbar + q))
sigma H0 = 1/sqrt(12) ## 0. 4 011 460 0. 5 620 798
qobs = ni ∗ sˆ2/sigma H0ˆ2 Y su valor p asociado:
(p = pchisq(qobs, ni))
## 0. 6 423 828 (p = 2 ∗ pt(abs((mean(monedas) − 0,5))/...
(2 ∗ min(p, 1 − p)) ... (s/sqrt(100)), ni, lower.tail = F ALSE))
## 0. 7 152 345 ## 0. 5 574 768
E. Agujas de Buffon
Para la hipótesis nula 2 utilizando la ecuación 7:
Para el intervalo de confianza de la hipótesis nula 1 utiliza-
mos la ecuación 5 aplicada con RStudio de esta forma, siendo
s = sd(cpp) “aguja” la muestra recogida:
Xbar = mean(cpp)
q = qnorm(0,995, sd = s/sqrt(100)) ni = length(aguja) − 1
(intervalo = c(Xbar − q, Xbar + q)) s = sd(aguja)
## 0. 4 424 844 0. 5 945 693 a = sqrt(ni ∗ sˆ2/qchisq(0,995, ni))
b = sqrt(ni ∗ sˆ2/qchisq(0,005, ni))
Y su valor p asociado:
(intervalo = c(a, b))
## 0. 2 582 196 0. 3 732 778
(p = 2 ∗ pt(abs((mean(cpp) − 0,5))/...
De igual forma con RStudio y la ecuación 6:
... (s/sqrt(100)), ni, lower.tail = F ALSE))
## 0. 5 317 294 sigma H0 = 1/sqrt(12)
D. Moneda qobs = ni ∗ sˆ2/sigma H0ˆ2
Para el intervalo de confianza de la hipótesis nula 1 utiliza- (p = pchisq(qobs, ni))
mos la ecuación 5 aplicada con RStudio de esta forma, siendo ## 0. 8 108 881
“monedas” la muestra recogida: (2 ∗ min(p, 1 − p))
## 0. 3 782 237
ni = length(monedas) − 1 Para la hipótesis nula 2 utilizando la ecuación 7:
s = sd(monedas)
a = sqrt(ni ∗ sˆ2/qchisq(0,995, ni)) s = sd(aguja)
b = sqrt(ni ∗ sˆ2/qchisq(0,005, ni)) Xbar = mean(aguja)
(intervalo = c(a, b)) q = qnorm(0,995, sd = s/sqrt(100))
## 0. 2 636 520 0. 3 811 307 (intervalo = c(Xbar − q, Xbar + q))
De igual forma con RStudio y la ecuación 6: ## 0. 4 196 911 0. 5 773 089

3
Y su valor p asociado: [0.4011460, 0.5620798] y tiene un valor p = 0.5574768. Por lo
tanto, no se tiene suficiente evidencia para rechazar la hipótesis
nula.
(p = 2 ∗ pt(abs((mean(aguja) − 0,5))/...
... (s/sqrt(100)), ni, lower.tail = F ALSE)) E. Agujas de Buffon
## 0. 9 609 968 Para la hipótesis 1, se obtuvo un intervalo de confianza del
99 % tal que la desviación estándar (0,28867) se encuentra en
IV. R ESULTADOS el intervalo de [0.2582196, 0.3732778] y tiene un valor p =
Contraste de hipótesis 0.3782237. Por lo tanto, no se tiene suficiente evidencia para
Con los intervalos de confianza construidos mediante el rechazar la hipótesis nula.
software R en la metodologı́a, a continuación se presenta el Para la hipótesis 2, se obtuvo un intervalo de confianza del
contraste de las hipótesis nulas y alternativas. 99 % tal que la media (0,5) se encuentra en el intervalo de
[0.4196911, 0.5773089] y tiene un valor p = 0.9609968. Por lo
A. RStudio tanto, no se tiene suficiente evidencia para rechazar la hipótesis
Para la hipótesis 1, se obtuvo un intervalo de confianza del nula.
99 % tal que la desviación estándar (0,28867) se encuentra en Tablas y gráficas
el intervalo de [0.2300358 0.3325358] y tiene un valor p =
0.4561565. Por lo tanto, no se tiene suficiente evidencia para En conjunto a los análisis estadı́sticos realizados, se crearon
rechazar la hipótesis nula. múltiples gráficos y una tabla para facilitar la visualización y
Para la hipótesis 2, se obtuvo un intervalo de confianza del comparación de los datos.
99 % tal que la media (0,5) se encuentra en el intervalo de Cuadro I: Comparación de la desviación estándar, media, y
[0.4426665, 0.5830809] y tiene un valor p = 0.6377359. Por lo cuartiles entre métodos de generación y distribución uniforme
tanto, no se tiene suficiente evidencia para rechazar la hipótesis Uniforme (0,1) RStudio GeoGebra C++ Monedas Agujas de Buffon
nula. Media 0.5 0.5128737 0.5128 0.5185269 0.4816129 0.4985
Desviación
0.2886751 0.2725616 0.2909409 0.2952154 0.3123922 0.3059556
Estándar
B. Geogebra cuartil 1 0.25 0.2915449 0.24 0.280221 0.2258065 0.2375
cuartil 2 0.5 0.5093311 0.525 0.523774 0.4516129 0.45
Para la hipótesis 1, se obtuvo un intervalo de confianza del cuartil 3
cuartil 4
0.75
1
0.7555669
0.983343
0.7725
0.98
0.7860727
0.986724
0.7419355
1
0.75
1
99 % tal que la desviación estándar (0,28867) se encuentra en Cantidad
de Muestras
100 100 100 100 100
el intervalo de [0.2455476, 0.3549593] y tiene un valor p =
0.8747406. Por lo tanto, no se tiene suficiente evidencia para
rechazar la hipótesis nula.
Para la hipótesis 2, se obtuvo un intervalo de confianza del
99 % tal que la media (0,5) se encuentra en el intervalo de
[0.4378586, 0.5877414] y tiene un valor p = 0.660931. Por lo
tanto, no se tiene suficiente evidencia para rechazar la hipótesis
nula.
C. C++
Para la hipótesis 1, se obtuvo un intervalo de confianza del
99 % tal que la desviación estándar (0,28867) se encuentra en
el intervalo de [0.2491551, 0.3601743] y tiene un valor p = Figura 1: Diagrama de caja y bigotes de cada método y
0.7152345. Por lo tanto, no se tiene suficiente evidencia para distribución uniforme
rechazar la hipótesis nula.
Para la hipótesis 2, se obtuvo un intervalo de confianza del
99 % tal que la media (0,5) se encuentra en el intervalo de
[0.4424844, 0.5945693] y tiene un valor p = 0.5317294. Por lo
tanto, no se tiene suficiente evidencia para rechazar la hipótesis
nula.
D. Monedas
Para H0: la hipótesis 1, se obtuvo un intervalo de confianza
del 99 % tal que la desviación estándar (0,28867) se encuentra
en el intervalo de [0.2636520, 0.3811307] y tiene un valor p =
0.2349048. Por lo tanto, no se tiene suficiente evidencia para
rechazar la hipótesis nula. Figura 2: Histograma de densidad de muestras de RStudio en
Para la hipótesis 2, se obtuvo un intervalo de confianza del contraste con la U(0,1) (linea roja)
99 % tal que la media (0,5) se encuentra en el intervalo de

4
Figura 3: Histograma de densidad de muestras de RStudio en Figura 5: Histograma de densidad de muestras de C++ en
contraste con la U(0,1) (linea roja) contraste con la U(0,1) (linea roja)

Figura 4: Histograma de densidad de muestras de geogebra en Figura 6: Histograma de densidad de muestras de las monedas
contraste con la U(0,1) (linea roja) en contraste con la U(0,1) (linea roja)

V. C ONCLUSIONES
El objetivo principal de este trabajo fue determinar cuál
de los generadores, RStudio, GeoGebra, C++, y los métodos
analógicos de las Agujas de Buffon y la tirada de mone-
das, sigue una distribución uniforme U(0,1), es decir, genera
números pseudoaleatorios lo más cercanos posible a números
aleatorios.
Al observar los resultados, los cinco métodos cumplen ade-
cuadamente las condiciones y superan las pruebas establecidas
para afirmar las hipótesis 1 y 2, confirmando ası́ que tienen una Figura 7: Histograma de densidad de muestras de agujas de
buena calidad como generadores de números pseudoaleatorios. Buffon en contraste con la U(0,1) (linea roja)
Además, en el Cuadro I se puede apreciar que cada variable
tiene su media y desvı́o aproximados al modelo uniforme.
En particular, la variable de los números generados con las las monedas de Buffon tienen la media más cercana a 0.5, no
Agujas de Buffon tiene la media más cercana a 0.5, mientras se observa la misma coherencia con su desviación estándar,
que el desvı́o de los números
√ generados con GeoGebra es mientras que con los números generados por GeoGebra se
el más aproximado a 1/ 12 o ≈ 0,28867. Las Figuras 2 a presenta una mayor consistencia tanto en su cercanı́a a la
6, que representan los histogramas de densidad, confirman la media de U(0,1) como en su desviación estándar.
similitud con la distribución de densidad de U(0,1), destacando En resumen, concluimos que todos los generadores demues-
la mejor adherencia de los números generados por GeoGebra. tran una adaptación efectiva a U(0,1), sin embargo, los núme-
Observamos, además, en la Figura 7 que, aunque todos los ros generados por GeoGebra muestran la mejor adherencia a
generadores se adaptan a la U(0,1), los generadores digitales la distribución uniforme, evidenciando una mayor calidad en
muestran más simetrı́a que sus contrapartes analógicas. su generación de números pseudoaleatorios.
Estos hallazgos se respaldan con los valores de p obtenidos
en nuestros cálculos. La variable de las Agujas de Buffon R EFERENCIAS
muestra el valor de p más elevado para la media, alcanzando [1] M. Pulido, “Generación de números aleatorios.
un p de 0.959579. Por otro lado, la variable de las desviaciones ”https://webs.um.es/mpulido/miwiki/lib/exe/fetch.php?media=wiki:
simt1b.pdf (Accesado Nov. 12, 2023).
de los números generados con GeoGebra exhibe el valor de
p más alto, situándose en 0.8747406. Sin embargo, aunque

También podría gustarte