• Nenhum resultado encontrado

Thayssa Fernandes da Fonseca. Testes Estatísticos para Avaliação de Sequências Produzidas por Geradores de

N/A
N/A
Protected

Academic year: 2021

Share "Thayssa Fernandes da Fonseca. Testes Estatísticos para Avaliação de Sequências Produzidas por Geradores de"

Copied!
53
0
0

Texto

(1)

Thayssa Fernandes da Fonseca

Testes Estat´ısticos para Avalia¸

ao de

Sequˆ

encias Produzidas por Geradores de

umeros Aleat´

orios

Niter´oi - RJ, Brasil

(2)

Universidade Federal Fluminense

Thayssa Fernandes da Fonseca

Testes Estat´ısticos para Avalia¸

ao de

Sequˆ

encias Produzidas por

Geradores de N´

umeros Aleat´

orios

Trabalho de Conclus˜ao de Curso

Monografia apresentada para obten¸c˜ao do grau de Bacharel em Estat´ıstica pela Universidade Federal Fluminense.

Orientador(a): Prof. Dr. Maria Cristina Bessa Moreira

Niter´oi - RJ, Brasil

(3)

Universidade Federal Fluminense

Thayssa Fernandes da Fonseca

Testes Estat´ısticos para Avalia¸

ao de

Sequˆ

encias Produzidas por Geradores de

umeros Aleat´

orios

Monografia de Projeto Final de Gradua¸c˜ao sob o t´ıtulo “Testes Estat´ısticos para Avalia¸c˜ao de Sequˆencias Produzidas por Ge-radores de N´umeros Aleat´orios”, defendida por Thayssa Fer-nandes da Fonseca e aprovada em 19 de dezembro de 2019, na cidade de Niter´oi, no Estado do Rio de Janeiro, pela banca examinadora constitu´ıda pelos professores:

Profa. Dra. Maria Cristina Bessa Moreira Departamento de Estat´ıstica – UFF

Prof. Dra. N´ubia Karla de Oliveira Almeida Departamento de Estat´ıstica – UFF

Prof. Dr. Mois´es Lima de Menezes Departamento de Estat´ıstica – UFF

(4)

Ficha catalográfica automática - SDC/BIME Gerada com informações fornecidas pelo autor

Bibliotecário responsável: Ana Nogueira Braga - CRB7/4776

F676t Fonseca, Thayssa Fernandes da

Testes Estatísticos para Avaliação de Sequências Produzidas por Geradores de Números Aleatórios / Thayssa Fernandes da Fonseca ; Maria Cristina Bessa Moreira, orientadora. Niterói, 2019.

52 f. : il.

Trabalho de Conclusão de Curso (Graduação em

Estatística)-Universidade Federal Fluminense, Instituto de Matemática e Estatística, Niterói, 2019.

1. Aleatoriedade. 2. Geradores de Números Pseudo-Aleatórios. 3. Geradores de Números Pseudo-Aleatórios. 4. Uniformidade. 5. Produção intelectual. I. Moreira, Maria Cristina Bessa, orientadora. II. Universidade Federal Fluminense. Instituto de Matemática e Estatística. III. Título.

(5)

-Resumo

Junto com o avan¸co do uso de computadores, pode-se observar o aumento no uso de simula¸c˜oes num´ericas para a resolu¸c˜ao de problemas estat´ısticos e de outras ´areas. Tais simula¸c˜oes fazem uso de sequˆencias de n´umeros aleat´orios. Entretanto, as sequˆencias usadas nas simula¸c˜oes s˜ao geradas por algoritmos determin´ısticos denominados geradores de n´umeros pseudo-aleat´orios. O presente trabalho apresenta alguns testes estat´ısticos propostos na literatura para avaliar a hip´otese de aleatoriedade dessas sequˆencias. S˜ao tamb´em apresentados os c´odigos dos programas para a implementa¸c˜ao desses testes. A t´ıtulo de ilustra¸c˜ao, os testes s˜ao aplicados a sequˆencias geradas por softwares comumente utilizados por alunos de gradua¸c˜ao em Estat´ıstica e profissionais da ´area.

Palavras-chave: Aleatoriedade. Geradores de N´umeros Aleat´orios. Geradores de N´umeros Pseudo-Aleat´orios. Uniformidade. Testes Estat´ısticos.

(6)

Dedicat´

oria

(7)

Agradecimentos

Agrade¸co primeiro a Deus por ter me dado for¸cas para chegar at´e o presente momento.

Aos meus pais e `a minha irm˜a por terem sempre me mostrado que a educa¸c˜ao ´e o melhor caminho, por terem investido nisso e por terem me sustentado nos momentos mais dif´ıceis, a presen¸ca e o amor de vocˆes me deu for¸cas pra continuar. Ao meu noivo Ramon, por todo apoio e incentivo e por ter me ajudado a confiar em mim. `A minha fam´ılia por toda a torcida, em especial ao meu avˆo pois sei que ele torce por mim de algum lugar.

`

A professora Maria Cristina B. Moreira por todo tempo dedicado a mim e a este trabalho, por toda a vontade em ajudar. Aos professores que tive ao longo da escola e da gradua¸c˜ao, sem tudo o que aprendi com vocˆes nada disso seria poss´ıvel.

Aos amigos, da ´epoca de escola, do trabalho e da gradua¸c˜ao por terem tornado essa jornada mais leve.

`

(8)

Sum´

ario

Lista de Figuras

Lista de Tabelas

1 Introdu¸c˜ao p. 11

1.1 Revis˜ao Bibliogr´afica . . . p. 12

1.1.1 M´etodo dos Meios Quadrados . . . p. 12

1.1.2 M´etodo Linear Congruencial . . . p. 12

1.2 Defini¸c˜oes importantes . . . p. 13

1.3 Objetivos . . . p. 14

1.4 Organiza¸c˜ao . . . p. 14

2 Materiais e M´etodos p. 15

2.1 Testes de aderˆencia . . . p. 15

2.1.1 Teste de Qui-Quadrado . . . p. 16

2.1.2 Teste de Kolmogorov-Smirnov . . . p. 17

2.2 Teste do Gap . . . p. 21

2.3 Teste do Rank . . . p. 22

2.4 Teste do maior dentre k . . . p. 23

2.5 Teste da Colis˜ao . . . p. 24

2.6 Teste do Pˆoquer . . . p. 27

(9)

3 An´alise dos Resultados p. 31

3.1 Teste Qui-Quadrado . . . p. 31

3.2 Teste de Kolmogorov-Smirnov . . . p. 32

3.3 Teste do Gap . . . p. 32

3.4 Teste do Rank . . . p. 33

3.5 Teste do maior dentre k . . . p. 33

3.6 Teste da Colis˜ao . . . p. 34

3.7 Teste do Pˆoquer . . . p. 34

3.8 Teste em Dois N´ıveis . . . p. 35

4 Conclus˜oes p. 37

Referˆencias p. 38

Apˆendice A -- Programas Computacionais p. 40

A.1 C´odigo do gerador linear congruencial . . . p. 40

A.2 Teste Qui-quadrado . . . p. 41

A.3 Teste Kolmogorov-Smirnov . . . p. 42

A.4 Teste do Gap . . . p. 45

A.5 Teste do Rank . . . p. 47

A.6 Teste do maior dentre k no R . . . p. 47

A.7 Teste da Colis˜ao . . . p. 49

A.8 Teste do Pˆoquer no R . . . p. 49

(10)

Lista de Figuras

1 Exemplo do valor amostral da estat´ıstica K3+. . . p. 18 2 Ilustra¸c˜ao dos poss´ıveis n´umeros de colis˜oes para k = 6 e n = 4. . . p. 26

3 Indicativos de significˆancia de testes qui-quadrado para 5 sequˆencias com

tamanhos n = 500, 5.000 e 50.000, respectivamente. . . p. 32

4 Indicativos de significˆancia de testes de Kolmogorov-Smirnov para 5

sequˆencias com tamanhos n = 500, 5.000 e 50.000, respectivamente. . . p. 32

5 Indicativos de significˆancia de testes do gap para 5 sequˆencias com

ta-manhos n = 500 e 5.000, respectivamente. . . p. 33

6 Indicativos de significˆancia de testes do rank para 5 sequˆencias com

ta-manhos n = 500. . . p. 33

7 Indicativos de significˆancia de testes do maior dentre k para 5 sequˆencias

com tamanhos n = 500, 5.000 e 50.000, respectivamente. . . p. 33

8 Indicativos de significˆancia de testes da colis˜ao para 5 sequˆencias com

tamanhos n = 500, 5.000 e 50.000, respectivamente. . . p. 34

9 Indicativos de significˆancia de testes do pˆoquer para 5 sequˆencias com

tamanhos n = 100.000. . . p. 34

10 Indicativos de significˆancia de testes do pˆoquer para 5 sequˆencias com

tamanhos n = 500, 5.000 e 50.000, respectivamente. . . p. 35

11 Indicativos de significˆancia do teste em dois n´ıveis com sequˆencias com

tamanhos n = 500, 5.000 e 50.000, respectivamente. . . p. 35

12 Indicativos de significˆancia do teste em dois n´ıveis com sequˆencias com

(11)

Lista de Tabelas

1 Baterias de testes na biblioteca TestU01 . . . p. 15

2 Soma das faces no lan¸camento de dois dados honestos . . . p. 16

3 Frequˆencias observadas . . . p. 17

4 Fun¸c˜ao de distribui¸c˜ao te´orica e emp´ırica para os dados do Exemplo 2.2 p. 21

5 Quantidade de matrizes 2 × 2 com determinante nulo em fun¸c˜ao do

n´umero de zeros na matriz . . . p. 22

6 Fun¸c˜ao de distribui¸c˜ao te´orica e emp´ırica para os dados do Exemplo 2.5 p. 24

7 Intervalos com n´umero de colis˜oes n˜ao nulo no Exemplo 2.6 . . . p. 27

8 M˜aos do jogo de pˆoquer cl´assico . . . p. 27

9 M˜aos do jogo de pˆoquer simplificado . . . p. 28

10 Rela¸c˜ao entre o n´umero de d´ıgitos distintos no teste do pˆoquer e o n´umero

