У меня есть две независимые нормальные распределенные случайные величины a, b
. В pymc, это что-то вроде:pymc определяет сумму случайных величин
from pymc import Normal
def model():
a = Normal('a', tau=0.01)
b = Normal('b', tau=0.1)
Я хотел бы знать, что a+b
если мы можем видеть его как нормальное распределение, то есть:
from pymc import Normal
def model():
a = Normal('a', tau=0.01)
b = Normal('b', tau=0.1)
tau_c = Uniform("tau_c", lower=0.0, upper=1.0)
c = Normal("a+b", tau=tau_c, observed=True, value=a+b)
Тогда я хотел бы оценить tau_c
, но он не работает с pymc, потому что a
и b
являются стохастическими (если они являются массивами, это возможно, но у меня нет наблюдений a
или b
, я просто знаю их распределения).
Путь Я думаю, что я могу это сделать, генерирует случайные значения, используя распределения каждого a
и b
, а затем сделать это:
def model(a, b):
tau_c = Uniform("tau_c", lower=0.0, upper=1.0)
c = Normal("a+b", tau=tau_c, observed=True, value=a+b)
Но я думаю, что есть лучший способ сделать это с pymc ,
Спасибо!
При размещении вопроса о StackOverflow, вы должны попробовать, чтобы показать другим, что вы, по крайней мере, сделали некоторые усилия для решения вашей проблемы. Например, вы можете опубликовать несколько строк кода, указав, что вы нашли барьер. Не ясно из вашего вопроса, если вы не знаете, как использовать PyMC3, или если у вас есть проблема с нормальным распределением. Вы проверили руководство по началу работы [PyMC3] (http://pymc-devs.github.io/pymc3/notebooks/getting_started.html)?Вы можете обновить свои вопросы, указав детали. – aloctavodia
Модель PyMC3 будет вам полезна? – aloctavodia
Да, мне это очень понравилось. –