베이즈 추정에서의주의 1
10554 단어 R
기사의 목적
이 기사에서는 베이즈 추정에서 사전 분포 설정에서 주의해야 할 요점을 요약했습니다.
베르누이 분포와 공액 사전 분포의 베타 분포를 사용합니다.
베르누이 분포의 파라미터(베타 분포의 값)를 코인의 표가 나올 확률이라고 생각해 이야기를 진행시킵니다.
목차
1. 사전 분포 설정
2. 데이터 생성
3. 사후 분포 평가
4. 데이터량이 많은 경우
1. 사전 분포 설정
(1) 코인이 나올 확률은 거의 확실히 0.5일 것이다(확신이 강하다)고 가정하고 있는 사전 분포
(2) 동전이 나올 확률은 0.5일까 (확신이 약하다)라고 가정하고 있는 사전 분포
(3) 코인이 나올 확률은 거의 확실히 0.2일 것이다(편견이 강하다)고 가정하고 있는 사전 분포
par(mfrow=c(1,3))
curve(dbeta(x, 100, 100), 0,1) #(1)確信が強い
curve(dbeta(x, 2, 2), 0,1) #(2)確信が弱い
curve(dbeta(x, 2, 100), 0,1) #(3)偏見強い
2. 데이터 생성
코인의 표가 나올 확률 0.8의 분포로부터 10개 데이터를 생성합니다.
이 데이터를 바탕으로 사전분포를 갱신하여 얻은 사후분포로 0.8이 될 확률이 높아지면 성공입니다.
N <- 10
set.seed(100)
X <- rbinom(N, 1, 0.8)
X
# 結果
[1] 1 1 1 1 1 1 0 1 1 1
3. 사후 분포 평가
(1) 확신이 강한 사전분포를 가정하면, 데이터가 조금 얻어져도 변하지 않는다.
(2) 확신이 약하기 때문에, 적은 데이터에서도 좌우되기 쉽고, 잘 추정되고 있다.
(3) 확신이 강한 사전분포를 가정하면, 데이터가 조금 얻어져도 변하지 않는다.
→ 적절한 사전분포를 가정할 수 있으면 적은 데이터량으로 잘 추정할 수 있다.
→ 실수로 가정하면 적은 데이터량이라고 잘못된 결과를 흉내낸다.
library(dplyr)
a <- X[X==1] %>% length()
b <- N-a
curve(dbeta(x, 100+a, 100+b), 0,1)
curve(dbeta(x, 2+a, 2+b), 0,1)
curve(dbeta(x, 2+a, 100+b), 0,1)
4. 데이터량이 많은 경우
데이터의 양을 10에서 10000으로 바꾸어 동일한 작업을 수행합니다.
(1), (2), (3) 모두 잘 추정된다.
→ 데이터량이 많으면 사전분포에 좌우되지 않고 잘 추정할 수 있다.
#データの生成
N <- 10000
set.seed(100)
X <- rbinom(N, 1, 0.8)
#ベイズ更新
a <- X[X==1] %>% length()
b <- N-a
curve(dbeta(x, 100+a, 100+b), 0,1)
curve(dbeta(x, 2+a, 2+b), 0,1)
curve(dbeta(x, 2+a, 100+b), 0,1)
Reference
이 문제에 관하여(베이즈 추정에서의주의 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Tatsuki-Oike/items/75a248f2e3b8ce4e4338
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1. 사전 분포 설정
2. 데이터 생성
3. 사후 분포 평가
4. 데이터량이 많은 경우
1. 사전 분포 설정
(1) 코인이 나올 확률은 거의 확실히 0.5일 것이다(확신이 강하다)고 가정하고 있는 사전 분포
(2) 동전이 나올 확률은 0.5일까 (확신이 약하다)라고 가정하고 있는 사전 분포
(3) 코인이 나올 확률은 거의 확실히 0.2일 것이다(편견이 강하다)고 가정하고 있는 사전 분포
par(mfrow=c(1,3))
curve(dbeta(x, 100, 100), 0,1) #(1)確信が強い
curve(dbeta(x, 2, 2), 0,1) #(2)確信が弱い
curve(dbeta(x, 2, 100), 0,1) #(3)偏見強い
2. 데이터 생성
코인의 표가 나올 확률 0.8의 분포로부터 10개 데이터를 생성합니다.
이 데이터를 바탕으로 사전분포를 갱신하여 얻은 사후분포로 0.8이 될 확률이 높아지면 성공입니다.
N <- 10
set.seed(100)
X <- rbinom(N, 1, 0.8)
X
# 結果
[1] 1 1 1 1 1 1 0 1 1 1
3. 사후 분포 평가
(1) 확신이 강한 사전분포를 가정하면, 데이터가 조금 얻어져도 변하지 않는다.
(2) 확신이 약하기 때문에, 적은 데이터에서도 좌우되기 쉽고, 잘 추정되고 있다.
(3) 확신이 강한 사전분포를 가정하면, 데이터가 조금 얻어져도 변하지 않는다.
→ 적절한 사전분포를 가정할 수 있으면 적은 데이터량으로 잘 추정할 수 있다.
→ 실수로 가정하면 적은 데이터량이라고 잘못된 결과를 흉내낸다.
library(dplyr)
a <- X[X==1] %>% length()
b <- N-a
curve(dbeta(x, 100+a, 100+b), 0,1)
curve(dbeta(x, 2+a, 2+b), 0,1)
curve(dbeta(x, 2+a, 100+b), 0,1)
4. 데이터량이 많은 경우
데이터의 양을 10에서 10000으로 바꾸어 동일한 작업을 수행합니다.
(1), (2), (3) 모두 잘 추정된다.
→ 데이터량이 많으면 사전분포에 좌우되지 않고 잘 추정할 수 있다.
#データの生成
N <- 10000
set.seed(100)
X <- rbinom(N, 1, 0.8)
#ベイズ更新
a <- X[X==1] %>% length()
b <- N-a
curve(dbeta(x, 100+a, 100+b), 0,1)
curve(dbeta(x, 2+a, 2+b), 0,1)
curve(dbeta(x, 2+a, 100+b), 0,1)
Reference
이 문제에 관하여(베이즈 추정에서의주의 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Tatsuki-Oike/items/75a248f2e3b8ce4e4338
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
par(mfrow=c(1,3))
curve(dbeta(x, 100, 100), 0,1) #(1)確信が強い
curve(dbeta(x, 2, 2), 0,1) #(2)確信が弱い
curve(dbeta(x, 2, 100), 0,1) #(3)偏見強い
코인의 표가 나올 확률 0.8의 분포로부터 10개 데이터를 생성합니다.
이 데이터를 바탕으로 사전분포를 갱신하여 얻은 사후분포로 0.8이 될 확률이 높아지면 성공입니다.
N <- 10
set.seed(100)
X <- rbinom(N, 1, 0.8)
X
# 結果
[1] 1 1 1 1 1 1 0 1 1 1
3. 사후 분포 평가
(1) 확신이 강한 사전분포를 가정하면, 데이터가 조금 얻어져도 변하지 않는다.
(2) 확신이 약하기 때문에, 적은 데이터에서도 좌우되기 쉽고, 잘 추정되고 있다.
(3) 확신이 강한 사전분포를 가정하면, 데이터가 조금 얻어져도 변하지 않는다.
→ 적절한 사전분포를 가정할 수 있으면 적은 데이터량으로 잘 추정할 수 있다.
→ 실수로 가정하면 적은 데이터량이라고 잘못된 결과를 흉내낸다.
library(dplyr)
a <- X[X==1] %>% length()
b <- N-a
curve(dbeta(x, 100+a, 100+b), 0,1)
curve(dbeta(x, 2+a, 2+b), 0,1)
curve(dbeta(x, 2+a, 100+b), 0,1)
4. 데이터량이 많은 경우
데이터의 양을 10에서 10000으로 바꾸어 동일한 작업을 수행합니다.
(1), (2), (3) 모두 잘 추정된다.
→ 데이터량이 많으면 사전분포에 좌우되지 않고 잘 추정할 수 있다.
#データの生成
N <- 10000
set.seed(100)
X <- rbinom(N, 1, 0.8)
#ベイズ更新
a <- X[X==1] %>% length()
b <- N-a
curve(dbeta(x, 100+a, 100+b), 0,1)
curve(dbeta(x, 2+a, 2+b), 0,1)
curve(dbeta(x, 2+a, 100+b), 0,1)
Reference
이 문제에 관하여(베이즈 추정에서의주의 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Tatsuki-Oike/items/75a248f2e3b8ce4e4338
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
library(dplyr)
a <- X[X==1] %>% length()
b <- N-a
curve(dbeta(x, 100+a, 100+b), 0,1)
curve(dbeta(x, 2+a, 2+b), 0,1)
curve(dbeta(x, 2+a, 100+b), 0,1)
데이터의 양을 10에서 10000으로 바꾸어 동일한 작업을 수행합니다.
(1), (2), (3) 모두 잘 추정된다.
→ 데이터량이 많으면 사전분포에 좌우되지 않고 잘 추정할 수 있다.
#データの生成
N <- 10000
set.seed(100)
X <- rbinom(N, 1, 0.8)
#ベイズ更新
a <- X[X==1] %>% length()
b <- N-a
curve(dbeta(x, 100+a, 100+b), 0,1)
curve(dbeta(x, 2+a, 2+b), 0,1)
curve(dbeta(x, 2+a, 100+b), 0,1)
Reference
이 문제에 관하여(베이즈 추정에서의주의 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Tatsuki-Oike/items/75a248f2e3b8ce4e4338텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)