39 votos

¿Son los dígitos de $\pi$ ¿Aleatorio desde el punto de vista estadístico?

Supongamos que observas la secuencia:

7, 9, 0, 5, 5, 5, 4, 8, 0, 6, 9, 5, 3, 8, 7, 8, 5, 4, 0, 0, 6, 6, 4, 5 , 3, 3, 7, 5, 9, 8, 1, 8, 6, 2, 8, 4, 6, 4, 1, 9, 9, 0, 5, 2, 2, 0, 4, 5, 2, 8 ...

¿Qué pruebas estadísticas aplicaría usted para determinar si esto es realmente aleatorio? Para su información, estos son los $n$ dígitos de $\pi$ . Por lo tanto, son dígitos de $\pi$ ¿es aleatorio desde el punto de vista estadístico? ¿Dice esto algo sobre la constante $\pi$ ?

enter image description here

18voto

StasK Puntos 19497

El Instituto Nacional de Estándares de Estados Unidos ha elaborado una batería de pruebas que un generador de números (pseudo)aleatorios debe superar para ser considerado adecuado, véase http://csrc.nist.gov/groups/ST/toolkit/rng/stats_tests.html . También hay pruebas conocidas como el Conjunto de pruebas de resistencia que coinciden en cierta medida con las pruebas del NIST. Desarrolladores del paquete estadístico Stata informan de sus resultados de Diehard como parte de su proceso de certificación. Me imagino que se pueden tomar bloques de dígitos de $\pi$ en grupos de 15 dígitos consecutivos, para que sea comparable con el precisión de tipo doble y realizar estas baterías de pruebas sobre los números así obtenidos.

8voto

Assembler Puntos 545

Respondiendo sólo a la primera de sus preguntas: "¿Qué pruebas aplicaría usted para determinar si este [secuencia] es verdaderamente aleatorio?"

¿Qué tal si lo tratamos como una serie temporal y comprobamos las autocorrelaciones? Aquí hay algo de código R. Primero algunos datos de prueba (primeros 1000 dígitos):

digits_string="1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989"
digits=as.numeric(unlist(strsplit(digits_string,"")))

Comprueba los recuentos de cada dígito:

> table(digits)
digits
  0   1   2   3   4   5   6   7   8   9 
 93 116 103 102  93  97  94  95 101 106 

A continuación, conviértalo en una serie temporal y ejecute la prueba de Box-Pierce:

d=as.ts( digits )
Box.test(d)

que me dice:

X-squared = 1.2449, df = 1, p-value = 0.2645

Normalmente, se desea que el valor p sea inferior a 0,05 para decir que hay autocorrelación.

Ejecutar acf(d) para ver las autocorrelaciones. No he incluido una imagen aquí porque es un gráfico aburrido, aunque es curioso que los mayores desfases estén en 11 y 22. Ejecutar acf(d,lag.max=40) para demostrar que no hay ningún pico en lag=33, ¡y que fue sólo una coincidencia!


P.D. Podríamos comparar lo bien que lo hicieron esos 1000 dígitos de pi, haciendo las mismas pruebas con números aleatorios reales.

probs=sapply(1:100,function(n){
    digits=floor(runif(1000)*10)
    bt=Box.test(ts(digits))
    bt$p.value
    })

Esto genera 1000 dígitos aleatorios, hace la prueba y la repite 100 veces.

> summary(probs)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
0.006725 0.226800 0.469300 0.467100 0.709900 0.969900 
> sd(probs)
[1] 0.2904346

Así que nuestro resultado estaba cómodamente dentro de la primera desviación estándar, y pi grazna como un pato al azar. (He utilizado set.seed(1) si quieres reproducir esos números exactos).

2voto

alexs77 Puntos 36

Es una pregunta extraña. Los números no son aleatorios.

Como una serie temporal de dígitos de base 10, $\pi$ está completamente arreglado.

Si te refieres a la selección aleatoria de un índice para la serie temporal, y a la elección de ese número, claro que es aleatorio. Pero también lo es el aburrido número racional $0.1212121212\ldots$ . En ambos casos, la "aleatoriedad" proviene de la elección de cosas al azar, como sacar nombres de un sombrero.

Si lo que se pretende es algo más matizado, como por ejemplo: "Si revelo secuencialmente una secuencia de números posiblemente aleatoria, ¿podría decirme si se trata de un subconjunto fijo de $\pi$ ? ¿Y de dónde viene?". Bueno, primero $\pi$ no se repite, diferentes secuencias aleatorias se alinearán al menos localmente para una pequeña tirada. Ese es un resultado de la teoría de números, no de la estadística. En cuanto se rompe, hay que pasar a la siguiente instancia de alineación. Computacionalmente no es posible alinear cualquier secuencia aleatoria porque $\pi$ podría coincidir con el $2^{2^{2^2}}+1$ - en el lugar. Incluso si la secuencia se alinea con $\pi$ en algún lugar, no significa que no sea aleatorio. Por ejemplo, podría elegir 3 al azar, no significa que sea el primer dígito de $\pi$ .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X