¿Son los dígitos de

33

Supongamos que observa 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ías para determinar si esto es realmente aleatorio? FYI estos son los º dígitos de π . Entonces, ¿los dígitos de π son estadísticamente aleatorios? ¿Esto dice algo sobre la constante π ?nπππ

ingrese la descripción de la imagen aquí

Cam.Davidson.Pilon
fuente
10
Esta es una pregunta interesante y enloquecedora. Cualquier estudiante que haya tomado un primer curso en probabilidad teórica de la medida puede demostrar fácilmente que "casi todos" los números reales son normales . Pero se conocen muy pocos ejemplos explícitos, y que yo sepa (fuera de lugar), el asunto no se ha resuelto de ninguna manera para ninguna de las constantes matemáticas irracionales "famosas".
cardenal
44
En relación (estricta) con el comentario de @ cardinal: Número normal
66
¿Cuál es el gráfico? ¡Hay diez barras, extrañamente espaciadas, y todas con valores superiores al 10%!
xan

Respuestas:

15

El Instituto Nacional de Normas de EE. UU. Ha reunido una batería de pruebas que un generador de números (pseudo-) aleatorio debe pasar para ser considerado adecuado, consulte http://csrc.nist.gov/groups/ST/toolkit/rng/stats_tests. html . También hay pruebas conocidas como el conjunto de pruebas Diehard , que se superponen un poco con las pruebas NIST. Los desarrolladores del paquete estadístico Stata informan sus resultados Diehard como parte de su proceso de certificación. Me imagino que puedes tomar bloques de dígitos de , digamos en grupos de 15 dígitos consecutivos, para que sean comparables a losπ precisión de doble tipo , y ejecutar estas baterías de pruebas en números así obtenidos.

Stask
fuente
5

Respondiendo solo la primera de tus preguntas: "¿Qué pruebas aplicarías para determinar si esta [secuencia] es verdaderamente aleatoria?"

¿Qué tal si lo tratamos como una serie temporal y si buscamos correlaciones automáticas? Aquí hay un código R. Primero algunos datos de prueba (primeros 1000 dígitos):

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

Verifique 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 

Luego conviértalo en una serie temporal y ejecute la prueba Box-Pierce:

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

que me dice

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

Por lo general, desearía que el valor p sea inferior a 0.05 para decir que hay correlaciones automáticas.

Ejecute acf(d)para ver las correlaciones automáticas. No he incluido una imagen aquí, ya que es un gráfico aburrido, aunque es curioso que los retrasos más grandes sean a las 11 y 22. Ejecutaracf(d,lag.max=40) para mostrar que no hay pico en el retraso = 33, y que fue solo una coincidencia!


PD: Podríamos comparar qué tan bien lo hicieron esos 1000 dígitos de pi, haciendo las mismas pruebas en 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, realiza la prueba y repite esto 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

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

Darren Cook
fuente
0

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

π

0.1212121212

πππ2222+1ππ

AdamO
fuente
π
π
2
Realmente no sigo esta respuesta. Sí, pi es fijo, pero la serie de dígitos aún puede comportarse como una serie de números aleatorios. No veo cómo 0.1212 ... representa aleatoriedad por cualquier definición. Y como señala en su comentario, si pi contiene alguna secuencia arbitraria de dígitos tiene poca relación con la naturaleza aleatoria de sus dígitos. Entonces, ¿por qué centrarse en eso?
Nuclear Wang
π
@AdamO Solo puedes hacer esa predicción si sabes de antemano que el número que estás describiendo es pi, lo que parece una trampa. Los dígitos en 3.141592 no indican que el siguiente dígito sea 6; la única forma de saberlo es porque estamos describiendo específicamente pi. A menos que ya haya calculado pi a N dígitos, no hay ninguna razón para esperar que el dígito N sea un número en particular. Parece implicar que no existe una secuencia aleatoria de números, porque una vez que la escribe, está arreglada.
Nuclear Wang