再次基于数据进行条件化
让我们回到"僵尸网站"投放文本广告的示例。总共 100 次曝光中,有 6 次点击并访问了您的网站。
右侧是您在上一个练习中大致写出的代码。pars 目前表示 proportion_clicks 与 n_visitors 所有组合的联合分布。
本练习是课程的一部分
R 中的贝叶斯数据分析基础
练习说明
- 基于观测数据进行条件化,只保留
pars中满足n_visitors == 6的行。 - 重新标准化
pars$probability,确保其总和为1.0。 - 使用
plot(x = , y = , type = "h")绘制后验pars$probability,x 轴为pars$proportion_clicks,y 轴为pars$probability。
交互式实操练习
通过完成这段示例代码来试试这个练习。
n_ads_shown <- 100
proportion_clicks <- seq(0, 1, by = 0.01)
n_visitors <- seq(0, 100, by = 1)
pars <- expand.grid(proportion_clicks = proportion_clicks,
n_visitors = n_visitors)
pars$prior <- dunif(pars$proportion_clicks, min = 0, max = 0.2)
pars$likelihood <- dbinom(pars$n_visitors,
size = n_ads_shown, prob = pars$proportion_clicks)
pars$probability <- pars$likelihood * pars$prior
pars$probability <- pars$probability / sum(pars$probability)
# Condition on the data
pars <- ___
# Normalize again
pars$probability <- ___
# Plot the posterior pars$probability
plot(___)