Scrambling e correlazione in sequenze a bassa discrepanza (Halton / Sobol)


14

Attualmente sto lavorando a un progetto in cui generi valori casuali utilizzando insiemi di punti a bassa discrepanza / quasi casuali , come gli insiemi di punti Halton e Sobol. Questi sono essenzialmente vettori dimensionali che imitano le variabili uniformi dimensionali (0,1), ma hanno una diffusione migliore. In teoria, dovrebbero aiutare a ridurre la varianza delle mie stime in un'altra parte del progetto.ddd

Sfortunatamente, ho riscontrato problemi nel lavorare con loro e gran parte della letteratura su di essi è densa. Speravo quindi di ottenere alcune informazioni da qualcuno che ha esperienza con loro, o almeno trovare un modo per valutare empiricamente cosa sta succedendo:

Se hai lavorato con loro:

  • Che cosa sta esattamente rimescolando? E quale effetto ha sul flusso di punti generati? In particolare, c'è un effetto quando aumenta la dimensione dei punti generati?

  • Perché se generi due flussi di punti Sobol con MatousekAffineOwen che scrambling, ottengo due diversi flussi di punti. Perché non è questo il caso in cui uso il rimescolamento del reverse-radix con i punti di Halton? Esistono altri metodi di rimescolamento per questi set di punti - e in tal caso, esiste un'implementazione MATLAB di questi?

Se non hai lavorato con loro:

  • Supponiamo che io abbia sequenze di numeri apparentemente casuali, che tipo di statistiche dovrei usare per mostrare che non sono correlate tra loro? E quale numero avrei bisogno per dimostrare che il mio risultato è statisticamente significativo? Inoltre, come potrei fare la stessa cosa se avessi sequenze S_1, S_2, \ ldots, S_n di v -random casuali [0,1] ?S 1 , S 2 , , S n n n S 1 , S 2 , , S n d [ 0 , 1 ]nS1,S2,...,SnnnS1,S2,,Snd[0,1]

Domande di follow-up sulla risposta del cardinale

  1. Teoricamente parlando, possiamo accoppiare qualsiasi metodo di scrambling con una sequenza a bassa discrepanza? MATLAB mi permette solo di applicare il reverse-radix scrambling sulle sequenze di Halton e mi chiedo se si tratti semplicemente di un problema di implementazione o di compatibilità.

  2. Sto cercando un modo che mi permetta di generare due (t, m, s) reti non correlate tra loro. MatouseAffineOwen mi permetterà di farlo? Che ne dici se usassi un algoritmo di scrambling deterministico e decidessi semplicemente di scegliere ogni valore 'kth' dove k era un numero primo?


cosa intendi con due reti non correlate? In particolare, cosa significa questo quando dici "us [ing] un algoritmo di scrambling deterministico"? Molti algoritmi di scrambling possono essere applicati a reti arbitrarie ; Onestamente non so se tutti gli schemi lo fanno. Immagino che la risposta potrebbe essere "no". (Cioè, si potrebbe costruire un rimescolamento che era abbastanza specializzato da mantenere la proprietà di chiusura per una sequenza particolare , ma non in generale. Non lo so di mano.)( t , m , s )(t,m,s)(t,m,s)
Cardinale

@cardinal Mi dispiace che non sia chiaro, quindi lasciami provare a riformularlo. Supponiamo di avere due reti e che utilizzo per generare due sequenze di 100 punti, e . Se uso un algoritmo di scrambling casuale allora e dovrebbero essere non correlati, giusto? Chiaramente questo non è vero se avessi usato un algoritmo di scrambling deterministico. Ma cosa accadrebbe se generasse 200 punti e mantenesse solo le voci pari di e le voci dispari da . Questi sarebbero correlati? E sarebbero ancora ben "sparsi"? (t,m,s)PQ{pi}1100{qi}1100{pi}1100{qi}1100{pi}1200{qi}1200
Berk U.

sì, se si mescolano casualmente due reti separate indipendentemente l'una dall'altra, i set risultanti saranno indipendenti. Per quanto riguarda un algoritmo di scrambling deterministico, senza alcuna nozione di casualità, in realtà non può esserci una nozione corretta di correlazione. Dovrei pensare di prendere voci pari e dispari. L'approccio standard sarebbe quello di ottenere alcuni punti per il primo, quindi generare e buttare via un sacco di punti in più, quindi raccogliere la seconda serie di punti. Ciò è correlato all'uso di insiemi "burned in" di punti QMC. (t,m,s)
cardinale

Risposte:


10

Scrambling è di solito un'operazione applicata a una rete digitale che utilizza una base . Le reti Sobol usano ad esempio , mentre le reti Faure usano un numero primo per .(t,m,s)bb=2b

Lo scopo del rimescolamento è (si spera) di ottenere una distribuzione ancora più uniforme, soprattutto se è possibile utilizzare solo un numero limitato di punti. Un buon esempio per capire perché funziona è guardare la sequenza di Halton in e scegliere due numeri primi "grandi", come 29 e 31. Il quadrato viene riempito molto lentamente usando la sequenza standard di Halton. Ma, con lo scrambling, si riempie in modo più uniforme molto più rapidamente. Ecco una trama per i primi duecento punti usando un approccio di mescolanza deterministica.d=2

inserisci qui la descrizione dell'immagine

Le forme più elementari di rimescolamento essenzialmente consentono le espansioni di base della cifra degli punti originali tra di loro. Per maggiori dettagli, ecco una chiara esposizione .bn

La cosa bella di rimescolare è che se inizi con una rete e la rimescoli, ottieni una rete . Quindi, c'è una proprietà di chiusura coinvolta. Dal momento che si desidera utilizzare i vantaggi teorici di una rete in primo luogo, questo è molto desiderabile.(t,m,s)(t,m,s)(t,m,s)

Per quanto riguarda i tipi di rimescolamento, lo scramble reverse-radix è un rimescolamento deterministico . L'algoritmo di rimescolamento di Matousek è un rimescolamento casuale , fatto, ancora una volta, in modo da mantenere la proprietà di chiusura. Se imposti il ​​seed casuale prima di effettuare la chiamata alla funzione di scrambling, dovresti sempre ottenere la stessa rete.

Potresti anche essere interessato al progetto MinT .


Grazie mille per questo. Ho avuto alcune domande di follow-up se non ti dispiace. Dal momento che la casella dei commenti non mi consente di elencarli chiaramente, li ho inclusi nel post.
Berk U.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.