시작하기무료로 시작하기

조건부 지름길

훌륭해요. 이제 시뮬레이션 없이도 베이지안 계산을 해 보셨네요! 방금 만든 플롯은 3장에서 계산했던 사후분포와 비슷해야 합니다. 그런데 코드를 꽤 많이 작성했죠. 줄일 수 있는 부분이 있을까요?

있습니다! 데이터를 바로 조건화하면 됩니다. 굳이 먼저 결합분포를 만들 필요가 없어요.

이 연습은 강의의 일부입니다

R로 배우는 Bayesian 데이터 분석 기초

강의 보기

연습 안내

  • seq 구문을 6으로 바로 바꿔서 n_visitors를 직접 6으로 설정하세요.
  • 이제 데이터에 조건을 거는 줄과, 그 다음 줄의 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")
코드 편집 및 실행