© 2000 paulo adeodato avaliação de desempenho de sistemas teste de geradores de números...

25
© 2000 Paulo Adeodato Avaliação de Desempenho de Avaliação de Desempenho de Sistemas Teste de Sistemas Teste de Geradores de Números Geradores de Números Aleatórios Aleatórios Paulo Adeodato Departamento de Informática Universidade Federal de Pernambuco

Upload: maria-de-fatima-lagos-bugalho

Post on 07-Apr-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Avaliação de Desempenho de Avaliação de Desempenho de Sistemas Teste deSistemas Teste de

Geradores de Números AleatóriosGeradores de Números AleatóriosPaulo Adeodato

Departamento de InformáticaUniversidade Federal de Pernambuco

Page 2: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

ConteúdoConteúdo Testes de Aderência às Distribuições

• Qui-quadrado• Kolmogorov-Smirnov

Testes de Independência• Autocorrelação

Testes de uniformidade k-dimensional• Serial• Espectral

Page 3: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Testes de Geradores de Números Aleatórios

Objetivo: Garantir que o gerador de números aleatórios produz uma seqüência aleatória.• Plote histogramas• Faca um gráfico quantil-quantil• Use outros testes

Passar num teste é condição necessária mas não suficiente• Passou Bom. Não passou Ruim• Novos testes Antigos geradores são reprovados

Os testes podem ser adaptados para outras distribuições

Page 4: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Testes do Qui-Quadrado Teste mais usado Pode ser usado para qualquer distribuição Prepare 2 histogramas: um dos dados observados e

outro dos resultados teóricos Meça a diferença entre a freqüência observada e a

teórica • k = número de células• oi = freqüência observada para a i-ésima célula• ei = freqüência esperada para a i-ésima célula

k

i i

ii

eeoD

1

