具有随机效应的多层次回归变量的解释

Interpretation of variables in multi-level regression with random effects

我有一个类似于下图的数据集(显示前 5 行)。 CPA 是对不同广告航班进行实验(处理)的观察结果。广告投放在广告系列中按层次分组。

  campaign_uid  flight_uid treatment         CPA
0   0C2o4hHDSN  0FBU5oULvg   control  -50.757370
1   0C2o4hHDSN  0FhOqhtsl9   control   10.963426
2   0C2o4hHDSN  0FwPGelRRX   exposed  -72.868952
3   0C5F8ZNKxc  0F0bYuxlmR   control   13.356081
4   0C5F8ZNKxc  0F2ESwZY22   control  141.030900
5   0C5F8ZNKxc  0F5rfAOVuO   exposed   11.200450

我适合像下面这样的模型:

model.fit('CPA ~ treatment',  random=['1|campaign_uid'])

据我所知,这个模型简单地说:

所以对于每个这样的变量.[=15,一个 =]

但是,查看下面的结果,我还得到了以下变量的后验概率:1|campaign_uid_offset。它代表什么?

拟合模型和绘图的代码:

model   = Model(df)
results = model.fit('{} ~ treatment'.format(metric),  
                    random=['1|campaign_uid'], 
                    samples=1000)
# Plotting the result
pm.traceplot(model.backend.trace)
  • 1|campaign_uid

这些是您在参数列表中提到的广告系列的随机截取。

  • 1|campaign_uid_sd

这是上述随机活动拦截的标准差。

  • CPA_sd

这是残差标准差。也就是说,你的模型可以(部分地)写成 CPA_ij ~ Normal(b0 + b1*treatment_ij + u_j, sigma^2),而 CPA_sd 代表参数西格玛。

  • 1|campaign_uid_offset

这是随机截距的另一种参数化。 bambi 在内部使用此转换以提高 MCMC 采样效率。通常这个转换后的参数默认是对用户隐藏的;也就是说,如果您使用 results.plot() 而不是 pm.traceplot(model.backend.trace) 制作跟踪图,那么这些项将被隐藏,除非您指定 transformed=True(默认情况下为 False)。它也默认隐藏在 results.summary() 输出中。有关此转换的详细信息,请参阅 this nice blog post by Thomas Wiecki