2015-09-30 7 views
2

Я пытаюсь использовать PyMC3 для реализации иерархической модели с категориальными переменными и их взаимодействиями. В R, формула будет иметь вид что-то вроде:Иерархическое моделирование категориальных переменных взаимодействий в PyMC3

y ~ x1 + x2 + x1:x2 

Однако в учебнике https://pymc-devs.github.io/pymc3/GLM-hierarchical/#partial-pooling-hierarchical-regression-aka-the-best-of-both-worlds они явно говорят, что GLM не играет хорошо с иерархическим моделирования еще.

Так как же я хотел бы добавить термин x1: x2? Будет ли это категориальная переменная с двумя категориальными родителями (x1 и x2)?

ответ

3

Вы можете просто вручную добавить термин взаимодействия к своей линейной модели. Вам нужно будет добавить 3 коэффициента регрессии (бета) и один перехват. Вы можете оценить свои у с вероятностью следующим образом:

y = pm.Normal('regression', 
       mu=intercept + beta_x1 * data_x1 + beta_x2 * data_x2 + beta_interaction * data_x1 * data_x2, 
       sd=sigma, 
       observed=data_y) 

В параметры могут сами все имеют hyperpriors построить иерархическую модель.