de colis˜oes . . . p. 28

11 N´umero de d´ıgitos distintos, probabilidades e probabilidades acumuladas

em uma m˜ao de pˆoquer simplificado . . . p. 28

12 Dados para o exemplo para o teste do pˆoquer . . . p. 29

13 Frequˆencias observadas e esperadas para os dados do Exemplo 2.7 . . . p. 29

14 C´alculos da estat´ıstica do teste de Kolmogorov-Smirnov aplicado aos

dados do Exemplo 2.7 . . . p. 30

(12)

11

1

Introdu¸

ao

Usualmente, a palavra “aleat´orio” refere-se `aquilo que ´e indeterminado, incerto, ca-sual, dependente de situa¸c˜oes desconhecidas, n˜ao estabelecido por regras fixas. No con-texto de geradores de n´umeros aleat´orios ´e importante observar que n˜ao se pode falar em n´umero aleat´orio mas em sequˆencia de n´umeros aleat´orios.

Existe uma grande diversidade de aplica¸c˜oes que usam sequˆencias de n´umeros aleat´orios: simula¸c˜oes computacionais de eventos naturais como o choque de part´ıculas em f´ısica nu-clear, sorteio de amostras que visam garantir que sejam selecionados elementos represen-tativos de toda a popula¸c˜ao, jogos de loteria, estima¸c˜ao de parˆametros de modelos via MCMC (Markov Chain Monte Carlo) e criptografia, em que senhas s˜ao criadas a partir dessas sequˆencias [Knuth (1997)]. A exatid˜ao ou performance dessas aplica¸c˜oes depen-dem da maneira como as sequˆencias de n´umeros que elas utilizam s˜ao geradas, isto ´e, dependem do quanto o comportamento das sequˆencias se assemelha ao de uma sequˆencia de n´umeros aleat´orios.

Os geradores de n´umeros aleat´orios s˜ao algoritmos determin´ısticos que produzem sequˆencias de n´umeros que devem parecer aleat´orias, sendo por essa raz˜ao chamadas de sequˆencias pseudo-aleat´orias. Apesar do grande uso das sequˆencias pseudo-aleat´orias, ´e surpreendente que quase todos os geradores amplamente utilizados na atualidade fa-lhem nos testes estat´ısticos mais b´asicos. Hoje busca-se compreender a qualidade desses geradores e como essa qualidade pode ser medida em seus v´arios aspectos [O’Neill (2014)].

´

E importante acrescentar que os softwares R e Python usam o mesmo gerador de n´umeros pseudo-aleat´orios como default. Esse gerador ´e conhecido como Mersenne Twis-ter (descrito em Matsumoto e Nishimura (1998)), o qual tamb´em ´e utilizado em diversos outros programas como Microsoft Excel, MATLAB, Stata e SAS.

(13)

1.1 Revis˜ao Bibliogr´afica 12

1.1

Revis˜

ao Bibliogr´

afica

Devido `as muitas utilidades das sequˆencias de n´umeros aleat´orios, a busca por uma fonte confi´avel e eficiente de geradores iniciou-se logo ap´os o in´ıcio do uso de computadores. Dois desses geradores ser˜ao brevemente apresentados a seguir.

1.1.1

etodo dos Meios Quadrados

Proposto por John von Neumann (1951 apud KNUTH, 1997), o m´etodo dos meios quadrados funciona da seguinte maneira: um n´umero de k d´ıgitos ´e escolhido ao acaso e elevado ao quadrado. Ent˜ao, extraem-se os k d´ıgitos centrais, que passa a ser o pr´oximo n´umero da sequˆencia. Como exemplo, se o n´umero de 10 d´ıgitos 5772156649 for elevado ao quadrado teremos o n´umero 33317792380594909201 e o n´umero aleat´orio de 10 d´ıgitos gerado ser´a 7923805949. Entretanto, esse m´etodo provou n˜ao ter algumas propriedades desej´aveis para um gerador. Por exemplo, se em algum momento o n´umero gerado ´e zero, todos os n´umeros subsequentes ser˜ao tamb´em zero.

1.1.2

etodo Linear Congruencial

Os geradores de n´umeros aleat´orios mais utilizados s˜ao adapta¸c˜oes do m´etodo linear congruencial (Linear Congruential Method ) proposto por Lehmer (1951). Para a execu¸c˜ao do m´etodo, quatro n´umeros inteiros s˜ao escolhidos:

m, o m´odulo m > 0. a, o multiplicador 0 ≤ a < m. c, o incremento 0 ≤ c < m. X0, o valor inicial 0 ≤ X0 < m.

Ent˜ao, a sequˆencia aleat´oria ´e obtida atrav´es da express˜ao:

Xn+1 = (aXn+ c) mod m, n ≥ 0 (1.1)

sendo a mod b o resto da divis˜ao de a por b. Como exemplo, quando m = 10 e X0 = a =

c = 7, obt´em-se a sequˆencia

7, 6, 9, 0, 7, 6, 9, 0, . . . .

O m´etodo congruencial sempre retorna ao valor inicial ap´os a gera¸c˜ao de p valores, isto ´e, Xp+1= X1. Segundo Knuth (1997), toda sequˆencia finita do tipo Xn+1 = f (Xn) tem essa

(14)

1.2 Defini¸c˜oes importantes 13

propriedade. O tamanho do ciclo ´e chamado de per´ıodo. No exemplo acima o per´ıodo ´e 4.

O que ir´a garantir se a sequˆencia tem boas propriedades matem´aticas ´e a escolha dos inteiros necess´arios para o m´etodo: m, a, c, X0. Por exemplo, uma sequˆencia ´util exige um

per´ıodo longo e m ´e o parˆametro que define o tamanho m´aximo do per´ıodo. Ent˜ao, m deve ser um n´umero grande o suficiente para garantir esta propriedade. O multiplicador a ´e o parˆametro que garante que o per´ıodo da sequˆencia se aproxime ou chegue ao valor m.

Para a cria¸c˜ao de uma sequˆencia de fra¸c˜oes aleat´orias uniformemente distribu´ıdas entre 0 e 1 basta gerar n´umeros inteiros Xn entre 0 e m, o que garante que

Un =

Xn

m (1.2)

estar´a entre 0 e 1.

1.2

Defini¸

oes importantes

As defini¸c˜oes a seguir s˜ao indispens´aveis para a compreens˜ao das propriedades que deve possuir uma sequˆencia de n´umeros para que sejam considerados aleat´orios:

Defini¸c˜ao 1.1 Independˆencia de n vari´aveis aleat´orias

As vari´aveis aleat´orias (X1, X2, . . . , Xn) s˜ao independentes se, e somente se, para

quaisquer a1, a2, . . . , an no conjunto dos n´umeros reais,

P (X1 ≤ a1, X2 ≤ a2, . . . , Xn≤ an) = n Y i=1 P (Xi ≤ ai) = n Y i=1 FXi(ai)

Defini¸c˜ao 1.2 Amostra aleat´oria

Define-se uma amostra aleat´oria de tamanho n da popula¸c˜ao X como uma sequˆencia (X1, X2, . . . , Xn) de vari´aveis aleat´orias independentes e tais que Xi ∼ X, i = 1, . . . , n.

Diz-se que s˜ao vari´aveis aleat´orias independentes e identicamente distribu´ıdas (i.i.d.).

Neste trabalho, a popula¸c˜ao X considerada ´e a uniforme no intervalo (0, 1), o que ´e denotado por X ∼ U (0, 1). Assim, essencialmente os testes comparam as hip´oteses:

  

H0 : Os valores da sequˆencia X1, X2, . . . , Xn s˜ao uma amostra iid da U (0, 1)

(15)

1.3 Objetivos 14

Supondo-se que (X1, X2, . . . , Xn) ´e i.i.d. e que Xi ∼ U (0, 1), ´e poss´ıvel obter-se v´arios

resultados probabil´ısticos decorrentes dessas suposi¸c˜oes, permitindo a proposi¸c˜ao de novos testes. Segundo Marsaglia (1984), “Um gerador de n´umeros aleat´orios deve produzir uma sequˆencia de vari´aveis aleat´orias x(1), x(2), ... que sejam independentes e identicamente distribu´ıdas. Qualquer fun¸c˜ao desses elementos da sequˆencia serve como um teste, se sua distribui¸c˜ao (de probabilidade) for conhecida”.

1.3

Objetivos

Este trabalho tem como objetivo fazer um levantamento dos principais testes es-tat´ısticos usados para testar a aleatoriedade de sequˆencias produzidas por geradores de n´umeros pseudo-aleat´orios com ˆenfase nos testes implementados na bateria SmallCrush [L’Ecuyer e Simard (2007)], tendo como objetivos principais:

1. identificar os principais testes;

2. avaliar a complexidade de implementa¸c˜ao computacional dos testes no software R;

3. exemplificar a utiliza¸c˜ao dos testes.

Ressalta-se que a programa¸c˜ao dos testes e sua aplica¸c˜ao nessas sequˆencias tˆem in-teresse apenas ilustrativo e de aprendizado, n˜ao sendo objetivo desse trabalho produzir programas a serem disponibilizados aos usu´arios nem apresentar conclus˜oes de interesse real sobre a qualidade das sequˆencias.

1.4

Organiza¸

ao

No cap´ıtulo Materiais e M´etodos s˜ao descritos os testes estat´ısticos utilizados para avaliar os geradores de n´umeros aleat´orios. No cap´ıtulo Resultados, sequˆencias s˜ao subme-tidas aos testes estat´ısticos descritos no cap´ıtulo anterior e os resultados s˜ao apresentados. Em Conclus˜oes s˜ao relatadas as considera¸c˜oes finais.

(16)

15

2

Materiais e M´

etodos

Os testes apresentados neste trabalho est˜ao descritos em Knuth (1997) e implementa-dos em L’Ecuyer e Simard (2007), que propˆos a biblioteca TestU01, em linguagem C, cujo objetivo ´e fornecer um conjunto de ferramentas estat´ısticas para a realiza¸c˜ao de testes. Essa biblioteca possui trˆes baterias (Tabela 1) e apresenta certa vantagem em rela¸c˜ao a outras anteriormente propostas pois tem implementa¸c˜ao mais eficiente e com isso lida melhor com amostras maiores.

