Échantillonnage exact à partir de mélanges incorrects


10

Supposons que je veuille échantillonner à partir d'une distribution continue p(x) . Si j'ai une expression de p sous la forme

p(x)=i=1aifi(x)

ai0,iai=1 pfip

  1. Échantillonnage d'une étiquette avec une probabilitéa iiai
  2. ÉchantillonnageXfi

Est-il possible de généraliser cette procédure si les sont parfois négatifs? Je soupçonne que j'ai vu cela se produire quelque part - peut-être dans un livre, peut-être pour la distribution de Kolmogorov - alors je serais parfaitement heureux d'accepter une référence comme réponse.ai

Si un exemple concret de jouet est utile, disons que je voudrais échantillonner à partir de Je vais alors prendre pour des raisons techniques qui ne devraient pas trop d'importance, dans le grand schéma des choses.α ( 0 , 2 )

p(x,y)exp(xyαxy)x,y>0
α(0,2)

En principe, je pourrais ensuite développer cela comme la somme suivante:

p(x,y)n=0(1)nαn(n2)!(n2)!n!(xn/2ex(n2)!)(yn/2ey(n2)!).

Les termes à l'intérieur de la somme peuvent ensuite être échantillonnés indépendamment à partir de variations aléatoires gamma. Mon problème est évidemment que les coefficients sont «occasionnellement» négatifs.(x,y)

Edit 1 : Je précise que je cherche à générer des échantillons exacts à partir de , plutôt que de calculer les attentes sous . Pour les personnes intéressées, certaines procédures à cet effet sont évoquées dans les commentaires.ppp

Edit 2 : J'ai trouvé la référence qui inclut une approche particulière de ce problème, dans «Non-Uniform Random Variate Generation» de Devroye . L'algorithme provient de «A Note on Sampling from Combinations of Distributions», de Bignami et de Matteis . La méthode consiste effectivement à délimiter la densité par le haut par les termes positifs de la somme, puis à utiliser un échantillonnage de rejet basé sur cette enveloppe. Cela correspond à la méthode décrite dans la réponse de @ Xi'an.


1
Pourquoi ne pouvez-vous pas échantillonner en utilisant simplement la valeur absolue de , puis en annulant votre échantillon ? En d'autres termes, définissez( en supposant que son fini), puis renormalisation votre somme par . X f i Z : = i = 1 | a i | ZaiXfiZ:=i=1|ai|Z
Alex R.

2
@AlexR. Si je vous comprends bien, une version de ceci serait pratique pour calculer les attentes sous , mais toujours pas pour tirer des échantillons exacts de . C'est certainement une réponse à un problème pertinent, mais pas tout à fait ce que je recherche. ppp
πr8

4
Cela dépend de ce que vous avez l'intention de faire avec cet échantillon. Aux fins du calcul des moments, par exemple, il semble simple de généraliser l'échantillonnage à partir de mélanges de densités en signalant en outre tout point sélectionné dans une composante à coefficient négatif comme étant un point "négatif" et en pondérant négativement sa contribution dans l'estimation du moment. De même, vous pouvez construire un KDE avec de tels poids négatifs, à condition que vous acceptiez la possibilité que certaines de ses valeurs soient négatives! (cc @ Xi'an)
whuber

1
Quel serait un échantillon "exact" d'une distribution? Encore une fois, si et comment vous pouvez exploiter un mélange avec des poids négatifs se résume à la façon dont vous avez l'intention d'utiliser l'échantillon.
whuber

1
Cela ne répond pas à votre question, mais vous pourriez être intéressé à lire sur l'échantillonnage à partir des probabilités de journal. Stats.stackexchange.com/a/260248/35989
Tim

Réponses:


5

Je suis perplexe sur cette question, mais je ne suis jamais venu avec une solution satisfaisante.

Une propriété qui peut être utilisée est que, si une densité écrit où est un densité telle que , simulant à partir de et rejetant ces simulations avec probabilité délivre des simulations à partir de . Dans le cas actuel, est la version normalisée des composantes de poids positif et est le reste g g ( x ) ω h ( x ) g ω h ( x ) / g ( x ) f

f(x)=g(x)ωh(x)1ωω>0
gg(x)ωh(x)gωh(x)/g(x)fg
g(x)=αi>0αifi(x)/αi>0αi
ωh
h(x)=αi<0αifi(x)/αi<0αi
Cela se trouve en effet dans la Bible de simulation de Devroye, Génération de variables aléatoires non uniformes , Section II.7.4, mais découle d'un simple raisonnement d'acceptation-rejet.