2)(

Page 5: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Testes do Qui-Quadrado D possui uma distribuição qui-quadrado (2) com k-

1 graus de liberdade.• Compare D com 2[1-;k-1]

• Passa no teste com confiança 1- se D for menor que 2

D = 0 Coincidência perfeita

Page 6: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Exemplo 27.1 Geração de 1.000 números aleatórios com x0 = 1:

xn = (125 xn-1+ 1) mod (212) Freqüências relativas de dez células:

Qui-quadrado: 2[0,9;9] = 14,68

Diferença observada: D = 10,380 D < 2 Aceita IID U(0,1) com nível de significância 0,10

Célula Observado Esperado (Observado-Esperado)2

Esperado1 100 100,0 0,0002 96 100,0 0,1603 98 100,0 0,0404 85 100,0 2,2505 105 100,0 0,2506 93 100,0 0,4907 97 100,0 0,0908 125 100,0 6,2509 107 100,0 0,490

10 94 100,0 0,360Total 1000 1000,0 10,380

Page 7: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Qui-Quadrado para Outras Distribuições Erros em células com um ei pequeno dão peso maior

aos erros dessas células É melhor que os eis sejam idênticos. Portanto, use um

¨histograma¨ equiprovável com comprimentos variáveis de células, em função das separatrizes (quantis) teóricas.

Se r parâmetros são estimados a partir da amostra, o

número de graus de liberdade deve ser reduzido para k - r - 1 (em vez de de k - 1).

Esse teste foi projetado para distribuições discretas e amostras com comprimento grande.

O nível de significância é menor para amostras com comprimento finito e distribuições contínuas

Cada célula não pode ter menos do que 5 observações. Aumente os intervalos para conterem um maior número de observações.

Page 8: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Qui-Quadrado - Procedimento1. Plotar um histograma2. Propor uma distribuição adequada3. Estimar os parâmetros da distribuição4. Calcular os decis teóricos e observados5. Plotar um gráfico quantil-quantil (com base nos

decis)6. Montar a tabela do teste 2 7. Calcular a distância D8. Consultar a tabela do 2 (com k-r-1 graus de

liberdade)9. Comparar os resultados

Page 9: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Testes de Kolmogorov-Smirnov Desenvolvido por A. N. Kolmogorov e N. V. Smirnov Projetado para distribuições contínuas A diferença entre a FDA (função de distribuição acumulada)

observada Fo(x) e a FDA esperada Fe(x) deve ser pequena. K+ = desvio máximo observado acima da CDF esperada K- = desvio máximo observado abaixo da CDF esperada

)()(max xFxFnK eox

)()(max xFxFnK oex

Page 10: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Testes de Kolmogorov-Smirnov Se K+ < K[;n] e K- < K[;n] passa no teste com nível de

significância O teste equivale a dizer que a curva dos numeros se

encontra entre duas curvas limitantes inferior e superior (como intervalos de confianca no plano)

Use Fe(xi+1) - Fo(xi) para K- Para U(0,1): Fe(x) = x

Fo(x) - j/n, onde x > x1, x2,...,xj-1

j

jx

njnK max

njxnK j

j

1max

Page 11: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Exemplo 27.2 Geração de 30 números aleatórios com x0 = 15:

xn = 3xn-1 mod 31 Os números são:

• 14, 11, 2, 6, 18, 23, 7, 21, 1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28, 22, 4, 12, 5, 15.

Os números normalizados obtidos pela divisão da seqüência por 31 são:

0,45161 0,35484 0,06452 0,19355 0,58065 0,741940,22581 0,67742 0,03226 0,09677 0,29032 0,870970,61290 0,83871 0,51613 0,54839 0,64516 0,935480,80645 0,41935 0,25806 0,77419 0,32258 0,96774

Page 12: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Exemplo 27.2

Os valores de K[0,9;n] para n = 30 são 1,0424 K+ e K- < K[0,9;n] Passa no teste de aderencia a

distribuicao uniforme

1767,003226,030max

j

jx

njnK

1767,003226,030max

j

jx

njnK

Page 13: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Qui-quadrado x Teste K-S

Teste K-S Teste qui-quadrado

Amostragem curta Amostragem longa

Distribuições contínuas Distribuições discretasDiferenças entre probabilidadescumulativas (CDF) observada e esperada

Diferenças entre probabilidadesobservadas e teóricas (pdfs ou pmfs)

Usa cada observação na amostra sem fazernenhum agrupamento faz melhor usodos dados

Agrupa as observações num pequenonúmero de células

A dimensão da célula não é problemática Os comprimentos das células afetam aconclusão mas não há diretrizes claras

Exato Aproximado

Page 14: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Teste da Correlação Serial Covariância não nula Dependência

• A inversa não é verdadeira• Rk = Autocovariância com distância k• = Cov[xn, xn+k]

Rk Uí (Ui+k n - k 2 2

Para grandes valores de n, Rk tem distribuição normal com média zero e variância 1/[144(n - k)]

O intervalo de confiança com nível 100(1 para a autocovariância é:

Rk zl-,/2/(12V/n - k) Para k 1

Verifique se o Intervalo de Confiança contém o zero Para k = 0, Ro = variância da seqüência Deveria ser 1/12 para uma U(0,1) IID

1767,003226,030max

j

jx

njnK

Page 15: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Testes em Dois Níveis Se o tamanho da amostra for muito pequeno, os

resultados dos testes podem ser aplicáveis localmente, mas não globalmente para o ciclo completo.

Da mesma forma, um teste global pode não ser válido localmente

Use testes de dois níveis Use o teste do Qui-quadrado em n amostras de comprimento k, cada, e depois use o teste do qui-quadrado no conjunto das n estatísticas obtidas teste do qui-quadrado sobre testes qui-quadrado

Do mesmo modo, K-S sobre K-S Pode também ser usado para encontrar um segmento

"não-aleatório" numa seqüência considerada aleatória por outros testes.

Page 16: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Uniformidade k-Dimensional ou k-Distributividade

Qui-quadrado uniformidade em uma dimensão Dados dois números reais a, e b, entre 0 e 1 tais

que b1> a1• P(a1 < un < b1) = b1 - a1 b1> a1

Esta é conhecida como a propriedade de 1-distributividade de un.

A 2-distributividade é uma generalização desta propriedade em duas dimensões.

P(a1 < un-1 < b1 e a2 < un < b2) = (b1 - a1)( b2 – a2) Para todas as escolhas de a1, b1, a2 e b2 em [0,1),

b1> a1 e b2> a2

Page 17: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Uniformidade k-Dimensional ou k-Distributividade

São k-distribuídos se:¤ P(a1 < un < b1,..., ak < un+k-1 < bk) = (b1 - a1) ... ( bk – ak)

• Para todas as escolhas de ai, bi em [0,1) com bi> ai, i = 1, 2, ..., k.

Uma seqüência k-distribuída é sempre (k - 1)-distribuída. A recíproca não é verdadeira.

Dois testes:• Teste serial• Teste espectral

Teste visual para duas dimensões: Plotar pares de números sucessivos com superposição

Page 18: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Teste Serial Objetivo: Testar a uniformidade em duas ou mais

dimensões Em duas dimensões, divide-se o espaço entre 0 e 1

em K2 células de áreas iguais

Dados {xl,x2,.... xn}, use n/2 pares não superpostos (xl,x2), (x3,x4),... e conte os pontos em cada uma das K2 células.

Page 19: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Seriam esperados n/(2K2) pontos em cada célula. Use o teste do qui-quadrado para encontrar o desvio

da contagem real em relação à contagem esperada. O número de graus de liberdade neste caso é K2 - 1. Para k-dimensões: use k-tuplas de valores não-

superpostos. As k-tuplas devem ser não-superpostas.

Superposicão números de pontos nas células não são independentes

Teste do qui-quadrado não poderia ser utilizado Na verificação visual podem ser usadas k-tuplas

superpostas ou não. No teste espectral são usadas tuplas superpostas.

Dados n números, há (n - 1) pares superpostos e n/2 pares

não-superpostos

Page 20: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Teste Espectral Objetivo: Determinar o quão densamente as k-tuplas

{xl,x2,.... xk} podem preencher o hiperespaco k-dimensional

As k-tuplas de um LCG caem num número finito de hiperplanos paralelos.

Pares sucessivos residiriam num número finito de linhas

Em três dimensões, triplas sucessivas residem num número finito de planos.

Page 21: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Ou: xn = 3xn-1 - 31k k = 0, 1, 2 (27.2)

Em três dimensões, os pontos (xn,xn-1,xn-2) para o gerador acima residiriam em cinco planos dados por:

xn = 2xn-1 + 3xn-2 - 31k k = 0, 1,..., 4

Obtidos através da adição da expressão que segue à equação (27.2):

xn-1 = 3xn-2 - 31k1 k1 = 0, 1, 2 Note que k + k1, será um inteiro entre 0 e 4.

Page 22: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Teste Espectral (continuação) Marsaglia (1968): k-tuplas sucessivas obtidas a partir

de um LCG residem em, no máximo, (k!m)l/k hiperplanos paralelos, onde m é o módulo usado no LCG.

Exemplo: m = 232, menos do que 2.953 hiperplanos conterão todas as 3-tuplas (triplas), menos do que 566 hiperplanos conterão todas as 4-tuplas (quádruplas) e menos do que 41 hiperplanos conterão todas as 10-tuplas. Portanto, esta é uma fraqueza dos LCGs.

Teste Espectral: Determina a distancia máxima entre hiperplanos adjacentes.• Quanto maior a distância pior o gerador

Em alguns casos, pode ser feito através da enumeração completa

Page 23: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Exemplo 27.7 Compare os seguintes geradores:

xn = 3xn-1 mod 31 xn = 13xn-1 mod 31

Usando uma semente x0 = 15 no primeiro gerador: 14, 11, 2, 6, 18, 23, 7, 21, 1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13,

8, 24, 10, 30, 28, 22, 4, 12, 5, 15, 14.

Usando a mesma semente no segundo gerador obtemos:

9, 24, 2, 26, 28, 23, 20, 12, 1, 13, 14, 27, 10, 6, 16, 22, 7, 2 9, 5, 3, 8, 1 1, 1 9, 3 0, 1 8, 1 7, 4, 2 1, 2 5, 1 5, 9.

Cada número entre 1 e 30 aparece uma única vez Ambas as seqüências passam no teste do qui-

quadrado de uniformidade

Page 24: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

A distancia entre as linhas é:• (31/2)/ (1 + (5/2)2) ou 5, 76• O segundo gerador possui uma distância máxima menor e,

portanto, o segundo gerador tem uma melhor 2-distributividade.

O conjunto com a maior distância pode não ser sempre o conjunto com o menor número de linhas.

Podem ser usadas tanto k-tuplas superpostas quanto não-superpostas.

Com k-tuplas superpostas, temos k vezes mais pontos, o que torna o gráfico visualmente mais completo.

O número de hiperplanos e a distância entre eles são as mesmas em qualquer uma das escolhas.

Com o teste serial devemos usar apenas k-tuplas não-superpostas Para geradores com m grande e para dimensões mais altas,

encontrar a distancia máxima torna-se muito complicado. Vide Knuth (1981)

Page 25: © 2000 Paulo Adeodato Avaliação de Desempenho de Sistemas Teste de Geradores de Números Aleatórios Paulo Adeodato Departamento de Informática Universidade

© 2000 Paulo Adeodato

Referências BibliográficasReferências Bibliográficas Capítulo 27 do Jain