2016-05-23 4 views
1

я не могу найти пример на это, или я не вижу сходства с моей проблемой:модели распределения а что представляет собой комбинацию двух других

Я попытался смоделировать мультимодальные распределения, которая выглядит, как если бы это было определяемый суммой двух хи-квадратов распределений (хотя можно было бы взять любую комбинацию распределений ...).

Теперь я не знаю, как «жениться» на этих дистрибутивах. Я ищу что-то вроде этого, но она не работает таким образом:

из pymc3 импорта модели, HalfNormal, find_MAP, образец, traceplot, ChiSquared, Детерминированная basic_model = Модель()

with basic_model: 
    nu1 = HalfNormal("nu1", sd = 1) 
    nu2 = HalfNormal("nu2", sd = 1) 
    cs1 = ChiSquared("cs1", nu = nu1) 
    cs2 = ChiSquared("cs2", nu = nu2) 
    # this is wrong, but it shows what I would like to achieve: 
    Y_obs = Deterministic("Y_obs", cs1, cs2, observed = tx) 
    start = find_MAP(model = basic_model) 
    trace = sample(2000, start = start) 

traceplot(trace) 

Как мне это сделать? Полученная функция должна моделировать что-то вроде этого:

enter image description here

ответ

1

Проверьте следующую модель, эта модель предполагает, что ваши данные представляет собой смесь двух распределений хи-квадрат. Название для этого типа модели - смесь модели. Здесь категориальное распределение используется для назначения каждой точки данных одному из двух хи-квадратов. Возможно, вам придется адаптировать его к своей проблеме, но я думаю, что это хорошее начало.

with pm.Model() as model: 
    nus = pm.HalfCauchy('nus', beta=10, shape=2) 

    category = pm.Categorical('category', p=[0.5, 0.5], shape=len(x)) 

    obs = pm.ChiSquared('obs', nu=nus[category], observed=x) 

    step = pm.ElemwiseCategorical(vars=[category], values=[0, 1]) 
    trace = pm.sample(1000, step) 
+0

Спасибо! Я пытаюсь это прямо сейчас. В документации отсутствует элемент «ElemwiseCategorical»? Я не могу найти его нигде. – Xiphias

+0

А, [здесь] (https://github.com/pymc-devs/pymc3/blob/master/pymc3/step_methods/gibbs.py), он находится в коде. Но нет документов, не так ли? – Xiphias

+0

Были некоторые недавние изменения в документации, и я также думаю, что в функции «ElewiseCategorical». – aloctavodia