Бета-распределенная линейная модель в PyMC

Подняв вопрос о том, что должно было быть здесь, а не в старых группах Google, я попытался параметризовать линейную модель с бета-распределением в PyMC, которую Крис Фоннесбек предложил как:

«просто репараметризация бета-версии, где \alpha = \mu \phi и \beta = (1-\mu) \phi. Итак, все, что вам нужно, это что-то вроде: new_beta = Lambda('new_beta', lambda x=x , mu=mu, phi=phi: beta_like(x, mu*phi, (1-mu)*phi))"

и это здорово — мой следующий вопрос — куда втыкать компонент линейной модели, который, я думаю, должен быть на \mu, например:

$$\mu = \exp(b_0+b_1x)$$

и с гамма-распределением \phi:

phi = Gamma('phi', alpha=0.001, beta=0.001)

Это верно? NB мы на PyMC2 здесь

Спасибо, Аарон.


person MA MacNeil    schedule 19.12.2013    source источник


Ответы (1)


Это зависит от того, как вы хотите, чтобы ваша линейная модель влияла на бета-модель. Как вы описали здесь mu, это не среднее значение бета, а просто нормализующая константа среднего значения. Если вы хотите, чтобы альфа и бета описывались как среднее значение и дисперсия бета, это будет выглядеть примерно так:

alpha = mu * (mu*(1-mu)/var - 1)
beta = (1 - mu) * (mu*(1-mu)/var - 1)

Возможно, более простым подходом будет использование среднего значения mu и размера выборки nu:

alpha = mu * nu
beta = (1-mu) * nu
person Chris Fonnesbeck    schedule 19.12.2013
comment
Это отлично - я попробую и отчитаюсь. Большое спасибо! - person MA MacNeil; 20.12.2013