3

我有一个如下所示的数据集(显示前 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'])

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

  • 我们有一个斜坡进行治疗
  • 我们有一个全局拦截
  • 我们也有每个广告系列的拦截

所以每个这样的变量只会得到一个

然而,看看下面的结果,我也得到了以下变量的后验: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)
4

1 回答 1

6
  • 1|campaign_uid

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

  • 1|campaign_uid_sd

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

  • CPA_sd

这是残差标准差。也就是说,您的模型可以(部分)写为 CPA_ij ~ Normal(b0 + b1*treatment_ij + u_j, sigma^2),并CPA_sd表示参数 sigma。

  • 1|campaign_uid_offset

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

于 2017-04-08T15:34:17.700 回答