베르누이 분포 : 베타 분포 (베이즈 추정)

13104 단어 R

기사의 목적



베르누이 분포와 공액 사전 분포의 베타 분포를 사용하고 R을 사용하여 베이지안 추정을 수행합니다.
특정 상품 A를 구매할 확률을 추정합니다.
참고 : 베이즈 추론에 의한 기계 학습 입문

목차



0. 모델 설명
1. 라이브러리
2. 추정할 분포
3. 사전 분포
4. 사후 분포
5. 예측 분포

0. 모델 설명





1. 라이브러리


library(dplyr)
library(ggplot2)
set.seed(100)

2. 추정할 분포



한 고객이 상품 A를 구입할 확률은 0.8이지만, 우리는 그것을 모른다.
이 진정한 확률 0.8을 사후 분포로 추정합니다.
NULL %>% ggplot(aes(x = c("1", "0"), y = c(0.8, 0.2))) + 
  geom_bar(stat = "identity") + ylim(0,1) + 
  labs(x="購買する(1) / 購買しない(0)", y="確率", title="推定する分布") +
  scale_x_discrete(limits=c("1", "0")) 



3. 사전 분포



사전 분포로 베르누이 분포의 공액 사전 분포인 베타 분포를 지정합니다.
이 사전분포는 상품 A를 구입할 확률은 0.5가 제일 있을 것 같지만 별로 자신이 없다는 것을 나타내고 있습니다.
a0 <- 2
b0 <- 2
curve(dbeta(x, a0, b0), 0,1, xlab="購買する確率", ylab="確率密度", ylim = c(0,10))



4. 사후 분포



진정한 분포에서 100개 샘플을 취하여 사후 분포를 추정합니다.
사후 분포는 녹색 곡선입니다. 0.8 부근이 제일 나오기 쉽다고 추정할 수 있습니다.
N <- 100
X <- rbinom(N, 1, 0.8)
a <- sum(X)
b <- N-a
curve(dbeta(x, a0+a, b0+b), 0,1, xlab="購買する確率", ylab="確率密度", add=T, col="green")



5. 예측 분포



예측 분포가 진정한 분포를 성공적으로 추정할 수 있음을 알 수 있습니다.
Data <- data.frame(x=rep(c("1", "0"),2), y=c(0.8, 0.2, a/(a+b),b/(a+b)),
                   compare=rep(c("推定する分布", "予測分布"),each=2))
Data %>% ggplot(aes(x=x, y=y, fill=compare)) + 
  geom_bar(stat="identity", alpha=0.5, position="identity") +
  labs(x="購買する(1) / 購買しない(0)", y="確率密度", title="推定する分布と予測分布の比較") +
  scale_fill_manual(values = c("black", "blue")) +
  scale_x_discrete(limits=c("1", "0"))



◯SNS
・youtube
htps : // 코 m / 찬 l / 우 CFDy ぇ ywt hdtwqC3

· Twitter
htps : // 라고 해서 r. 코 m / D 켄_타

좋은 웹페이지 즐겨찾기