Un premier inconvénient de calcul de cette approche est que, bien que simulant d'abord à partir d'un composant choisi , les sommes en et en doivent être calculées pour l'étape de rejet. Si les sommes sont infinies sans version sous forme fermée, cela rend la méthode d'acceptation-rejet impossible à mettre en œuvre .figh

Une deuxième difficulté est que, puisque les deux sommes de poids sont du même ordre le taux de rejetn'a pas de limite supérieure. En fait, si la série associée aux ne converge pas absolument, la probabilité d'acceptation est nulle! Et la méthode ne peut pas être mise en œuvre dans cette situation.

αi>0αi=1αi<0αi
1ϱaccept=αi<0|αi|/i|αi|
αi

Dans le cas d'une représentation de mélange, si peut s'écrire le composant peut être choisi en premier puis la méthode appliquée au composant. Mais cela peut être délicat à mettre en œuvre, identifier les paires qui correspondent à partir de la somme éventuellement infinie n'étant pas nécessairement faisable.f

f(x)=i=1αigi(x)ωih(xi)1ωiωi>0
(gi,hi)gi(x)ωih(xi)>0

Je pense qu'une résolution plus efficace pourrait provenir de la représentation en série elle-même. Devroye, Génération de variables aléatoires non uniformes , Section IV.5, contient un large éventail de méthodes de séries. Comme par exemple l'algorithme suivant pour une autre représentation en série de la cible lorsque ' s convergent vers zéro avec et est une densité:

f(x)=κh(x){1a1(x)+a2(x)}
ai(x)hnhMéthode alternative de série de Devroye

Le problème a été examiné récemment dans le contexte d'estimateurs biaisés de débiasing pour MCMC, comme par exemple dans l' approche de Glynn-Rhee . Et l' estimateur de roulette russe (en lien avec le problème de l'usine de Bernoulli). Et la méthodologie impartiale MCMC . Mais il n'y a pas d'échappatoire à la question des signes ... Ce qui rend son utilisation difficile lors de l'estimation des densités comme dans les méthodes pseudo-marginales.

Après réflexion, ma conclusion est qu'il n'y a pas de méthode générique pour produire une simulation réelle à partir de cette série [plutôt qu'un mélange qui se révèle être un terme impropre], sans imposer plus de structure aux éléments de la série, comme celui de l'algorithme ci-dessus de la bible de Devroye . En effet, comme la plupart des densités (?) Permettent une expansion en série du type ci-dessus, cela impliquerait autrement l'existence d'une sorte de machine de simulation universelle ...


Je vous remercie! J'apprécie également les références supplémentaires.
πr8

1
Remerciements supplémentaires pour la réponse et les références très approfondies. Je suis heureux d'accepter cette réponse car elle réussit à générer des échantillons exacts à partir de en temps fini. Je vais probablement continuer à penser au problème dans une certaine mesure cependant; la seule idée supplémentaire que j'ai eue qui semble prometteuse est de voir l'échantillonnage de comme un échantillonnage , conditionnel à , et qu'il puisse y avoir une certaine géométrie aperçu qui est utile pour cette caractérisation (je pense comme un échantillonneur de tranches sur ). À votre santé! pp=λgμhXgλgμh{(x,y):μh(x)<y<λg(x)}
πr8

1
J'ai expliqué assez mal l'échantillonneur conditionnel; la caractérisation basée sur l'ensemble est un peu plus claire (à mon avis). Mon point clé est que si vous pouvez échantillonner uniformément à partir de l'ensemble bidimensionnel dans la ligne finale, il s'ensuit que la coordonnée a la distribution correcte. Il reste à voir si cette caractérisation peut être utile pour des mélanges incorrects à plus longue somme. (x,y)x
πr8

1
Je pensais également à un échantillonneur de tranches, mais ce n'est pas "exact" au sens de la simulation.
Xi'an

1

J'ai le projet d'une idée qui pourrait fonctionner. Ce n'est pas exact , mais espérons-le asymptotiquement exact. Pour en faire une méthode vraiment rigoureuse, où l'approximation est contrôlée, ou quelque chose à ce sujet peut être prouvé, il y a probablement beaucoup de travail à faire.

Premièrement, comme mentionné par Xi'an, vous pouvez regrouper les poids positifs d'une part et les poids négatifs d'autre part, de sorte que finalement le problème n'a que deux distributions et :gh

p=λgμh

avec . Notez que vous avez .λμ=1λ1

Mon idée est la suivante. Vous voulez un échantillon de observations de . Faire:Np

  • échantillonner valeurs de et les stocker dans une listeλNg
  • pour chacune des valeurs échantillonnées à partir de , supprimez leur voisin le plus proche (restant) de la liste.μNh

À la fin, vous obtenez points. Il n'a pas besoin d'être exactement le plus proche voisin, mais juste un point qui est "assez proche". La première étape est comme générer de la matière. La deuxième étape est comme générer de l'antimatière et la laisser entrer en collision et s'annuler avec la matière. Cette méthode n'est pas exacte, mais je crois que, dans certaines conditions, elle est asymptotiquement exacte pour les grands (pour la rendre presque exacte pour les petits vous devez d'abord utiliser un grand , puis prendre une petite partie aléatoire de la liste finale) . Je donne un argument très informel qui est plus une explication qu'une preuve.(λμ)N=NNnN

