【Rでベイズ統計学#2】ベルヌーイ分布のベイズ推定

記事の目的

ベルヌーイ分布のパラメータpのベイズ推定をRを使用して実装していきます。事前分布にはベータ分布を指定して、事後分布を求めていきます。データの作成から実装するので、コピペで再現することが可能です。

 

目次

  1. ライブラリ
  2. 真の分布
  3. 事前分布
  4. データ
  5. 事後分布

 

1 ライブラリ

library(ggplot2)
set.seed(1)

 

2 真の分布

x <- 0:1
p <- 0.8
prob <- dbinom(x, 1, p)

ggplot() + 
  geom_bar(aes(x, prob), stat ="identity") +
  labs(x="x", y="prob", title="ベルヌーイ分布")+
  theme_classic(base_family = "HiraKakuPro-W3") +
  theme(text = element_text(size = 24))

 

3 事前分布

a_pre <- 2
b_pre <- 2
x <- seq(0,1, 0.01)
p_prob_pre <- dbeta(x, a_pre, b_pre)

plot <- ggplot()+
  geom_line(aes(x=x, y=p_prob_pre))+
  labs(x="p", y="prob", title="ベータ分布")+
  theme_classic(base_family = "HiraKakuPro-W3") +
  theme(text = element_text(size = 24))
plot

 

4 データ

data <- rbinom(30, 1, p)
N <- length(data)

 

5 事後分布

a_pos <- sum(data) + a_pre
b_pos <- N - sum(data) + b_pre
x <- seq(0,1, 0.01)
p_prob_pos <- dbeta(x, a_pos, b_pos)

plot + geom_line(aes(x=x, y=p_prob_pos), col="blue")