НачатьНачать бесплатно

Быстрый условный способ

Отлично! Вы выполнили байесовские вычисления без какого-либо моделирования! График, который вы построили, должен быть похож на апостериорное распределение, рассчитанное в главе 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")
Редактировать и запускать код