© 2000 paulo adeodato avaliação de desempenho de sistemas teste de geradores de números...
TRANSCRIPT
© 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
© 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
© 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
© 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)(
© 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
© 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
© 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.
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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.
© 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
© 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
© 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.
© 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
© 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.
© 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.
© 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
© 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
© 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)
© 2000 Paulo Adeodato
Referências BibliográficasReferências Bibliográficas Capítulo 27 do Jain