2017-01-28 2 views
0

Я смущен о пользовательских дистрибутивах, в основном потому, что я не могу обернуть голову вокруг того, как это работает. Возможно, пост на нем был бы очень полезен.пользовательский дистрибутив в конкретном примере PymC3

Я пытаюсь создать дистрибутив, который представляет собой сочетание

-15% до -5% с 25% вероятностью

0 до 5% с 75% вероятностью

По существу пытается решить проблему, указанную в Crystal Ball Tutorial.pdf стр. 3-11.

Не могли бы вы помочь мне, как это сделать.

ответ

0

А что делать что-то вроде этого:

with pm.Model() as model: 
    idx = pm.Uniform('idx', 0, 1) 
    a = pm.Uniform('a', np.array([-15, 0]), np.array([-5, 5]), shape=2) 
    b = pm.Deterministic('b', pm.math.switch(idx < 0.25, a[0], a[1])) 
    step = pm.Metropolis() 
    trace = pm.sample(1000, step) 
0

Вы можете сделать это с pymc3 «s Mixture распределения следующим образом:

import numpy as np 
import pymc3 as pm 

with pm.Model() as model: 
    dist = pm.Mixture('dist', np.array([0.25, 0.75]), 
         [pm.Uniform.dist(-0.15, -0.05), pm.Uniform.dist(0., 0.05)]) 

N = 10000 
samples = dist.random(size=10000) 

Который производит следующее распределение, который я думаю, что вы ищут

distribution histogram

Смежные вопросы