开始使用免费开始使用

再次基于数据进行条件化

让我们回到"僵尸网站"投放文本广告的示例。总共 100 次曝光中,有 6 次点击并访问了您的网站。

右侧是您在上一个练习中大致写出的代码。pars 目前表示 proportion_clicksn_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(___)
编辑并运行代码