Zacznij terazZacznij za darmo

Przydatny skrót warunkowy

Świetnie – udało się przeprowadzić obliczenia bayesowskie bez żadnej symulacji! Wygenerowany wykres powinien przypominać rozkład a posteriori obliczony w rozdziale 3. Widać jednak, że kod jest dość rozbudowany – czy da się go skrócić?

Oczywiście! Możesz bezpośrednio warunkować na danych, bez konieczności wcześniejszego tworzenia łącznego rozkładu.

To ćwiczenie jest częścią kursu

Podstawy bayesowskiej analizy danych w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Ustaw n_visitors bezpośrednio na 6 – po prostu zastąp instrukcję seq.
  • Możesz teraz usunąć wiersz, który warunkuje na danych, oraz następny wiersz normalizujący pars$probability.
  • Przyjrzyj się uważnie końcowemu kodowi i upewnij się, że wynik tego zmodyfikowanego kodu będzie taki sam jak poprzednio. :)

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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")
Edytuj i uruchom kod