PyMC3 中的分层建模分类变量交互

Hierarchical modeling categorical variable interactions in PyMC3

我正在尝试使用 PyMC3 来实现具有分类变量及其交互的层次模型。在 R 中,公式将采用如下形式:

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 个回归系数(beta)和一个截距。然后你可以估计你的 y 的可能性如下:

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)

参数本身都可以有hyperprior来构建层次模型