베이즈 계산

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

Rasmus Bååth

Data Scientist

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

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

계산을 통한 베이즈 추론












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

계산을 통한 베이즈 추론

n_ads_shown <- 100










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

계산을 통한 베이즈 추론

n_ads_shown <- 100
n_visitors
proportion_clicks








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

계산을 통한 베이즈 추론

n_ads_shown <- 100
n_visitors <- seq(0, 100, by = 1)
proportion_clicks








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

계산을 통한 베이즈 추론

n_ads_shown <- 100
n_visitors <- seq(0, 100, by = 1)
proportion_clicks <- seq(0, 1, by = 0.01)








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

계산을 통한 베이즈 추론

n_ads_shown <- 100
n_visitors <- seq(0, 100, by = 1)
proportion_clicks <- seq(0, 1, by = 0.01)
pars <- expand.grid(proportion_clicks = proportion_clicks, 
                    n_visitors = n_visitors)






proportion_clicks n_visitors 
             0.04         38  
             0.11         93 
             0.16        100  
             0.67         98  
             0.96          3  
             0.48         73   
             0.14         13
             ...         ...    
R로 배우는 Bayesian 데이터 분석 기초

계산을 통한 베이즈 추론

n_ads_shown <- 100
n_visitors <- seq(0, 100, by = 1)
proportion_clicks <- seq(0, 1, by = 0.01)
pars <- expand.grid(proportion_clicks = proportion_clicks,
                    n_visitors = n_visitors)
proportion_clicks <- runif(n_samples, min = 0.0, max = 0.2)





proportion_clicks n_visitors 
             0.04         38  
             0.11         93 
             0.16        100  
             0.67         98  
             0.96          3  
             0.48         73   
             0.14         13
             ...         ...    
R로 배우는 Bayesian 데이터 분석 기초

계산을 통한 베이즈 추론

n_ads_shown <- 100
n_visitors <- seq(0, 100, by = 1)
proportion_clicks <- seq(0, 1, by = 0.01)
pars <- expand.grid(proportion_clicks = proportion_clicks,
                    n_visitors = n_visitors)
pars$prior <- dunif(pars$proportion_clicks, min = 0, max = 0.2) 





proportion_clicks n_visitors prior   
             0.04         38     5  
             0.11         93     5 
             0.16        100     5 
             0.67         98     0  
             0.96          3     0 
             0.48         73     0  
             0.14         13     5  
             ...         ...    ... 
R로 배우는 Bayesian 데이터 분석 기초

계산을 통한 베이즈 추론

n_ads_shown <- 100
n_visitors <- seq(0, 100, by = 1)
proportion_clicks <- seq(0, 1, by = 0.01)
pars <- expand.grid(proportion_clicks = proportion_clicks,
                    n_visitors = n_visitors)
pars$prior <- dunif(pars$proportion_clicks, min = 0, max = 0.2) 
n_visitors <- rbinom(n = n_samples, size = n_ads_shown,
                     prob = proportion_clicks)



proportion_clicks n_visitors prior   
             0.04         38     5  
             0.11         93     5 
             0.16        100     5 
             0.67         98     0  
             0.96          3     0 
             0.48         73     0  
             0.14         13     5  
             ...         ...    ... 
R로 배우는 Bayesian 데이터 분석 기초

계산을 통한 베이즈 추론

n_ads_shown <- 100
n_visitors <- seq(0, 100, by = 1)
proportion_clicks <- seq(0, 1, by = 0.01)
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)



proportion_clicks n_visitors prior    likelihood 
             0.04         38     5  3.409439e-27 
             0.11         93     5  5.006969e-80
             0.16        100     5  2.582250e-80 
             0.67         98     0  4.863666e-15
             0.96          3     0 3.592054e-131 
             0.48         73     0  2.215148e-07 
             0.14         13     5  1.129620e-01 
             ...         ...    ...          ...
R로 배우는 Bayesian 데이터 분석 기초

계산을 통한 베이즈 추론

n_ads_shown <- 100
n_visitors <- seq(0, 100, by = 1)
proportion_clicks <- seq(0, 1, by = 0.01)
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


proportion_clicks n_visitors prior    likelihood  probability
             0.04         38     5  3.409439e-27 1.704720e-26
             0.11         93     5  5.006969e-80 2.503485e-79
             0.16        100     5  2.582250e-80 1.291125e-79
             0.67         98     0  4.863666e-15 0.000000e+00
             0.96          3     0 3.592054e-131 0.000000e+00
             0.48         73     0  2.215148e-07 0.000000e+00
             0.14         13     5  1.129620e-01 5.648101e-01
             ...         ...    ...          ...          ...
