L'échantillonnage de rejet fonctionnera exceptionnellement bien lorsque et est raisonnable pour c d ≥ exp ( 2 ) .cd≥exp(5)cd≥exp(2)
Pour simplifier un peu les mathématiques, soit , écrivez x = a et notez quek=cdx=a
F( x ) ∝ kXΓ ( x )réX
pour . Réglage x = u 3 / 2 donnex ≥ 1x = u3 / 2
F( u ) ∝ ku3 / 2Γ ( u3 / 2)u1 / 2réu
pour . Lorsque k ≥ exp ( 5 ) , cette distribution est extrêmement proche de la normale (et se rapproche à mesure que k grandit). Plus précisément, vous pouvezu ≥ 1k ≥ exp( 5 )k
Trouvez le mode de numériquement (en utilisant, par exemple, Newton-Raphson).F( u )
Développez au deuxième ordre sur son mode.JournalF( u )
Cela donne les paramètres d'une distribution normale très approximative. Avec une grande précision, cette normale approximative domine sauf dans les queues extrêmes. (Lorsque k < exp ( 5 ) , vous devrez peut-être augmenter légèrement le pdf normal pour assurer la domination.)F( u )k < exp( 5 )
Ayant effectué ce travail préliminaire pour une valeur donnée de et ayant estimé une constante M > 1 (comme décrit ci-dessous), l'obtention d'une variable aléatoire est une question de:kM> 1
Tirez une valeur de la distribution normale dominante g ( u ) .ug( u )
Si ou si une nouvelle variable uniforme X dépasse f ( u ) / ( M g ( u ) ) , retournez à l'étape 1.u < 1XF( u ) / ( Mg(u))
Set .x=u3/2
Le nombre prévu d'évaluations de raison des écarts entre g et f n'est que légèrement supérieur à 1. (Certaines évaluations supplémentaires se produiront en raison des rejets de variances inférieures à 1 , mais même lorsque k est aussi faible que 2, la fréquence de telles les occurrences sont petites.)fgf1k2
Ce graphique montre les logarithmes de g et f en fonction de u pour . Parce que les graphiques sont si proches, nous devons inspecter leur ratio pour voir ce qui se passe:k=exp(5)
Ceci affiche le rapport logarithmique ; le facteur M = exp ( 0,004 ) a été inclus pour garantir que le logarithme est positif dans toute la partie principale de la distribution; c'est-à-dire pour assurer M g ( u ) ≥ f ( u ) sauf éventuellement dans des régions de probabilité négligeable. En rendant M suffisamment grand, vous pouvez garantir que M ⋅ glog(exp(0.004)g(u)/f(u))M=exp(0.004)Mg(u)≥f(u)MM⋅gdomine dans toutes les queues sauf les plus extrêmes (qui n'ont pratiquement aucune chance d'être choisies dans une simulation de toute façon). Cependant, plus M est grand, plus les rejets se produisent fréquemment. Lorsque k devient grand, M peut être choisi très près de 1 , ce qui n'entraîne pratiquement aucune pénalité.fMkM1
Une approche similaire fonctionne même pour , mais des valeurs assez grandes de M peuvent être nécessaires lorsque exp ( 2 ) < k < exp ( 5 ) , car f ( u ) est sensiblement asymétrique. Par exemple, avec k = exp ( 2 ) , pour obtenir un g raisonnablement précis, nous devons définir M = 1 :k>exp(2)Mexp(2)<k<exp(5)f(u)k=exp(2)gM=1
La courbe rouge supérieure est le graphique de tandis que la courbe bleue inférieure est le graphique de log ( f ( u ) ) . L'échantillonnage de rejet de f par rapport à exp ( 1 ) g entraînera le rejet d' environ 2/3 de tous les tirages d'essai, triplant l'effort: toujours pas mal. La queue droite ( u > 10 ou x > 10 3 / deux ~ 30log(exp(1)g(u))log(f(u))fexp(1)gu>10x>103/2∼30) sera sous-représentée dans l'échantillonnage de rejet (car n'y domine plus f ), mais cette queue comprend moins que exp ( - 20 ) ∼ 10 - 9 de la probabilité totale.exp(1)gfexp( - 20 ) ∼ 10- 9
Pour résumer, après un effort initial pour calculer le mode et évaluer le terme quadratique de la série de puissance de autour du mode - un effort qui nécessite au plus quelques dizaines d'évaluations de fonction - vous pouvez utiliser l'échantillonnage de rejet à un coût prévu compris entre 1 et 3 (ou plus) évaluations par variable. Le multiplicateur de coût tombe rapidement à 1 lorsque k = c d augmente au-delà de 5.F( u )k = c d
Même lorsqu'un seul tirage de est nécessaire, cette méthode est raisonnable. Il prend tout son sens lorsque de nombreux tirages indépendants sont nécessaires pour la même valeur de k , car le surcoût des calculs initiaux est amorti sur de nombreux tirages.Fk
Addenda
@Cardinal a demandé, tout à fait raisonnablement, le soutien d'une partie de l'analyse de la main dans ce qui précède. En particulier, pourquoi la transformation faire la distribution à peu près normale?x = u3 / 2
À la lumière de la théorie des transformations de Box-Cox , il est naturel de rechercher une transformation de puissance de la forme (pour une constante α , espérons-le pas trop différente de l'unité) qui rendra une distribution "plus" normale. Rappelons que toutes les distributions normales sont simplement caractérisées: les logarithmes de leurs pdfs sont purement quadratiques, avec zéro terme linéaire et aucun terme d'ordre supérieur. Par conséquent, nous pouvons prendre n'importe quel pdf et le comparer à une distribution normale en étendant son logarithme en tant que série de puissance autour de son pic (le plus élevé). Nous recherchons une valeur de α qui fait (au moins) le troisièmex = uαααla puissance s'évanouit, au moins approximativement: c'est le plus que l'on puisse raisonnablement espérer qu'un seul coefficient libre accomplira. Cela fonctionne souvent bien.
Mais comment maîtriser cette distribution particulière? En effectuant la transformation de puissance, son pdf est
F( u ) = kuαΓ ( uα)uα - 1.
Prenez son logarithme et utilisez l'expansion asymptotique de Stirling de :Journal( Γ )
Journal( f( u ) ) ≈ log( k ) uα+ ( α - 1 ) log( u ) - α uαJournal( u ) + uα- journal(2πuα)/2+cu−α
(pour les petites valeurs de , ce qui n'est pas constant). Cela fonctionne à condition que α soit positif, ce que nous supposerons être le cas (car sinon nous ne pouvons pas négliger le reste de l'expansion).cα
Calculez sa dérivée troisième (qui, lorsqu'elle est divisée par Sera le coefficient de la troisième puissance de u dans la série de puissance) et exploitez le fait qu'au sommet, la dérivée première doit être nulle. Cela simplifie considérablement la troisième dérivée, donnant (approximativement, parce que nous ignorons la dérivée de c )3 !uc
- 12u- ( 3 + α )α ( 2 α ( 2 α - 3 ) u2 α+ (α2- 5 α + 6 )uα+ 12 c α ) .
Lorsque n'est pas trop petit, u sera en effet grand au sommet. Parce que α est positif, le terme dominant dans cette expression est la puissance 2 α , que nous pouvons mettre à zéro en faisant disparaître son coefficient:kuα2 α
2 α - 3 = 0.
Voilà pourquoi les fonctionne si bien: avec ce choix, le coefficient du terme cubique autour du pic se comporte comme u - 3 , qui est proche de exp ( - 2 k ) . Une fois que k dépasse 10 environ, vous pouvez pratiquement l'oublier, et il est raisonnablement petit, même pour k jusqu'à 2. Les puissances supérieures, à partir du quatrième, jouent de moins en moins un rôle lorsque k devient grand, car leurs coefficients augmentent proportionnellement plus petit aussi. Par ailleurs, les mêmes calculs (basés sur la dérivée seconde de l o g ( fα = trois / 2u- 3exp( - 2 k )kkk à son apogée) montre que l'écart-type de cette approximation normale est légèrement inférieur à 2l og(f( u ) ), avec l'erreur proportionnelle àexp(-k/2).23exp( k / 6 )exp( - k / 2 )