20 Distribution
20.1 Normal distribution
คือ ลักษณะการกระจายตัวของข้อมูลที่เป็นรูประฆังคว่ำ ซึ่งพบมากสุดในธรรมชาติ
\[ f(x) = \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{1}{2}(\frac{x-\mu}{\sigma})^{2}} \]
\(Z\)-distribution = Standard normal distribution ของประชากร ที่มี \(\mu = 0\), \(\sigma = 1\)
สามารถสร้าง \(Z\) score ได้จาก
\[ Z = \frac{x-\mu}{\sigma} \]
ค่าของ \(Z\)-score ที่พบบ่อย
\(Z\)-score | \(p\)-value (one-tailed) | Confidence interval |
---|---|---|
<-1.65, >1.65 | 0.10 | 90% |
<-1.96, >1.96 | 0.05 | 95% |
<-2.58, >2.58 | 0.01 | 99% |
20.2 \(t\)-distribution
คือ การกระจายตัวของอัตราส่วนของความต่างของค่าเฉลี่ยระหว่างกลุ่มตัวอย่างกับความผิดพลาดของการวัดที่สุ่มจากประชากร ใช้ใน t-test
\[ f(t) = \frac{\Gamma(\frac{v+1}{2})}{\sqrt{v\pi}\Gamma(\frac{v}{2})}(1+\frac{t^{2}}{v})^{-\frac{v+1}{2}} \]
t_dist <- data.frame(x = x,
`DF 1` = dt(x, df = 1),
`DF 2` = dt(x, df = 2),
`DF 4` = dt(x, df = 4),
`DF 8` = dt(x, df = 8)) |>
pivot_longer(-x,names_to = "Param", values_to = "T.distribution" )
ggplot(t_dist, aes(x = x, y = T.distribution, col = Param)) +
geom_line(alpha = 0.8, linewidth = 0.5) +
xlim(-4,4) +
labs(title = "t-distribution", x = "Values", y = "Rate")
สามารถสร้าง \(t\)-score (\(t\) -value) ได้จาก
\[ t = \frac{\bar{x}-\mu}{SE} = \frac{\bar{x}-\mu}{s/\sqrt{n}} \]
Note: \(t\)-score บางครั้งเป็นคำศัพท์เฉพาะทาง
Education assessment \(\mu = 50\), \(\sigma = 10\)
Bone density เทียบกับผู้ป่วยอายุ 30 ปี \(\mu = 0\), \(\sigma = 1\)
20.3 Uniform distribution
คือ การกระจายตัวของข้อมูลที่อัตราการเกิดเท่าๆ กัน เช่น ทอยลูกเต๋าไม่ถ่วงน้ำหนัก 1 ลูก ดึงไพ่จากสำรับ เป็นต้น
\[ f(x) = \begin{cases} \frac{1}{b-a} \ \text{for} \ a \leq x \leq b \\ 0 \ \text{for} \ x<a \ \text{or} \ x>b \end{cases} \]
x <- seq(0,10,1)
unif_dist <- data.frame(x = x,
dice = dunif(x, min = 1 ,max = 6)) |>
pivot_longer(-x,names_to = "Param", values_to = "Uniform.distribution" )
ggplot(unif_dist, aes(x = x, y = Uniform.distribution)) +
geom_point() +
geom_segment(col = "darkblue", xend = x, yend = 0) +
scale_x_continuous(breaks = 0:10, limits = c(0,10)) +
labs(title = "Dice rolls", x = "Face", y = "Rate")
20.4 Binomial distribution
คือ การกระจายตัวของโอกาสสำเร็จในการทดลองที่มีผลลัพธ์สองรูปแบบ เช่น หัว/ก้อย ชนะ/แพ้
\[ f(x,n,p) = P(X = x) = {n\choose x}p^{x}(1-p)^{n-k} \]
# 20 trials, prob of success = 10% to 90%
binom_dist <- map_dfc(c(0.1, 0.3, 0.5, 0.7, 0.9), ~dbinom(1:20, 20, .x)) |>
set_names(paste0("Prob = ", c(0.1, 0.3, 0.5, 0.7, 0.9) )) |>
mutate(numb_success = 1:20) |>
pivot_longer(!numb_success, names_to = "Prob", values_to = "rate")
ggplot(binom_dist, aes(x = numb_success, y = rate, col = Prob)) +
geom_point(size = 0.8) +
geom_line() +
scale_x_continuous(breaks = seq(0,21,1), limits = c(0,21)) +
labs(x = "Number of success", y = "Rate")
20.5 Negative binomial distribution
คือ การกระจายของจำนวนครั้งที่ไม่สำเร็จก่อนที่จะได้จำนวนครั้งของการสำเร็จที่ต้องการ
\[ p(k) = {r-1+k \choose r-1}p^{r-1}(1-p)^{k}p = {r-1+k \choose k}p^{r}(1-p)^{k} \]
nbprob_dist <- map_dfc(c(0.1, 0.3, 0.5, 0.7, 0.9), \(x) dnbinom(1:20, 20,x)) |>
set_names(paste0("Prob = ", c(0.1, 0.3,0.5,0.7,0.9) )) |>
mutate(numb_failure = 1:20) |>
pivot_longer(!numb_failure, names_to = "Prob", values_to = "rate")
ggplot(nbprob_dist, aes(x = numb_failure, y = rate, col = Prob)) +
geom_point(alpha = 0.9, size =2) +
geom_line() +
scale_x_continuous(breaks = seq(0,20,2)) +
theme_bw() +
labs(x = "Number of failures", y = "Rate")
20.6 Hypergeometric distribution
คือ การกระจายตัวของโอกาสที่จะสุ่มได้เป้าหมายที่ต้องการจากการหยิบสุ่มแบบใส่คืน (Sampling with replacement) ใช้ใน Fisher’s exact test
\[ f(x,n,M,N) = p(X=x) = \frac{{M \choose x}{N-M \choose n-x}}{N \choose n} \]
hyper_dist <- map_dfc(c(10,20,30), ~dhyper(1:30, .x, 30, 30)) |>
set_names(paste0("Black = ", c(10,20,30))) |>
mutate(numb_success = 1:30) |>
pivot_longer(!numb_success, names_to = "Pop", values_to = "rate")
ggplot(hyper_dist, aes(x = numb_success, y = rate, col = Pop)) +
geom_point(size = 0.8) +
geom_line() +
scale_x_continuous(breaks = seq(0,30,2), limits = c(0,30)) +
labs(title = "Probablity of getting black balls from 30 picks",
x = "Number of black balls picked", y = "Rate", col = "Total black balls\n in the bag")
20.7 Poisson distribution
คือ การกระจายตัวของโอกาสที่จะเกิดเหตุการณ์เท่ากับจำนวนครั้งที่ต้องการภายใต้ช่วงเวลาใดเวลาหนึ่ง
\[ f(k) = P(X = k) = \frac{\lambda^{k}}{k!}e^{-\lambda} \]
\[ \lambda = \frac{k}{t} \]
pois_dist <- map_dfc(c(1, 2, 4, 10), ~dpois(1:20, .x)) |>
set_names(paste0("Mean = ", c(1, 2, 4, 10))) |>
mutate(numb_event = 1:20) |>
pivot_longer(!numb_event, names_to = "Mean", values_to = "value") |>
mutate(Mean = fct_relevel(Mean, paste0("Mean = ", c(1, 2, 4, 10))))
ggplot(pois_dist, aes(x = numb_event, y = value, col = Mean)) +
geom_point(size = 0.8) +
geom_line() +
scale_x_continuous(breaks = seq(0,20,2), limits = c(0,21)) +
labs(title = "Probablity that certain number of events will occur",
x = "Number of events", y = "Rate", col = "Average number of events")
การกระจายตัวแบบ Poisson เป็นการกระจายตัวแบบพื้นฐานในการนับจำนวนต่างๆ รวมถึงจำนวนยีนที่เกิดขึ้นจาก RNA sequencing profile