Tabela 1: Baterias de testes na biblioteca TestU01

Bateria Quantidade de testes SmallCrush 10

Crush 96

BigCrush 160

Para ser considerada aceitavelmente aleat´oria uma sequˆencia deve passar por v´arios testes estat´ısticos. Existem na literatura v´arios testes para esse fim. S˜ao escolhidos, al´em dos testes de aderˆencia, alguns testes da bateria Small Crush (L’Ecuyer e Simard (2007)).

Na pr´atica uma sequˆencia n˜ao ser rejeitada por um teste estat´ıstico n˜ao garante sua aleatoriedade; por isso, faz-se necess´ario o uso de diversos testes na mesma sequˆencia e a cada teste ganha-se mais confian¸ca. Ainda assim, n˜ao se pode garantir que em algum outro teste a sequˆencia n˜ao falhar´a.

2.1

Testes de aderˆ

encia

Testes de aderˆencia s˜ao aqueles que avaliam se uma dada amostra pode ser considerada como proveniente de uma popula¸c˜ao espec´ıfica, caracterizada por um modelo param´etrico. Neste trabalho, ´e testada a aderˆencia dos dados da sequˆencia `a distribui¸c˜ao U (0, 1).

(17)

2.1 Testes de aderˆencia 16

m´aximo dentre k, s˜ao testes de aderˆencia a distribui¸c˜oes obtidas a partir de resultados probabil´ısticos decorrentes das suposi¸c˜oes de independˆencia e uniformidade dos valores da sequˆencia.

2.1.1

Teste de Qui-Quadrado

´

E o teste estat´ıstico mais utilizado para determinar se os n´umeros gerados na sequˆencia aleat´oria representam uma amostra de uma determinada distribui¸c˜ao. Apresentado por Karl [Pearson (1900)], esse teste ´e considerado um dos fundamentos da estat´ıstica mo-derna.

Considerando o exemplo dado em Knuth (1997) em que dois dados honestos s˜ao lan¸cados, ou seja, cada uma de suas seis faces tˆem a mesma probabilidade de ocorrer, pode-se montar a seguinte tabela com os valores da soma das faces dos dados, s, e suas respectivas probabilidades:

Tabela 2: Soma das faces no lan¸camento de dois dados honestos

s = 2 3 4 5 6 7 8 9 10 11 12 ps = 361 362 363 364 365 366 365 364 363 362 361

Se n lan¸camentos ocorrerem, espera-se que o valor s seja obtido nps vezes. Por´em em

raros momentos essa situa¸c˜ao ir´a ocorrer de forma exata, mesmo que os dados sejam n˜ao viciados.

Uma maneira de avaliar probabilisticamente se os dados s˜ao justos ´e pensar na soma do quadrado das diferen¸cas entre os n´umeros observados Ys e os n´umeros esperados nps.

Assim, no exemplo, obt´em-se

V = (Y2− np2)2+ (Y3− np3)2+ · · · + (Y12− np12)2. (2.1)

Um valor alto de V indica que o par de dados n˜ao ´e honesto.

A estat´ıstica V atribui o mesmo peso a todas as diferen¸cas, o que ´e um erro pois alguns n´umeros ocorrem mais que outros. Uma maneira de corrigir V ´e a seguinte f´ormula:

V = (Y2− np2) 2 np2 +(Y3 − np3) 2 np3 + · · · + (Y12s− np12) 2 np12 . (2.2) Generalizando 2.2, temos: V = k X s=1 (Ys− nps)2 nps ∼ χ2 k−1 (2.3)

(18)

2.1 Testes de aderˆencia 17

onde,

Ys ´e o n´umero de observa¸c˜oes iguais a s ou no intervalo s;

ps ´e a probabilidade do valor ou do intervalo s;

n ´e o n´umero de vezes em que o experimento ´e realizado.

Neste trabalho, em que a distribui¸c˜ao sob hip´otese ´e U (0, 1), o intervalo (0, 1) ´e dividido em k subintervalos e o valor esperado em cada um deles ´e igual a n/k. Assim, a equa¸c˜ao (2.3) pode ser reescrita como

V = k X s=1 (Ys− n/k)2 n/k ∼ χ 2 k−1 (2.4)

Para avaliar o qu˜ao grande (ou pequeno) ´e V , utiliza-se a distribui¸c˜ao χ2 com k − 1 graus

de liberdade como aproxima¸c˜ao `a distribui¸c˜ao exata de V , que ´e discreta. A aproxima¸c˜ao pela distribui¸c˜ao χ2 ´e v´alida quando o valor de n ´e grande o suficiente para que o valor esperado em cada intervalo s seja pelo menos igual a 5.

Conforme n aumenta, as chances de detec¸c˜ao de dados viciados cresce mas o compor-tameto n˜ao aleat´orio local tende a ser suavizado pois torna-se menos percept´ıvel. Essa situa¸c˜ao ocorre quando blocos de n´umeros viciados s˜ao seguidos por blocos de n´umeros n˜ao viciados, uma vez que o teste n˜ao considera a ordem de ocorrˆencia das observa¸c˜oes na sequˆencia.

Exemplo 2.1 Como exemplo de c´alculo da estat´ıstica de teste, considere a sequˆencia 0, 78539; 0, 30797; 0, 35579; 0, 93990; 0, 89605; 0, 91257; 0, 51577; 0, 80675; 0, 84952; 0, 39723 dividida em k = 2 classes: [0, 1/2), [1/2, 1]. As frequˆencias esperadas s˜ao iguais a 5 e as frequˆencias observadas s˜ao dadas na Tabela 3. O valor da estat´ıstica de teste calculada com base na express˜ao (2.4) ´e

χ2 = (3 − 5)

2

5 +

(7 − 5)2

5 = 8/5.

Tabela 3: Frequˆencias observadas

classe [0,1/2) [1/2,1] frequˆencia 3 7

2.1.2

Teste de Kolmogorov-Smirnov

O teste de Kolmogorov-Smirnov (Marsaglia, Tsang e Wang (2003)) baseia-se na dis-tribui¸c˜ao acumulada te´orica, definida por F (xi) := P (X ≤ xi), e na fun¸c˜ao de distribui¸c˜ao

(19)

2.1 Testes de aderˆencia 18

acumulada emp´ırica, definida por Fn(x(i)) := i/n, sendo x(i) o termo que ocupa a i-´esima

posi¸c˜ao na sequˆencia ordenada e n o tamanho da sequˆencia.

Inicialmente o teste proposto por Kolmogorov (1933) tinha como estat´ıstica de teste a express˜ao D = max(Kn+, Kn−) (2.5) sendo Kn+ =√n max −∞<x<∞(Fn(x) − F (x)) Kn− =√n max −∞<x<∞(F (x) − Fn(x)) (2.6)

a m´axima e a m´ınima diferen¸ca entre Fn e F , respectivamente. Devido `a dificuldade de

c´alculo da estat´ıstica D, Smirnov (1939) sugeriu o estudo individual das estat´ısticas K+ n

e Kn− e o teste passou a ser conhecido como teste de Kolmogorov-Smirnov (Marsaglia, Tsang e Wang (2003)).

Diferentemente do teste de Qui-quadrado, a distribui¸c˜ao da estat´ıstica Kn+ ´e exata. Al´em disso, K+

n e Kn− possuem a mesma distribui¸c˜ao.

Como neste trabalho avalia-se se as sequˆencias seguem distribui¸c˜ao U ∼ (0, 1), em que F (x) = x, as estat´ısticas (2.6) correspondem a

Kn+=√n max 1<j<n  j n − X(j)  Kn− =√n max 1<j<n  X(j)− j − 1 n  (2.7)

A Figura 1 mostra o valor amostral de K+ para uma amostra de tamanho n = 3.

(20)

2.1 Testes de aderˆencia 19

Para a realiza¸c˜ao do teste de hip´oteses e c´alculo do p-valor ´e necess´ario que se conhe¸ca a distribui¸c˜ao da estat´ıstica Kn+. Para n = 2, seja (X1, X2) uma amostra aleat´oria da

popula¸c˜ao X ∼ U (0, 1) e (X(1), X(2)) a amostra aleat´oria das respectivas estat´ısticas de

ordem. Assim, K2+ = √2 max 1 2 − X(1), 1 − X(2)  = √1 2max{1 − Y(1), 2 − Y(2)} (2.8) sendo Y(i) = 2X(i), i = 1, 2 as estat´ısticas de ordem de uma amostra de tamanho 2 da

popula¸c˜ao Y ∼ U (0, 2).

Da express˜ao (2.8), tem-se, para 0 < t < 2,

P K2+≤ t/√2 = P  1 √ 2max{1 − Y(1), 2 − Y(2)} ≤ t √ 2  = P max{1 − Y(1), 2 − Y(2)} ≤ t  = P (1 − Y(1) ≤ t, 2 − Y(2) ≤ t) = P (Y(1) ≥ max(1 − t, 0), Y(2) ≥ 2 − t) (2.9)

Considerando-se que Y(1) < Y(2), e que FY(y) = y2, da express˜ao (2.9) resulta, para

0 < t < 1, P (Y(1) ≥ max(1 − t, 0), Y(2) ≥ 2 − t) = P (1 − t ≤ Y(1) < 2 − t, Y(2) ≥ 2 − t) + P Y(1) ≥ 2 − t, Y(2) ≥ 2 − t  = 2 1  [FY(2 − t) − FY(1 − t)] × [1 − FY(2 − t)] + 2 2  [1 − FY(2 − t)]2 = 2 1   2 − t 2 − 1 − t 2  ×  1 − 2 − t 2  + 2 2   1 − (2 − t) 2 2 = t 4 2 1  +2 2  t  (2.10)

(21)

2.1 Testes de aderˆencia 20

Para 1 ≤ t < 2 obt´em-se

P (Y(1) ≥ max(1 − t, 0), Y(2) ≥ 2 − t) = P (0 ≤ Y(1) < 2 − t, Y(2) ≥ 2 − t) + P Y(1) ≥ 2 − t, Y(2) ≥ 2 − t  = 2 1  [FY(2 − t)] × [1 − FY(2 − t)] + 2 2  [1 − FY(2 − t)]2 = 2 1   2 − t 2  ×  1 − 2 − t 2  + 2 2   1 −(2 − t) 2 2 = t 4 2 1  (2 − t) +2 2  t  (2.11)

Em Knuth (1997) encontra-se a tabela da distribui¸c˜ao de K+

n, para n = 1, . . . , 12 e

alguns outros valores menores que 30, a express˜ao (2.12), e uma express˜ao que aproxima P (K+ n ≤ t/ √ n) para n > 30. P  Kn+≤ √t n  = t nn X 0≤k≤t n k  (k − t)k(t + n − k)n−k−1 (2.12)

Valores muito grandes da estat´ıstica Kn+ levam `a rejei¸c˜ao da hip´otese de que os dados provˆem da popula¸c˜ao X.

