Werden wir Helden für einen Tag

Home | About | Archive

阿 Paul #1

Posted on Jul 13, 2010 by Chung-hong Chan

上文引來 The Suffocated 的回應,露晒底,其實我也算是不求甚解的學生。
反正都露了底,不妨露多些。
很久之前寫過這樣的東西,問題幾乎一樣,是可行的退路。
假設我們要求的數字,是阿 Paul 估中球賽結果的機會率 p 。
假設我們事前對這隻八爪魚一無知,他估中球賽的機會率 p =0.1, 0.2, ...., 0.99 都是 equally likely 的。亦即是, p=0.1 或 p=0.99 ,我們的信心都是 1/99 。
用返之前陳振聰問題的計法,用 R 可得出 Posterior Probability 如下:

# Chew that < -
library("LearnBayes")
p <- seq(0.01,0.99,by=0.01)
prior <- rep(1,99)
prior.p <- prior/sum(prior)
cbind(p,prior.p)
trial <- c(8,0)
post.p <- pdisc(p, prior.p, trial)
plot(p,post.p, type="l", ylab="Posterior Prob.")
sum(post.p[p<=0.5])

問題是,我們沒有不應相信阿 Paul 估中機率 0.1 或 0.99 都是 equally likely 的。 阿 Paul 之前估歐國盃六場波,中四場(4/6=0.6667),這個似乎是更佳的 Prior probability 。
這裡要講講 Beta distribution 。 Beta 是 Binomial 的 conjugated prior 。 Beta 有兩個參數,分別是 alpha 及 beta ,是控制他的 Shape 。如果 beta (alpha=1, beta=1) ,是一個 Uniform distribution ,其實等同於上面的例子。
要根據一個 beta prior 來計出 Posterior probability 的 distribution ,其實很簡單,只是 beta (alpha + s, beta + f) 。 ((我真是一個不求甚解的學生,不要問我為何,這是抄自 Gelman 的 Bayesian Data Analysis 一書)) s 是實驗結果的成功次數, f 就是失敗次數。根據八估八中, s = 8, f = 0 。

# Chew that < -
p <- seq(0.00,1,by=0.01)
post.d <- dbeta(p,1+8,1+0)
prior <- dbeta(p,1,1)
plot(p,post.d, type="l", ylab="Density", lty=2)
lines(p,prior, lty=1)
1- pbeta(0.5, 1+8, 1+0, lower.tail=FALSE)

如果用 beta(10,10) 作 beta prior ,就會是一個 normal distribution 。

# Chew that < -
p <- seq(0.00,1,by=0.01)
post.d <- dbeta(p,10+8,10+0)
prior <- dbeta(p,10,10)
plot(p,post.d, type="l", ylab="Density", lty=2)
lines(p,prior, lty=1)
1- pbeta(0.5, 10+8, 10+0, lower.tail=FALSE)

問題是如何插入 4/6=0.667 這個 Prior information 。


Powered by Jekyll and profdr theme