Teste Espectral (estatística)

Fonte: testwiki
Saltar para a navegação Saltar para a pesquisa
Gráfico tridimensional de 100.000 valores gerados com RANDU . Cada ponto representa 3 valores pseudoaleatórios consecutivos. É claramente visto que os pontos estão em 15 planos bidimensionais .

O teste espectral é um teste estatístico para verificação da qualidade das classes de geradores de números pseudoaleatórios (PRNGs), os geradores congruenciais lineares (LCGs).[1] Os LCGs têm uma propriedade que, quando plotados em 2 ou mais dimensões, formam linhas ou hiperplanos, nos quais todas as saídas possíveis podem ser encontradas.[2] O teste espectral compara a distância entre esses planos; quanto mais distantes eles estiverem, pior será o gerador.[3] Como este teste foi desenvolvido para estudar as estruturas reticulares de LCGs, ele não pode ser aplicado a outras famílias de PRNGs.

De acordo com Donald Knuth,[4] this is by far the most powerful test known, because it can fail LCGs which pass most statistical tests. The IBM subroutine RANDU[5][6]

o LCG falha neste teste para valores maiores que 3 dimensões.

O primeiro passo é a geração de uma sequência u1,u2, utilizando-se o PRNG escolhido. Seja 1/νt a separação máxima entre os planos paralelos de cobertura da sequência {(un+1:n+t)n=0,1,} . O teste espectral verifica se a sequência ν2,ν3,ν4, não se degrada muito rapidamente.

Knuth aconselha verificar se cada um dos 5 números a seguir é > 0,01. μ2=πν22/m,μ3=43πν33/m,μ4=12π2ν44/m,μ5=815π2ν55/m,μ6=16π3ν66/m, onde m é o módulo do LCG.

Números de mérito

Knuth define um número de mérito, que é um valor que descreve quão próxima é a separação 1/νt do mínimo teórico. Sob a re-notação de Steele & Vigna, para a dimensão d, a figura fd é definida como[7]Predefinição:Rpfd(m,a)=νd/(γd1/2md), onde a,m,νd são definidos como antes, e γd é a constante de Hermite de dimensão d . γd1/2md é a menor separação interplanar possível.[7] Predefinição:Rp

L'Ecuyer (1991) introduziu ainda duas métricas correspondendo ao mínimo de fd em várias dimensões.[8] Novamente sob re-notação, d+(m,a) é o mínimo fd para um LCG de dimensões 2 a d, e d*(m,a) é o mesmo para um gerador de números pseudoaleatórios congruentes multiplicativos (MCG), ou seja, um onde apenas a multiplicação é usada, ou que c=0 . Steele e Vigna observam que o fd é calculado de forma diferente nestes dois casos, necessitando de valores separados.[7] Predefinição:RpEles definem ainda uma média ponderada de mérito “harmônica”, d+(m,a) (e d*(m,a) ).[7] Predefinição:Rp

Exemplos

Uma pequena variante do algoritmo RANDU, com xn+1=65539xnmod229 tem:[4] Predefinição:Rp

d 2 3 4 5 6 7 8
νPredefinição:Su 536936458 118 116 116 116
μd​ 3.14 10 −5 10 −4 10 −3 0,02
fdPredefinição:Nre 0,520224 0,018902 0,084143 0,207185 0,368841 0,552205 0,578329

Os números agregados de mérito são: 8*(65539,229)=0.018902, 8*(65539,229)=0.330886.Predefinição:Nre

George Marsaglia (1972) considerava xn+1=69069xnmod232 como "um candidato ao melhor de todos os multiplicadores" porque é fácil de lembrar e tem números de teste espectrais particularmente grandes.[9]

d 2 3 4 5 6 7 8
ν Predefinição:Su 4243209856 2072544 52804 6990 242
μdPredefinição:Nre 3.10 2,91 3.20 5.01 0,017
fdPredefinição:Nre 0,462490 0,313127 0,457183 0,552916 0,376706 0,496687 0,685247

Os números agregados de mérito são: 8*(69069,232)=0.313127, 8*(69069,232)=0.449578.Predefinição:Nre

Steele & Vigna (2020) fornecem os multiplicadores com os maiores números agregados de mérito para muitas escolhas de m = 2n e um determinado comprimento de bit de a . Eles também fornecem os valores fd e um pacote de software para calcular esses valores.[7] Predefinição:Rp Por exemplo, eles relatam que o melhor a de 17 bits para m = 232 é:

Ilustração adicional

Predefinição:Imagem múltipla

Notas

Predefinição:Listanota

Predefinição:Referências

Leitura adicional

  1. Predefinição:Citation.
  2. Predefinição:Citar periódico
  3. Predefinição:Citar web
  4. 4,0 4,1 Predefinição:Citation.
  5. IBM, System/360 Scientific Subroutine Package, Version II, Programmer's Manual, H20-0205-1, 1967, p. 54.
  6. Predefinição:Citar periódico
  7. 7,0 7,1 7,2 7,3 7,4 7,5 7,6 Predefinição:Citar periódico Associated software and data at https://github.com/vigna/CPRNG.
  8. Predefinição:Citar periódico Be sure to read the Errata as well.
  9. Predefinição:Citation