Exemplo 2.2 Como exemplo de c´alculo da estat´ıstica de teste, considere a sequˆencia 0, 78539; 0, 30797; 0, 35579; 0, 93990; 0, 89605; 0, 91257; 0, 51577; 0, 80675; 0, 84952; 0, 39723. A Tabela 4 mostra as fun¸c˜oes de distribui¸c˜ao emp´ırica e te´orica para as es-tat´ısticas de ordem amostrais e as respectivas diferen¸cas, de onde se verifica que K10+ = 0, 06010.

(22)

2.2 Teste do Gap 21

Tabela 4: Fun¸c˜ao de distribui¸c˜ao te´orica e emp´ırica para os dados do Exemplo 2.2

F (x(i)) F10(x(i)) F10(x(i)) − F (x(i))

0,30797 1/10 -0,20797 0,35579 2/10 -0,15579 0,39723 3/10 -0,09723 0,51577 4/10 -0,11577 0,78539 5/10 -0,28539 0,80675 6/10 -0,20675 0,84952 7/10 -0,14952 0,89605 8/10 -0,09605 0,91257 9/10 -0,01257 0,93990 10/10 0,06010

2.2

Teste do Gap

Considere a sequˆencia aleat´oria X1, X2, · · · , Xn uma amostra iid da distribui¸c˜ao U ∼

(0, 1). Dados 0 ≤ a < b ≤ 1 defina o evento ”S: sucesso”como S : X ∈ (a, b) e seja Y : o n´umero de fracassos at´e o primeiro sucesso, isto ´e, o primeiro valor em (a, b). Assim, Y representa o gap entre duas observa¸c˜oes em (a, b). Segue-se, pela independˆencia e equidistribui¸c˜ao dos elementos da amostra, que:

P (Y = y) = P ( ¯S . . . ¯SS)

= P ( ¯S)yP (S) = (1–p)y p, y = 0, 1, 2, 3, . . . (2.13) sendo p = P (S) = b–a. Assim, Y ∼ Ge(p).

O teste do gap consiste na realiza¸c˜ao de um teste de aderˆencia da amostra (y1, y2, . . . , yn)

`

a distribui¸c˜ao geom´etrica com probabilidade de sucesso p. Podem ser usados diversos valores para a e b, bem como pode-se utilizar o teste de Qui-quadrado ou de Komolgorov-Smirnov, produzindo diferentes testes.

Exemplo 2.3 Como exemplo de aplica¸c˜ao do teste, considere a sequˆencia 0, 78539; 0, 30797; 0, 35579; 0, 93990; 0, 89605; 0, 91257; 0, 51577; 0, 80675; 0, 84952; 0, 39723 e os seguin-tes valores para a = 0, 2 e b = 0, 5. A ocorrˆencia de um valor no intervalo (0, 2; 0, 5) ´e identificada a seguir por meio de uma barra vertical:

0, 78539 0, 30797 | 0, 35579 | 0, 93990 0, 89605 0, 91257 0, 51577 0, 80675 0, 84952 0, 39723|

A sequˆencia de gaps ser´a: 1, 0 e 6 e um teste de aderˆencia deve ser utilizado para comparar os gaps observados com a distribui¸c˜ao te´orica, que neste caso ser´a Ge(0, 3).

(23)

2.3 Teste do Rank 22

2.3

Teste do Rank

O posto (rank ) de uma matriz quadrada M de dimens˜oes k × k ´e o n´umero de colunas (ou linhas) linearmente independentes dessa matriz. Al´em disso, o determinante de m ser´a zero se e somente se o posto de M ´e menor que k.

Quando k = 2 a matriz ter´a 4 n´umeros e existem 24 matrizes distintas que podem ser obtidas apenas com os d´ıgitos 0 e 1. O valor do determinante depende de X: o n´umero de zeros na matriz, e do posicionamento dos x zeros na matriz. Vale observar que os determinantes s˜ao calculados em aritm´etica m´odulo 2.

Tabela 5: Quantidade de matrizes 2 × 2 com determinante nulo em fun¸c˜ao do n´umero de zeros na matriz

x # matrizes #(det mod 2) = 0

0 1 1

1 4 0

2 6 4

3 4 4

4 1 1

Por exemplo, quando x = 2 h´a 42 = 6 poss´ıveis matrizes das quais apenas as matrizes " 0 1 1 0 # " 1 0 0 1 # (2.14)

tˆem determinante n˜ao nulo, conforme indicado na linha referente a x = 2 da Tabela 5.

Dos dados da Tabela 5, tem-se que a probabilidade de uma sequˆencia aleat´oria de quatro d´ıgitos produzir uma matriz de ordem k = 2 com determinante nulo ´e p = 10/24 =

5/8. Nesse caso, a hip´otese X ∼ U (0, 1) discreta ´e equivalente a ter-se p = 5/8 e o teste do rank consiste na compara¸c˜ao das hip´oteses:

(

H0 : p = 5/8

H1 : p 6= 5/8

(2.15)

A estat´ıstica de teste ser´a a propor¸c˜ao ˆp de determinantes iguais a zero numa amostra de n matrizes com zeros e uns e ordem 2. Para n suficientemente grande,

Z = qp − pˆ (p(1−p)n )

.

∼ N (0, 1)

Definindo-se Y = 1 se o determinante da matriz ´e zero e Y = 0 se o determinante n˜ao ´e zero, o teste acima tamb´em pode ser obtido por meio do teste de Qui-quadrado com 1

(24)

2.4 Teste do maior dentre k 23

grau de liberdade para as hip´oteses

(

H0 : Y segue distribui¸c˜ao Ber(5/8)

H1 : Y n˜ao segue distribui¸c˜ao Ber(5/8)

(2.16)

isto ´e, um teste de aderˆencia dos dados `a distribui¸c˜ao de Bernoulli com parˆametro p = 5/8.

Para uma situa¸c˜ao de real interesse, k precisa ser muito maior que 2. Marsaglia (1984) afirma que para matrizes quadradas de dimens˜oes k × k, tem-se p ≈ 0, 7 para k ≥ 10. Assim, as hip´oteses a serem comparadas s˜ao

