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']) 

據我所知,這個模型只是說:

  • 我們有治療
  • 斜坡我們有一個全球攔截
  • 我們也有每個廣告系列
  • 0截距

這樣一個只想得到一個每個這樣的變量

但是,看下面的結果,我也得到了以下變量的後綴:1|campaign_uid_offset。它代表什麼?

enter image description here

代碼擬合模型和情節:

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

回答

5
  • 1 | campaign_uid

這些是你在你的列表中提及運動隨機攔截參數。

  • 1 | campaign_uid_sd

這是前述的隨機運動攔截的標準偏差。

  • CPA_sd

這是殘餘的標準偏差。也就是說,你的模型可以被(部分)作爲CPA_ij〜師範大學(B0 + B1·treatment_ij + u_j,西格馬^ 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

+0

謝謝。考慮到這一點,我如何理解擬合誤差? (例如,用於比較模型)。我一直認爲'CPA_sd'會給我這個信息(即*殘差標準差越高的模型越差*,所以我可以使用'CPA_sd'來比較模型)。這是現實假設嗎?如果是這樣的話,是不是會這樣做,以避免對每個廣告系列攔截的標準偏差(即「1 | campaign_uid_sd」)所捕獲的「錯誤」的貢獻? –

+0

另外Jake,''處理[T.exposed]中的'T'在輸出中意味着什麼? – Josh

+0

@ AmelioVazquez-Reina如果你有興趣進行模型比較,你可能會發現[pymc3文檔中的這個頁面](https://pymc-devs.github.io/pymc3/notebooks/GLM-model-selection.html )有用。 –