Considérons dans l'espace d'observation et un petit volume autour de avec le volume de Lebesgue . Après échantillonnage à partir de , le nombre d'éléments de la liste qui sont également en est approximativement . Après la deuxième étape, approximativement sera supprimé et vous aurez approximativement le nombre souhaité . Pour cela, vous devez supposer que le nombre de points dans le volume est suffisamment grand.xvxϵgvλNg(x)ϵμNh(x)ϵNp(x)ϵ

Il est très peu probable que cette méthode résiste aux grandes dimensions ou à certaines pathologies de et mais pourrait fonctionner en petites dimensions et avec des distributions suffisamment lisses et "suffisamment uniformes".gh

Remarque sur une méthode exacte:

J'ai d'abord pensé à cela pour des distributions discrètes, et clairement dans ce cas, la méthode n'est pas exacte, car elle peut générer des échantillons qui ont une probabilité 0. J'ai la forte intuition qu'une méthode exacte n'est pas possible avec un temps de traitement fini, et que cela l'impossibilité pourrait être prouvée, au moins pour les distributions discrètes. La règle du jeu est que vous ne pouvez utiliser que des échantillonneurs "oracle" exacts pour et mais ne connaissez pas et comme fonctions de . Pour plus de simplicité, limitez-vous aux distributions de Bernoulli. L'inexistence d'une méthode exacte est liée à la théorie de Bernoulli Factory : si vous pouviez créer un -coin à partir d'unghghx(λpμq)p-coin et un -coin, alors vous pourriez créer un -coin à partir d'un -coin qui est connu pour être impossible pour .qλppλ>1


1
J'ai considéré cela, mais je l'ai rejeté parce que mes efforts initiaux pour démontrer qu'il pouvait fonctionner ont conduit à réaliser que ce serait, au mieux, une approximation et potentiellement une mauvaise. Oui, cela pourrait fonctionner asymptotiquement, mais il ne répondra pas à la demande du PO pour un échantillonnage "exact" de la distribution.
whuber

L'efficacité de cette méthode est exactement du même ordre que la méthode exacte d'acceptation-rejet.
Xi'an

1
D'accord. Pourtant, ils sont assez différents. La méthode d'acceptation-rejet doit calculer et en fonction de . Je me suis concentré sur l'utilisation uniquement de l'échantillonnage de et comme échantillonneurs "oracle" comme dans un vrai mélange. Plus j'y pense, plus je suis convaincu qu'une méthode exacte basée sur l'échantillonnage des oracles ne peut pas exister. ghxgh
Benoit Sanchez

1
Je pense que est généralement correct, mais il peut y avoir des classes utiles de cas particuliers où une telle méthode exacte exerce ses exist. C'est parce que (1) dans certains cas, le calcul de est facile et (2) vous n'avez pas besoin de calculer à la fois et avez seulement besoin de calculer ce rapport. g hg/(g+h)gh
whuber

@BenoitSanchez Merci pour votre réponse détaillée; J'apprécie particulièrement les commentaires à la fin sur l'impossibilité (potentielle) d'exactitude. J'ai rencontré des usines de Bernoulli dans le passé et les ai trouvées assez difficiles; Je vais essayer de revisiter le sujet et voir s'il fournit des informations.
πr8
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.