(

H0 : p = 0, 7

H1 : p 6= 0, 7

(2.17)

Exemplo 2.4 Como exemplo de c´alculo da estat´ıstica de teste, considere a sequˆencia0, 78539; 0, 30797; 0, 35579; 0, 93990; 0, 89605; 0, 91257; 0, 51577; 0, 80675; 0, 84952; 0, 39723 as-sumindo o valor 0, se o n´umero pertencer ao intervalo [0, 1/2) e 1, caso perten¸ca ao intervalo [1/2, 1]. Usando os oito primeiros valores da sequˆencia como uma amostra de tamanho n = 2 de matrizes de dimens˜oes k = 2, a amostra produz as matrizes

" 1 0 0 1 # " 1 1 1 1 # (2.18)

cujos determinantes s˜ao um e zero, respectivamente, produzindo ˆp = 1/2.

2.4

Teste do maior dentre k

Seja X1, X2, . . . , Xk uma amostra de k observa¸c˜oes i.i.d. da popula¸c˜ao X ∼ U (0, 1)

e seja Y = max(X1, X2, . . . , Xk). Ent˜ao,

FY(y) := P (Y ≤ y) = P [max(X1, X2, . . . , Xk) ≤ y] = P (X1 ≤ y ∩ X2 ≤ y ∩ . . . ∩ Xk≤ y) = k Y i=1 P (Xi ≤ y) = P (X ≤ y)k= yk (2.19)

O procedimento para a aplica¸c˜ao do teste consiste em obter n sequˆencias de tamanho k e selecionar de cada sequˆencia o maior valor e orden´a-los. Em seguida, obter a distribui¸c˜ao acumulada emp´ırica Fn(y(i)) := i/n e compar´a-la `a distribui¸c˜ao acumulada no valor y(i),

(25)

2.5 Teste da Colis˜ao 24

de um teste de aderˆencia tendo como hip´oteses:

(

H0 : FY(y) = yk

H1 : FY(y) 6= yK

(2.20)

para um valor k previamente determinado. V´arias escolhas s˜ao poss´ıveis para k, produ-zindo um teste para cada uma delas.

Exemplo 2.5 Como exemplo de c´alculo da estat´ıstica de teste, considere a sequˆencia0, 78539; 0, 30797; 0, 35579; 0, 93990; 0, 89605; 0, 91257; 0, 51577; 0, 80675; 0, 84952; 0, 39723 como uma amostra de tamanho n = 2 do maior dentre k = 5. Dos primeiros cinco valores da sequˆencia, o maior ´e 0, 93990 e dentre os cinco seguintes, o maior ´e 0, 91257. A Tabela 6 mostra os valores de x(i), F (x(i)), F10(x(i)) e F10(x(i)) − F (x(i)) para os dados do exemplo,

de onde se obt´em k2+= 0, 26649.

Tabela 6: Fun¸c˜ao de distribui¸c˜ao te´orica e emp´ırica para os dados do Exemplo 2.5

x(i) F (x(i)) F10(x(i)) F10(x(i)) − F (x(i))

0,91257 0,63265 1/2 -0,13265 0,93990 0,73351 2/2 0,26649

Pode-se tamb´em realizar o teste do menor dentre k com base na vari´avel aleat´oria V = min(X1, X2, . . . , Xk), cuja distribui¸c˜ao acumulada ´e obtida a partir de

1 − FV(v) := P (V > v) = P [min(X1, X2, . . . , Xk) > v] = P (X1 > v ∩ X2 > v ∩ . . . ∩ Xk > v) = k Y i=1 P (Xi > v) = P (X > v)k = (1 − v)k

de onde se conclui que

FV(v) = 1 − (1 − v)k (2.21)

A fun¸c˜ao de distribui¸c˜ao te´orica dada por (2.21) deve ser comparada, por meio do teste de Kolmogorov-Smirnov, `a fun¸c˜ao de distribui¸c˜ao emp´ırica obtida para a sequˆencia ordenada (v(1), v(2), . . . , v(n)).

2.5

Teste da Colis˜

ao

Este teste ´e uma alternativa ao teste de Qui-quadrado quando a restri¸c˜ao de que o n´umero esperado em cada uma das k categorias ´e pelo menos 5 n˜ao ´e satisfeita.

(26)

2.5 Teste da Colis˜ao 25

Considere as vari´aveis aleat´orias: Xi : n´umero de observa¸c˜oes na categoria i e Yi :

n´umero de colis˜oes na urna i, i = 1, 2, . . . , k. Ent˜ao, Xi ∼ Bin(n, p), p = 1/k, E(Xi) = np

e Yi = ( 0 x = 0 Xi− 1 x = 1, 2 . . . , n (2.22)

sendo n o tamanho da amostra. Al´em disso,

E(Xi− 1) := n X x=0 (x − 1)P (Xi = x) = −(1 − p)n+ n X x=2 (x − 1)P (Xi = x) = np − 1 (2.23) Logo, Pn i=2(x − 1)P (Xi = x) = np − 1 + (1 − p) n. Assim, E(Yi) := n−1 X y=0 yP (Yi = y) = 1 P (Yi = 1) + 2 P (Yi = 2) + . . . + (n − 1) P (Yi = n − 1) = 1 P (Xi = 2) + . . . + (n − 1) P (Xi = n) = np − 1 + (1 − p)n = n k − 1 +  1 − 1 k n (2.24)

A estat´ıstica para o teste da colis˜ao ´e o n´umero total de colis˜oes C = Pk

i=1Yi. Da

Equa¸c˜ao 2.24 obt´em-se

E(C) = E k X i=1 Yi ! = kE(Yi) = n − k + k  1 − 1 k n (2.25)

Com esse resultado sabe-se em torno de qual valor estar´a centralizada a distribui¸c˜ao de C. Sendo a distribui¸c˜ao de C unimodal, valores muito afastados da m´edia levam `a rejei¸c˜ao da hip´otese de aleatoriedade dos dados.

A estrat´egia para se obter a distribui¸c˜ao de C ser´a a an´alise combinat´oria, com o c´alculo da raz˜ao entre o n´umero de casos favor´aveis e n´umero de casos poss´ıveis.

O n´umero de formas distintas de se preencher k urnas com n bolas ´e kn. Para se obter

o numerador, vamos decompor o problema em duas etapas e contar:

1. o n´umero de maneiras de selecionar as k urnas a serem preenchidas;

(27)

2.5 Teste da Colis˜ao 26

Para o c´alculo da primeira etapa deve-se observar que C = c ocorre se e somente se o n´umero de urnas preenchidas ´e igual a n − c, como ilustra a Figura 2 para os valores k = 6 e n = 4. O resultado da segunda etapa ´e (n − c)! S(n, n − c) : o n´umero de formas distintas de se dispor n bolas em n − c urnas.

c Urna 1 2 3 4 5 6 0 1 2 2 3

Figura 2: Ilustra¸c˜ao dos poss´ıveis n´umeros de colis˜oes para k = 6 e n = 4.

Assim, P (C = c) = k n−c × (n − c)! S(n, n − c) kn = k(k − 1) . . . (k − n + c + 1) kn × S(n, n − c) (2.26)

sendo S(n, n − c) o n´umero de Stirling de segunda ordem, cujo c´alculo recursivo est´a baseado nas seguintes propriedades (Stirling. . . ()):

1. S(n, n) = S(n, 1) = 1

2. S(n, 0) = S(0, v) = 0

3. S(n, n − 1) = n2

4. S(n, v) = S(n − 1, v − 1) + v S(n − 1, v)

Por exemplo, para k = 6 e n = 4 tem-se

P (C = c) = 6 × 5 × . . . × (3 + c)

64 × S(4, 4 − c)

Assim,

P (C = 2) = 6 × 5

(28)

2.6 Teste do Pˆoquer 27 visto que S(4, 2) = S(3, 1) + 2 S(3, 2) = 1 + 23 2  = 7

Exemplo 2.6 Como exemplo de c´alculo da estat´ıstica de teste, considere a sequˆencia (j´a ordenada) 0, 30797; 0, 35579; 0, 39723; 0, 51577; 0, 78539; 0, 80675; 0, 84952; 0, 89605; 0, 91257; 0, 93990, que corresponde `as ”bolas”e 20 subintervalos disjuntos de amplitude 0, 05 do intervalo (0, 1), que ser˜ao as ”urnas”. Ent˜ao, ocorreram colis˜oes nos subintervalos mostrados na Tabela 7 e a estat´ıstica de teste na amostra ´e c =P

iyi = 3.

Tabela 7: Intervalos com n´umero de colis˜oes n˜ao nulo no Exemplo 2.6

Intervalo xi yi

[0, 35; 0, 40) 2 1 [0, 80; 0, 85) 2 1 [0, 90; 0, 95) 2 1

2.6

Teste do Pˆ

oquer

Em jogos de pˆoquer as cartas que um jogador tem s˜ao chamadas de m˜ao. Existem duas maneiras de considerar o teste do pˆoquer: na maneira cl´assica s˜ao considerados todos os n grupos de 5 inteiros sucessivos {Y5j, Y5j+1, . . . , Y5j+4} para 0 ≤ j < n, os quais s˜ao

classificados em uma das categorias mostradas na Tabela 8. Observa-se em qual das 7 categorias acima o qu´ıntuplo se encaixa; a ordem das cartas n˜ao ´e relevante.

Tabela 8: M˜aos do jogo de pˆoquer cl´assico

Categoria Sequˆencia Todos diferentes ABCDE Um par AABCD Dois pares AABBC Trinca AAABC Full house AAABB Quadra AAAAB Cinco de um tipo AAAAA

A biblioteca TestU01 implementa o teste do pˆoquer com base na simplifica¸c˜ao descrita na Tabela 9.

Nesse teste s˜ao considerados os valores de cada n´umero da sequˆencia at´e sua quinta casa decimal, que corresponde a uma ”m˜ao”; os d´ıgitos 0, 1, . . . , 9 s˜ao as poss´ıveis ”cartas”.

(29)

2.6 Teste do Pˆoquer 28

Tabela 9: M˜aos do jogo de pˆoquer simplificado

Categorias N´umero de d´ıgitos distintos Todos diferentes 5

Um par 4

Dois pares ou uma trinca 3 Full house ou quadra 2 Cinco de um tipo 1

Para o c´alculo das probabilidades de cada categoria do teste do pˆoquer simplificado a Tabela 10 mostra a rela¸c˜ao linear existente entre o n´umero de d´ıgitos distintos e o n´umero de colis˜oes (Se¸c˜ao 2.5).

Tabela 10: Rela¸c˜ao entre o n´umero de d´ıgitos distintos no teste do pˆoquer e o n´umero de colis˜oes

N´umero de d´ıgitos distintos 1 2 3 4 5 N´umero de colis˜oes 4 3 2 1 0

Ou seja, a probabilidade de r d´ıgitos distintos no teste do pˆoquer pode ser calculada como a probabilidade de 5 − r colis˜oes de 5 ”bolas”em 10 ”urnas”. Assim, sendo R o n´umero de d´ıgitos distintos, P (R = r) = P (C = 5 − r).

Fazendo-se k = 10, n = 5 e c = 5 − r na express˜ao (2.26) obt´em-se

P (R = r) = 10 × 9 × . . . × (11 − r)

105 × S(5, r) (2.27)

Usando-se a express˜ao (2.26) chega-se ao valor das probabilidades mostradas na Ta-bela 11.

Tabela 11: N´umero de d´ıgitos distintos, probabilidades e probabilidades acumuladas em uma m˜ao de pˆoquer simplificado

r P (R = r) P (R ≤ r) 1 0,0001 0,0001 2 0,0135 0,0136 3 0,1800 0,1936 4 0,5040 0,6976 5 0,3024 1,0000

No caso geral, ´e considerada uma sequˆencia de tamanho k e s˜ao contados os n´umeros de k-uplas com r valores distintos. Para calcular as probabilidades utiliza-se a express˜ao:

p(R = r) = d(d − 1) · · · (d − r + 1)

(30)

2.6 Teste do Pˆoquer 29

A equa¸c˜ao (2.29) mostra o c´alculo n˜ao recursivo de S(k, r).

S(k, r) = 1 r! r X j=0 (−1)r−jr j  jk (2.29)

Realiza-se, ent˜ao, o teste qui-quadrado comparando-se as quantidades observadas nas n sequˆencias de k d´ıgitos com as quantidades esperadas, obtidas como n vezes a probabili-dade dada pela express˜ao (2.28) ou o teste de Kolmogorov-Smirnov.

Exemplo 2.7 Como exemplo de aplica¸c˜ao do teste, considere como amostra os d´ıgitos da parte decimal dos valores da sequˆencia 0, 78539; 0, 30797; 0, 35579; 0, 93990; 0, 89605; 0, 91257; 0, 51577; 0, 80675; 0, 84952; 0, 39723 de valores com 5 d´ıgitos e quantos d´ıgitos distintos foram encontrados em cada valor da sequˆencia.

Tabela 12: Dados para o exemplo para o teste do pˆoquer

Sequˆencia D´ıgitos distintos 78539 5 30797 4 35579 4 93990 3 89605 5 91257 5 51577 3 80675 5 84952 5 39723 4

Na tabela 13 s˜ao apresentadas as frequˆencias observadas e esperadas e poderia ser aplicado o teste de qui-quadrado a esses dados caso todas as frequˆencias esperadas apre-sentassem valores maiores que 5.

Tabela 13: Frequˆencias observadas e esperadas para os dados do Exemplo 2.7

1 2 3 4 5

Frequˆencia observada 0 0 2 3 5 Frequˆencia esperada 0,001 0,135 1,80 5,04 3,024

Na segunda coluna da Tabela 11 tem-se a distribui¸c˜ao acumulada te´orica de R. Da primeira linha da Tabela 13 calcula-se a frequˆencia acumulada emp´ırica. Os resultados s˜ao mostrados na Tabela 14 de onde se obt´em k10+ = 0, 0064.

(31)

2.7 Teste em Dois N´ıveis 30

Tabela 14: C´alculos da estat´ıstica do teste de Kolmogorov-Smirnov aplicado aos dados do Exemplo 2.7

r 1 2 3 4 5

F10(x(i)) 0 0 0,2 0,5 1,0

F (x(i)) 0,0001 0,0136 0,1936 0,6976 1,000

F10(x(i)) − F (x(i)) -0,0001 -0,0136 0,0064 -0,1976 0,0000

2.7

Teste em Dois N´ıveis

Os testes de Qui-quadrado e de Kolmogorov-Smirnov podem ser usados para avaliar aleatoriedade local ou global. Para a avalia¸c˜ao da aleatoriedade global, o procedimento consiste na aplica¸c˜ao do teste de Kolmogorov-Smirnov aos resultados obtidos nas es-tat´ısticas de teste realizadas em partes da sequˆencia original. A aplica¸c˜ao do teste em cada parte da sequˆencia constitui a avalia¸c˜ao da aleatoriedade local.

Considere uma sequˆencia com n observa¸c˜oes, dividida em k partes. Em um primeiro momento s˜ao feitos k testes de qui-quadrado. Espera-se que os k valores das estat´ısticas de teste constituam uma amostra da distribui¸c˜ao χ2

k−1. Para conferir tal hip´otese ´e realizado

o teste de Kolmogorov-Smirnov com essas k estat´ısticas.

Analogamente, considere uma sequˆencia com n observa¸c˜oes, dividida em k partes. Em um primeiro momento s˜ao feitos k testes de Komolgorov-Smirnov e espera-se que os k valores das estat´ısticas de teste constituam uma amostra da distribui¸c˜ao de Kolmogorov-Smirnov. Para conferir tal hip´otese ´e realizado o teste de Kolmogorov-Smirnov com essas k estat´ısticas.

(32)

31

3

An´

alise dos Resultados

Os resultados dos testes nas sequˆencias ser˜ao analisados de acordo com os crit´erios apresentados por Knuth (1997), mostrados na Tabela 15.

Tabela 15: Legenda dos indicativos de significˆancia

p-valor Indicativo C´odigo < 0, 01 Rejeita 0, 01 − 0, 05 Suspeita 0, 05 − 0, 10 Quase suspeita 0, 10 − 0, 90 N˜ao rejeita 0, 90 − 0, 95 Quase suspeita 0, 95 − 0, 99 Suspeita > 0, 99 Rejeita

Assim, caso o p-valor obtido no teste seja pequeno a sequˆencia torna-se suspeita. Se o p-valor ´e muito pequeno rejeita-se a hip´otese nula e conclui-se que a sequˆencia n˜ao foi gerada de uma distribui¸c˜ao U (0, 1). Se o p-valor ´e muito alto, Knuth (1997) considera que a a aderˆencia `a distribui¸c˜ao U (0, 1) ´e demasiada e como adere bem a distribui¸c˜ao e torna-se poss´ıvel prever quantos valores s˜ao esperados em cada subintervalo da distribui¸c˜ao U (0, 1).

Foi utilizada a mesma semente em todos os testes para garantir que as mesmas sequˆencias foram submetidas aos testes abaixo. Por dificuldades computacionais, os testes n˜ao foram realizados com o mesmo tamanho de amostra.

3.1

Teste Qui-Quadrado

Foram consideradas 5 amostras com tamanhos de n = 500, 5.000 e 50.000. Tais sequˆencias foram divididas em k partes e em cada uma delas foram realizados testes qui-quadrado. Foram obtidos os indicativos de significˆancia, mostrados na Figura 3:

(33)

3.2 Teste de Kolmogorov-Smirnov 32 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5

Figura 3: Indicativos de significˆancia de testes qui-quadrado para 5 sequˆencias com ta-manhos n = 500, 5.000 e 50.000, respectivamente.

Considerando-se os resultados mostrados na Figura 3 observa-se que todas as sequˆencias geradas apresentam um resultado satisfat´orio e em nenhum caso verificou-se um p-valor menor que 0, 01 ou maior que 0, 99, o que significa que n˜ao houve evidˆencia de que a sequˆencia gerada n˜ao constitua uma amostra iid da distribui¸c˜ao U (0, 1).

3.2

Teste de Kolmogorov-Smirnov

Foram testadas 5 sequˆencias de tamanhos n = 500, 5.000 e 50.000. O teste de Kolmogorov-Smirnov apresentou os p-valores mostrados na Figura 4. De acordo com os crit´erios esta-belecidos na Tabela 15 as sequˆencias apresentam resultados satisfat´orios, ou seja, n˜ao h´a evidˆencia de que as sequˆencias geradas n˜ao sejam amostras i.i.d. da popula¸c˜ao U (0, 1).

n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5

Figura 4: Indicativos de significˆancia de testes de Kolmogorov-Smirnov para 5 sequˆencias com tamanhos n = 500, 5.000 e 50.000, respectivamente.

3.3

Teste do Gap

Utilizando a = 0, 1 e b = 0, 4, e 5 sequˆencias de tamanhos n = 500 e 5.000, o teste do gap apresentou os p-valores mostrados na Figura 5. De acordo com os crit´erios estabelecidos na Tabela 15 as sequˆencias apresentam resultados satisfat´orios, ou seja, n˜ao h´a evidˆencia de que as sequˆencias geradas n˜ao sejam amostras i.i.d. da popula¸c˜ao U (0, 1).

(34)

3.4 Teste do Rank 33 n = 500 n = 5.000 1 2 3 4 5 n = 500 n = 5.000 1 2 3 4 5 n = 500 n = 5.000 1 2 3 4 5 n = 500 n = 5.000 1 2 3 4 5 n = 500 n = 5.000 1 2 3 4 5 n = 500 n = 5.000 1 2 3 4 5 n = 500 n = 5.000 1 2 3 4 5 n = 500 n = 5.000 1 2 3 4 5 n = 500 n = 5.000 1 2 3 4 5 n = 500 n = 5.000 1 2 3 4 5

Figura 5: Indicativos de significˆancia de testes do gap para 5 sequˆencias com tamanhos n = 500 e 5.000, respectivamente.

N˜ao foram consideradas amostras com n = 50.000 por dificuldades computacionais.

Nota-se que em 4 das 5 sequˆencias o aumento no tamanho da amostra resultou no aumento do p-valor n˜ao excedendo os limites estabelecidos na Tabela 15.

3.4

Teste do Rank

n = 500 1 2 3 4 5 n = 500 1 2 3 4 5 n = 500 1 2 3 4 5 n = 500 1 2 3 4 5 n = 500 1 2 3 4 5

Figura 6: Indicativos de significˆancia de testes do rank para 5 sequˆencias com tamanhos n = 500.

Fazendo-se n = 500, o teste do rank de matrizes 2 × 2 apresentou os p-valores mos-trados na Figura 6. De acordo com os crit´erios estabelecidos na Tabela 15 as sequˆencias apresentam resultados satisfat´orios, ou seja, n˜ao h´a evidˆencia de que as sequˆencias geradas n˜ao sejam amostras i.i.d. da popula¸c˜ao U (0, 1).

N˜ao foram consideradas amostras de n = 5000 e 50000 por dificuldades computacio-nais.

3.5

Teste do maior dentre k

n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5

Figura 7: Indicativos de significˆancia de testes do maior dentre k para 5 sequˆencias com tamanhos n = 500, 5.000 e 50.000, respectivamente.

(35)

3.6 Teste da Colis˜ao 34

Fazendo-se n = 500, 5.000 e 50.000, e k = 10, o teste do maior dentre k apresentou os p-valores mostrados na Figura 7. De acordo com os crit´erios estabelecidos na Tabela 15 as sequˆencias apresentam resultados satisfat´orios, ou seja, n˜ao h´a evidˆencia de que as sequˆencias geradas n˜ao sejam amostras i.i.d. da popula¸c˜ao U (0, 1).

Na sequˆencia 2 o aumento da amostra ocasionou em um aumento no p-valor, o que levou a n˜ao rejei¸c˜ao da sequˆencia pois esse aumento n˜ao excedeu os limites estabelecidos na Tabela 15.

3.6

Teste da Colis˜

ao

n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5

Figura 8: Indicativos de significˆancia de testes da colis˜ao para 5 sequˆencias com tamanhos n = 500, 5.000 e 50.000, respectivamente.

Utilizando 5 sequˆencias de tamanhos n = 500, 5.000 e 50.000 e um n´umero de urnas sempre 5 vezes maior que n, o teste da colis˜ao apresentou os p-valores mostrados na Figura 8. De acordo com os crit´erios estabelecidos na Tabela 15 as sequˆencias apresentam alguns resultados satisfat´orios e outros n˜ao, ou seja, h´a evidˆencia de que as sequˆencias geradas n˜ao sejam amostras i.i.d. da popula¸c˜ao U (0, 1), pois existe um p-valor > 0.99.

3.7

Teste do Pˆ

oquer

n = 100.000 1 2 3 4 5 n = 100.000 1 2 3 4 5 n = 100.000 1 2 3 4 5 n = 100.000 1 2 3 4 5 n = 100.000 1 2 3 4 5

Figura 9: Indicativos de significˆancia de testes do pˆoquer para 5 sequˆencias com tamanhos n = 100.000.

Gerando uma sequˆencia de 500.000 n´umeros aleat´orios entre 0 e 1 todos com 5 casas decimais, a dividindo em 5 sequˆencias de 100.000 n´umeros e observando as frequˆencias de n´umeros com repeti¸c˜oes e comparando-as com as frequˆencias esperadas atrav´es do teste qui-quadrado, foram obtidos os p-valores apresentados na Figura 9, e de acordo com os crit´erios estabelecidos na Tabela 15 as sequˆencias apresentam resultados satisfat´orios, ou

(36)

3.8 Teste em Dois N´ıveis 35

seja, n˜ao h´a evidˆencia de que as sequˆencias geradas n˜ao sejam amostras i.i.d. da popula¸c˜ao U (0, 1)

Para sequˆencias com n = 500, 5.000 e 50.000 o teste de aderˆencia foi realizado atrav´es do teste de Kolmogorov-Smirnov, pois as frequˆencias esperadas eram menores que 5 em algumas categorias. n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5 n = 500 n = 5.000 n = 50.000 1 2 3 4 5

Figura 10: Indicativos de significˆancia de testes do pˆoquer para 5 sequˆencias com tamanhos n = 500, 5.000 e 50.000, respectivamente.

Utilizando 5 sequˆencias de tamanhos n = 500, 5.000 e 50.000, o teste do pˆoquer apresentou os p-valores mostrados na Figura 10. De acordo com os crit´erios estabelecidos na Tabela 15 as sequˆencias apresentam resultados satisfat´orios, ou seja, n˜ao h´a evidˆencia de que as sequˆencias geradas n˜ao sejam amostras i.i.d. da popula¸c˜ao U (0, 1).

Quando n = 500 duas sequˆencias s˜ao rejeitadas, o aumento da amostra faz com que esse problema seja corrigido, pois para n = 5.00 e 50.000 n˜ao existem sequˆencias rejeitadas.

3.8

Teste em Dois N´ıveis

k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000

Figura 11: Indicativos de significˆancia do teste em dois n´ıveis com sequˆencias com tama-nhos n = 500, 5.000 e 50.000, respectivamente.

Sup˜oe-se que os resultados encontrados nos testes de qui-quadrado perten¸cam a dis-tribui¸c˜ao χ2k−1. Verificando essa hip´otese atrav´es de um teste de Kolmogorov-Smirnov, obtiveram-se os p-valores apresentados em Figura 11. De acordo com os crit´erios esta-belecidos na Tabela 15 as sequˆencias apresentam resultados satisfat´orios, ou seja, n˜ao h´a evidˆencia de que as sequˆencias geradas n˜ao sejam amostras i.i.d. da popula¸c˜ao U (0, 1)

(37)

3.8 Teste em Dois N´ıveis 36 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000 k = 2 k = 10 k = 100 n = 500 n = 5.000 n = 50.000

Figura 12: Indicativos de significˆancia do teste em dois n´ıveis com sequˆencias com tama-nhos n = 500, 5.000 e 50.000, respectivamente.

Analogamente, sup˜oe-se que os resultados encontrados nos testes de Kolmogorvo-Smirnov tenham distribui¸c˜ao acumulada semelhante `a distribui¸c˜ao de Kolmogorov-Smirnov acumulada. Verificando essa hip´otese atrav´es de um novo teste de Kolmogorov-Smirnov, obtiveram-se os p-valores apresentados em Figura 12. De acordo com os crit´erios esta-belecidos na Tabela 15 as sequˆencias apresentam resultados satisfat´orios, ou seja, n˜ao h´a evidˆencia de que as sequˆencias geradas n˜ao sejam amostras i.i.d. da popula¸c˜ao U (0, 1)

(38)

37

4

Conclus˜

oes

O presente trabalho buscou compreender os testes estat´ısticos utilizados para a ve-rifica¸c˜ao de propriedades de extrema importˆancia para a verifica¸c˜ao de aleatoriedade de uma sequˆencia.

Para a ilustra¸c˜ao dos resultados testou-se o gerador de n´umeros aleat´orios do software R, que tamb´em ´e o gerador utilizado por outros softwares.

Notou-se que a sequˆencia 4 quando n = 500 n˜ao havia apresentado nenhuma suspeita no teste de qui-quadrado e agora j´a pode-se notar um comportamento n˜ao t˜ao desej´avel no teste de Kolmogorov-Smirnov. A sequˆencia 1 quando n = 500 deixou de ser n˜ao rejeitada nos testes de aderˆencia para se tornar quase suspeita no teste do gap, j´a a sequˆencia 2 quando n = 500 tornou-se suspeita. Quando n = 5.000 a sequˆencia 5 se manteve suspeita. Quando n = 500 a sequˆencia 5, que no teste do maior dentre k era quase suspeita, torna-se suspeita no teste da colis˜ao.

Verificou-se que tal gerador apresentou resultados satisfat´orios na maioria dos testes realizados, o que leva ao aumento de confian¸ca. Por´em n˜ao se pode afirmar que em um novo teste este gerador n˜ao falhar´a.

(39)

38

Referˆ

encias

KNUTH, D. E. The Art of Computer Programming, Volume 2 (3rd Ed.): Seminumerical Algorithms. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 1997. ISBN 0-201-89684-2.

KOLMOGOROV, A. Sulla determinazione empirica di una legge di distribuzione. Giornale dell’ Istituto Italiano degli Attuari, v. 4, 1933.

L’ECUYER, P.; SIMARD, R. Testu01: Ac library for empirical testing of random number generators. ACM Transactions on Mathematical Software (TOMS), ACM, v. 33, n. 4, p. 22, 2007.

LEHMER, D. H. Mathematical methods in large-scale computing units. In: Proceedings of the Second Symposium on Large Scale Digital Computing Machinery. Cambridge, United Kingdom: Harvard University Press, 1951. p. 141–146.

MARSAGLIA, G. A current view of random number generators, keynote address. 16th Symposium on the Interface, Atlanta, 1984.

MARSAGLIA, G.; TSANG, W. W.; WANG, J. Evaluating kolmogorov’s distribution. Journal of Statistical Software, Articles, v. 8, n. 18, p. 1–4, 2003. ISSN 1548-7660. Dispon´ıvel em: hhttps://www.jstatsoft.org/v008/i18i.

MATSUMOTO, M.; NISHIMURA, T. Mersenne twister: A 623-dimensionally

equidistributed uniform pseudo-random number generator. ACM Trans. Model. Comput. Simul., ACM, New York, NY, USA, v. 8, n. 1, p. 3–30, jan. 1998. ISSN 1049-3301. Dispon´ıvel em: hhttp://doi.acm.org/10.1145/272991.272995i.

O’NEILL, M. E. PCG: A Family of Simple Fast Space-Efficient Statistically Good Algorithms for Random Number Generation. Claremont, CA, 2014.

PEARSON, K. On the criterion that a given system of deviations from the probable in the case of a correlated system of variables is such that it can be reasonably supposed to have arisen from random sampling. The London, Edinburgh and Dublin philosophical magazine and journal of science., London :Taylor & Francis,, ser.5:v.50 (1900:July-Dec.), p. 157–175, 1900.

SMIRNOV, N. V. On the estimation of the discrepancy between empirical curves of distribution for two independent samples. Bull. Math. Univ. Moscou, v. 2, n. 2, p. 3–14, 1939.

STIRLING Number of the Second Kind. Dispon´ıvel em: hhttp://mathworld.wolfram. com/StirlingNumberoftheSecondKind.htmli.

(40)

Referˆencias 39

von Neumann, J. Various techniques used in connection with random digits. In: HOUSEHOLDER, A.; FORSYTHE, G.; GERMOND, H. (Ed.). Monte Carlo Method. Washington, D.C.: U.S. Government Printing Office: National Bureau of Standards Applied Mathematics Series, 12, 1951. p. 36–38.

(41)

40

APˆ

ENDICE A -- Programas Computacionais

Os programas aqui apresentados foram escritos na linguagem R e tiveram como ob-jetivo servir como mais uma possibilidade de compreens˜ao dos testes para a autora. N˜ao houve qualquer preocupa¸c˜ao com a performance dos algoritmos, uso de mem´oria, etc. nem a preten¸c˜ao de os c´odigos servirem de base para a real valida¸c˜ao de geradores.

A.1

odigo do gerador linear congruencial

congruencial=function(m,a,c,x0,n){ if(m<0){

return("Erro (m deve ser maior que 0)") }else{

if(a<0 | a>m){

return("Erro (a deve estar entre 0 e m)") }else{

if(c<0 | c>m){

return("Erro (c deve estar entre 0 e m)") }else{

if(x0<0 | x0>m){

return("Erro (X0 deve estar entre 0 e m)") }else{

if(n<0){

return("Erro (n deve ser maior que 0)") }else{

if(n==1){

return(x0)}else{ x=x0

(42)

A.2 Teste Qui-quadrado 41 x[i]=(a*x[i-1] + c)%%(m) } return(x) } } } } } } }

A.2

Teste Qui-quadrado

sequencias=list() aux=list() set.seed(29) n=c(500,5000,50000) for(j in n){ for(i in 1:5){ aux[[i]]=runif(j,0,1) } sequencias[[paste0(’bases_’,j)]]=aux } rm(aux) b_2=seq(0,1,0.5) b_10=seq(0,1,0.1) b_100=seq(0,1,0.01) lapply(sequencias, function(x){ lapply(x,function(y){ cat(’\n K:’,2,’n = ’,length(y) ,

’p-valor’,chisq.test(as.vector(table( cut(y, b = b_2))))$p.value,’\n’) }

(43)

A.3 Teste Kolmogorov-Smirnov 42 return(NULL) } ) lapply(sequencias, function(x){ lapply(x,function(y){ cat(’\n K:’,10,’n = ’,length(y) ,

’p-valor’,chisq.test(as.vector(table( cut(y, b = b_10))))$p.value,’\n’) } ) return(NULL) } ) lapply(sequencias, function(x){ lapply(x,function(y){ cat(’\n K:’,100,’n = ’,length(y) ,

’p-valor’,chisq.test(as.vector(table( cut(y, b = b_100))))$p.value,’\n’) }

)

return(NULL) }

)

A.3

Teste Kolmogorov-Smirnov

sequencias=list() aux=list() set.seed(29) n=c(500,5000,50000) for(j in n){ for(i in 1:5){ aux[[i]]=runif(j,0,1) }

(44)

A.3 Teste Kolmogorov-Smirnov 43 sequencias[[paste0(’bases_’,j)]]=aux } rm(aux) sequencias_ordenadas=list() aux=list() n=c(500,5000,50000) for(k in 1:3){ for(i in 1:5){ aux[[i]]=data.frame(a=c(1:length(sequencias[[k]][[i]])), x_a=sort(as.vector(sequencias[[k]][[i]]))) } sequencias_ordenadas[[paste0(’bases_ordenadas_’,k)]]=aux } rm(aux) for(j in 1:5){ sequencias_ordenadas[[1]][[j]]$partesup=c() for(i in 1:500){ sequencias_ordenadas[[1]][[j]]$partesup[i]= sequencias_ordenadas[[1]][[j]]$x_a[i]-((i-1)/500) } } for(j in 1:5){ sequencias_ordenadas[[2]][[j]]$partesup=c() for(i in 1:5000){ sequencias_ordenadas[[2]][[j]]$partesup[i]= sequencias_ordenadas[[2]][[j]]$x_a[i]-((i-1)/5000) } } for(j in 1:5){ sequencias_ordenadas[[3]][[j]]$partesup=c() for(i in 1:50000){

(45)

A.3 Teste Kolmogorov-Smirnov 44 sequencias_ordenadas[[3]][[j]]$partesup[i]= sequencias_ordenadas[[3]][[j]]$x_a[i]-((i-1)/50000) } } lapply(sequencias_ordenadas, function(x){ lapply(x,function(y){ cat(’\n’ ,’n = ’,length(y$a) , ’K_mais’,sqrt(length(y$a))*max(y$partesup),’\n’) } ) return(NULL) } ) kmais=c() aux=c() for(i in 1:3){ for(k in 1:5){ aux[k]=sqrt(length(sequencias_ordenadas[[i]][[k]]$a))* max(sequencias_ordenadas[[i]][[k]]$partesup) } kmais=c(kmais,aux) } K_mais=data.frame(seq=rep(c(1,2,3,4,5),3) ,n=rep(c(500,5000,50000),c(5,5,5)), kmais) #ponto critico p=seq(0,1,0.0000001) n1=500 n2=5000 n3=50000 tabela_KS_n500=data.frame(p,y_p=(sqrt(0.5*log(1/(1-p))))-1/(sqrt(n1)*6)) tabela_KS_n5000=data.frame(p,y_p=(sqrt(0.5*log(1/(1-p))))-1/(sqrt(n2)*6))

(46)

A.4 Teste do Gap 45 tabela_KS_n50000=data.frame(p,y_p=(sqrt(0.5*log(1/(1-p))))-1/(sqrt(n3)*6)) tabela_KS_n500$y_p=as.numeric(round(tabela_KS_n500$y_p,6)) tabela_KS_n5000$y_p=as.numeric(round(tabela_KS_n5000$y_p,6)) tabela_KS_n50000$y_p=as.numeric(round(tabela_KS_n50000$y_p,6)) for(i in 1:5){

K_mais$pvalor[i] = ifelse(round(K_mais$kmais[i],6) %in% tabela_KS_n500$y_p, tabela_KS_n500$p[which(round(K_mais$kmais[i],6)== tabela_KS_n500$y_p[1:length(tabela_KS_n500$p)])], NA) } for(i in 6:10){

K_mais$pvalor[i] = ifelse(round(K_mais$kmais[i],6) %in%

tabela_KS_n5000$y_p, tabela_KS_n5000$p[which(round(K_mais$kmais[i]6)== tabela_KS_n5000$y_p[1:length(tabela_KS_n5000$p)])], NA)

}

for(i in 11:15){

K_mais$pvalor[i] = ifelse(round(K_mais$kmais[i],6) %in%

tabela_KS_n50000$y_p, tabela_KS_n50000$p[which(round(K_mais$kmais[i],6)== tabela_KS_n50000$y_p[1:length(tabela_KS_n50000$p)])], NA)

}

A.4

Teste do Gap

entre <- function(a, b, x) (x < b) & (x > a)

gap_parte <- function(lista, a, b){ if (identical(numeric(0), lista)) 0 else{

(47)

A.4 Teste do Gap 46

else 1 + gap_parte(lista[-1], a, b) }

}

sub_lista <- function(lista, n) lista[-(1:(n + 1))]

gap <- function(lista, a, b){

if (identical(lista, numeric(0))) lista else c(gap_parte(lista, a, b),

gap(sub_lista(lista, gap_parte(lista, a, b)), a, b)) }

valores_obs <- function(vec){

if (identical(numeric(0), vec)) numeric(0)

else c(sum(vec == 0), valores_obs(vec[vec != 0] - 1)) }

set.seed(29)

x=runif(10000,0,1)

result=gap(x, a=0.1, b=0.4)

# KS nos resultados

teste=data.frame(j=c(1:length(result)),x_j=sort(result)) #ordenando os resultados teste$parteinf=c() for(i in 1:length(result)){ teste$parteinf[i]=pgeom(teste$x_j[i],b-a)-((i-1)/length(result)) } kmenos=round(sqrt(100)*max(teste$parteinf),5);kmenos teste$partesup=c() for(i in 1:length(result)){ teste$partesup[i]=(i/length(result))-pgeom(teste$x_j[i],b-a) } kmais=round(sqrt(length(result))*max(teste$partesup),5);kmais

(48)

A.5 Teste do Rank 47 #ponto critico p=c(0.01,0.05,0.1,0.15,0.2,0.25,0.5,0.75,0.9,0.95,0.99) n1=length(result) tabela_KS=data.frame(p,y_p=(sqrt(0.5*log(1/(1-p))))-1/(sqrt(n1)*6)) tabela_KS$y_p=as.numeric(round(tabela_KS$y_p,5))

A.5

Teste do Rank

limite_det_x <- function(n, k, x){ if (n == 0) 0

else{

if(det(matrix(sample(c(rep(0, x), rep(1, k^2 - x)),

replace = F), ncol = k)) == 0) 1 + limite_det_x(n - 1, k, x) else limite_det_x(n - 1, k, x) } } limite_det <- function(n, k){ if (n == 0) 0 else{ if(det(matrix(sample(c(0, 1),

replace = T, size = k^2), ncol = k)) == 0) 1 + limite_det(n - 1, k) else limite_det(n - 1, k)

} }

# Calcula a propor¸c~ao de matrizes 2 x 2 de zeros e uns cujo determinante ´e zero # em uma amostra de 800 matrizes

limite_det(800, 2)/800

A.6

Teste do maior dentre k no R

y=c() k=10

(49)

A.6 Teste do maior dentre k no R 48 n=100000 for(i in 1:n){ y[i]=max(runif(k,0,1)) } y=sort(y) F_y=y^k F_n=c() for(i in 1:n){ F_n[i]=i/n } kmais=sqrt(n)*max(F_n-F_y) p=seq(0,1,0.0001) tabela_KS=data.frame(p,y_p=round((sqrt(0.5*log(1/(1-p))))-1/(sqrt(n)*6),4)) pvalor = ifelse(round(kmais,4) %in%

tabela_KS$y_p, tabela_KS$p[which(round(kmais,4)== tabela_KS$y_p[1:length(tabela_KS$p)])], NA) for(i in 1:n){ y[i]=min(runif(k,0,1)) } y=sort(y) F_y=1-(1-y)^k kmais=sqrt(n)*max(F_n-F_y) p=seq(0,1,0.0001) tabela_KS=data.frame(p,y_p=round((sqrt(0.5*log(1/(1-p))))-1/(sqrt(n)*6),4)) pvalor = ifelse(round(kmais,4) %in%

tabela_KS$y_p, tabela_KS$p[which(round(kmais,4)== tabela_KS$y_p[1:length(tabela_KS$p)])], NA)

(50)

A.7 Teste da Colis˜ao 49

A.7

Teste da Colis˜

ao

stirling <- function(k, r){

if((r == 0)|(k == 0)) return(0) if((r == k)|(r == 1)) 1

else {

if (r == k - 1) choose(k, 2)

else stirling(k - 1, r - 1) + r * stirling(k - 1, r) }

}

soma <- function(vet){ n <- 5 * length(vet) v <- numeric(0)

for (i in 1: n) v[i] <- sum((vet< i/n)&(vet > (i - 1)/n)) return(v)

}

colisao <- function(vet) sum(soma(vet)[which(soma(vet) > 0)] - 1)

A.8

Teste do Pˆ

oquer no R

set.seed(29) a=round(runif(100000,0,1),5) stirling_number=function(n,k){ a=c() for(j in 0:k){ a[j+1]=((-1)^(k-j))*choose(k,j)*(j^n)

(51)

A.9 Teste em dois n´ıveis 50 } return((1/factorial(k)) * sum(a)) } stirling_number(5,5) p_1=10/(10^5) * stirling_number(5,1) p_2=(10*9)/(10^5) * stirling_number(5,2) p_3=(10*9*8)/(10^5) * stirling_number(5,3) p_4=(10*9*8*7)/(10^5) * stirling_number(5,4) p_5=(10*9*8*7*6)/(10^5) * stirling_number(5,5) lista=sapply(a, function(x) strsplit(substr(x %>% format(., nsmall=5), 3, 8), ’’) %>% unlist %>% unique %>% length ) table(lista) chisq.test(table(lista),p=c(p_1,p_2,p_3,p_4,p_5))

A.9

Teste em dois n´ıveis

set.seed(29) seq=runif(100000,0,1) sequencias=split(seq, ceiling(seq_along(seq)/1000)) chi_quadrado=c() b_10=seq(0,1,0.1) for (i in 1:100){ chi_quadrado[i]=chisq.test(as.vector(table( cut(sequencias[[i]], b_10))))[[1]] } teste=data.frame(j=c(1:100),x_j=sort(chi_quadrado)) teste$parteinf=c()

Referências

Documentos relacionados