R로 배우는 Bayesian 데이터 분석 기초

계산을 통한 베이즈 추론

n_ads_shown <- 100
n_visitors <- seq(0, 100, by = 1)
proportion_clicks <- seq(0, 1, by = 0.01)
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
sum(pars$probability)
105
proportion_clicks n_visitors prior    likelihood  probability
             0.04         38     5  3.409439e-27 1.704720e-26
             0.11         93     5  5.006969e-80 2.503485e-79
             0.16        100     5  2.582250e-80 1.291125e-79
             0.67         98     0  4.863666e-15 0.000000e+00
             0.96          3     0 3.592054e-131 0.000000e+00
             0.48         73     0  2.215148e-07 0.000000e+00
             0.14         13     5  1.129620e-01 5.648101e-01
             ...         ...    ...          ...          ...
R로 배우는 Bayesian 데이터 분석 기초

계산을 통한 베이즈 추론

n_ads_shown <- 100
n_visitors <- seq(0, 100, by = 1)
proportion_clicks <- seq(0, 1, by = 0.01)
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)

proportion_clicks n_visitors prior    likelihood  probability
             0.04         38     5  3.409439e-27 1.623542e-28
             0.11         93     5  5.006969e-80 2.384271e-81
             0.16        100     5  2.582250e-80 1.229643e-81
             0.67         98     0  4.863666e-15 0.000000e+00
             0.96          3     0 3.592054e-131 0.000000e+00
             0.48         73     0  2.215148e-07 0.000000e+00
             0.14         13     5  1.129620e-01 5.379144e-03
             ...         ...    ...          ...          ...
R로 배우는 Bayesian 데이터 분석 기초

계산을 통한 베이즈 추론

n_ads_shown <- 100
n_visitors <- seq(0, 100, by = 1)
proportion_clicks <- seq(0, 1, by = 0.01)
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)
sum(pars$probability)
1
proportion_clicks n_visitors prior    likelihood  probability
             0.04         38     5  3.409439e-27 1.623542e-28
             0.11         93     5  5.006969e-80 2.384271e-81
             0.16        100     5  2.582250e-80 1.229643e-81
             0.67         98     0  4.863666e-15 0.000000e+00
             0.96          3     0 3.592054e-131 0.000000e+00
             0.48         73     0  2.215148e-07 0.000000e+00
             0.14         13     5  1.129620e-01 5.379144e-03
             ...         ...    ...          ...          ...
R로 배우는 Bayesian 데이터 분석 기초

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

R로 배우는 Bayesian 데이터 분석 기초
n_ads_shown <- 100
n_visitors <- seq(0, 100, by = 1)
proportion_clicks <- seq(0, 1, by = 0.01)
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)


proportion_clicks n_visitors prior    likelihood  probability
             0.04         38     5  3.409439e-27 1.623542e-28
             0.11         93     5  5.006969e-80 2.384271e-81
             0.16        100     5  2.582250e-80 1.229643e-81
             0.67         98     0  4.863666e-15 0.000000e+00
             0.96          3     0 3.592054e-131 0.000000e+00
             0.48         73     0  2.215148e-07 0.000000e+00
             0.14         13     5  1.129620e-01 5.379144e-03
             ...         ...    ...          ...          ...
R로 배우는 Bayesian 데이터 분석 기초
n_ads_shown <- 100
n_visitors <- seq(0, 100, by = 1)
proportion_clicks <- seq(0, 1, by = 0.01)
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 == 13, ]
pars$probability <- pars$probability / sum(pars$probability)
proportion_clicks n_visitors prior    likelihood  probability
             0.04         13     5  1.368611e-04 0.0001428716
             0.14         13     5  1.129620e-01 0.1179229621
             0.19         13     5  3.265098e-02 0.0340849069
             0.39         13     0  7.234996e-09 0.0000000000
             0.59         13     0  1.531703e-21 0.0000000000
             0.79         13     0  3.582066e-45 0.0000000000
             0.94         13     0  1.591196e-91 0.0000000000
             ...         ...    ...          ...          ...
R로 배우는 Bayesian 데이터 분석 기초

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

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

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

직접 계산해 보세요!

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

Preparing Video For Download...