2017-03-07 1 views
0

J'ai deux tableaux (pdf_ #) contenant chacun la probabilité d'un paramètre (val_ #). Comment puis-je échantillonner à partir de ces distributions pour créer une distribution postérieure conjointe (c'est-à-dire comme dans le corner plot here)? Pour l'animateur, il semble que je ne peux passer que des fonctions à échantillonner, pas des tableaux.utiliser emcee pour échantillonner les fonctions de distribution de probabilité?

Voici ce que j'ai:

pdf_1 = [.1, .1, .25, .3, .15] 
pdf_2 = [.25, .3, .2, .1, .4] 

val_1 = [2, 3, 4, 5, 6] 
val_2 = [1, 2, 3 ,4 ,5] 

(en réalité, les pdfs sont échantillonnés plus finement, et somme à 1)

Je voudrais générer des nombres N d'échantillons (avec x, y à partir de val_1, val_2) en suivant les pdfs.

Répondre

1

Y a-t-il une raison pour laquelle vous voulez utiliser mcmc?

numpy.random.choice(a=val_1, size=N, p=pdf_1) 

choisira une valeur de a avec les probabilités associées p. Pour N échantillons dans un calladd, définissez l'attribut size. Est-ce que ce n'est pas suffisant?

https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.choice.html#numpy.random.choice

Ah, et si vous avez les distributions et que vous voulez tracer la courbe comme dans votre lien, j'utiliser matplotlib.pyplot.hist(array)