Os dígitos de estatisticamente aleatórios?

33

Suponha que você observe a sequência:

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. ..

Quais testes estatisticamente você aplicaria para determinar se isso é realmente aleatório? FYI estes são os º dígitos de . Assim, os dígitos de estatisticamente aleatórios? Isso diz algo sobre a constante ?π π πnπππ

insira a descrição da imagem aqui

Cam.Davidson.Pilon
fonte
10
Esta é uma pergunta interessante e enlouquecedora. Qualquer aluno que tenha feito um primeiro curso em probabilidade teórica da medida pode facilmente provar que "quase todos" os números reais são normais . Mas pouquíssimos exemplos explícitos são conhecidos e, que eu saiba (de imediato), o assunto ainda não foi resolvido para nenhuma das constantes matemáticas irracionais "famosas".
cardeal
4
Em conexão (estrita) ao comentário do @ cardinal: Número normal
6
Qual é o gráfico? Existem dez barras, espaçadas estranhamente, e todas com valores acima de 10%!
xan

Respostas:

15

O Instituto Nacional de Padrões dos EUA reuniu uma bateria de testes para que um gerador de números (pseudo-) aleatórios deva passar para ser considerado adequado, consulte http://csrc.nist.gov/groups/ST/toolkit/rng/stats_tests. html . Também existem testes conhecidos como o conjunto de testes Diehard , que se sobrepõem um pouco aos testes do NIST. Os desenvolvedores do pacote estatístico Stata relatam seus resultados Diehard como parte de seu processo de certificação. Imagino que você possa pegar blocos de dígitos de , digamos em grupos de 15 dígitos consecutivos, para serem comparáveis ​​à precisão do tipo duplo , e executar essas baterias de testes nos números assim obtidos.π

StasK
fonte
5

Respondendo apenas à primeira de suas perguntas: "Quais testes você aplicaria para determinar se essa [sequência] é realmente aleatória?"

Que tal tratá-lo como uma série temporal e verificar autocorrelações? Aqui está um código R. Primeiro, alguns dados de teste (primeiros 1000 dígitos):

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

Verifique as contagens 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 

Em seguida, transforme-o em uma série temporal e execute o teste Box-Pierce:

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

o que me diz:

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

Normalmente, você deseja que o valor-p seja menor que 0,05 para dizer que há correlações automáticas.

Corra acf(d)para ver as correlações automáticas. Não incluí uma imagem aqui, pois é um gráfico sem graça, embora seja curioso que os maiores atrasos sejam 11 e 22. Corra acf(d,lag.max=40)para mostrar que não há pico no atraso = 33, e que foi apenas coincidência!


PS Podemos comparar o desempenho desses 1000 dígitos de pi, fazendo os mesmos testes em números aleatórios reais.

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

Isso gera 1000 dígitos aleatórios, faz o teste e repete isso 100 vezes.

> 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

Portanto, nosso resultado foi confortavelmente dentro do primeiro desvio padrão, e pi chia como um pato aleatório. Usei set.seed(1)se você deseja reproduzir esses números exatos.

Darren Cook
fonte
0

É uma pergunta estranha. Os números não são aleatórios.

Como uma série temporal de 10 dígitos base, é completamente corrigido.π

Se você está falando sobre selecionar aleatoriamente um índice para a série temporal e escolher esse número, com certeza é aleatório. Mas o número racional e chato é . Nos dois casos, a "aleatoriedade" vem de escolher coisas aleatoriamente, como desenhar nomes de um chapéu.0.1212121212

Se o que você está falando é mais matizado, como em "Se eu revelo uma sequência possivelmente aleatória de números, você poderia me dizer se é um subconjunto fixo de ? E de onde veio?". Bem, primeiro, embora não esteja se repetindo, sequências aleatórias diferentes serão alinhadas pelo menos localmente por uma pequena execução. Esse é um resultado da teoria dos números, não estatístico. Assim que você quebrar, você precisará digitalizar para a próxima instância de alinhamento. Em termos computacionais, não é possível alinhar qualquer sequência aleatória porque pode corresponder até o lugar. Heck, mesmo que a sequência esteja alinhada comπππ2222+1πem algum lugar, não significa que não é aleatório. Por exemplo, eu poderia escolher 3 aleatoriamente, não significa que é o primeiro dígito de .π

AdamO
fonte
Exatamente a que "resultado da teoria dos números" você está se referindo? AFAIK, ninguém sabe se é um número normal. π
whuber
@whuber, o que quero dizer é que se realmente contém todas as subsequências possíveis de números não é conhecido (corrija-me se estiver errado) e que a prova / descoberta não tem nada a ver com aleatoriedade / probabilidadeπ
AdamO
2
Eu realmente não sigo esta resposta. Sim, pi é fixo, mas a série de dígitos ainda pode se comportar como uma série de números aleatórios. Não vejo como 0,1212 ... representa aleatoriedade por qualquer definição. E, como você indica em seu comentário, se pi contém ou não uma sequência arbitrária de dígitos, tem pouca influência na natureza aleatória de seus dígitos. Então, por que focar nisso?
Nuclear Wang em
@NuclearWang Só porque a ordem de uma sequência de dígitos é incompreensível para nossas mentes ingênuas não significa que seja "tão bom quanto aleatório". Aqui está um exemplo de um número não repetitivo que talvez atenda a alguns requisitos de aleatoriedade, mas não a outros: 0.12112211122211112222 ... No entanto, eu posso pegar um subconjunto do histórico de números anteriores e prever o futuro inteiro. O mesmo pode ser dito de , apenas requer que eu conheça toda a história das séries temporais. π
AdamO 4/09
@AdamO Você só pode fazer essa previsão se souber de antemão que o número que está descrevendo é pi, o que parece trapaça. Os dígitos em 3.141592 não indicam que o próximo dígito é 6; a única maneira de saber isso é porque estamos descrevendo especificamente o pi. A menos que você já tenha calculado pi a N dígitos, não há motivo para esperar que o dígito N seja um número específico. Você parece sugerir que não existe uma sequência aleatória de números, porque, depois de anotá-la, ela é fixa.
Nuclear Wang em