以下のようなデータセットがあります (最初の 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 つの 事後分布が得られます。
ただし、以下の結果を見ると、次の変数の事後分布も得られます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)