Скорочений шлях із умовою
Чудово, ви щойно виконали байєсівські обчислення без жодного моделювання! Побудований вами графік має бути схожим на апостеріорний розподіл, який ви обчислювали в розділі 3. Однак видно, що коду вийшло дуже багато — чи можна щось скоротити?
Так! Можна безпосередньо застосувати умовлення на основі даних — немає потреби спершу будувати спільний розподіл.
Ця вправа є частиною курсу
Основи байєсівського аналізу даних у R
Інструкції до вправи
- Задайте
n_visitorsбезпосередньо значенням6, просто замініть виразseq. - Тепер ви можете вилучити рядок, який задає умовлення на даних, і наступний рядок, який нормує
pars$probability. - Уважно перегляньте фінальний код і переконайтеся, що результат зміненого коду буде таким самим, як і раніше. :)
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Simplify the code below by directly conditioning on the data
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)
pars <- pars[pars$n_visitors == 6, ]
pars$probability <- pars$probability / sum(pars$probability)
plot(pars$proportion_clicks, pars$probability, type = "h")