R有一群內建的機率分布
dbeta()dbinom()dcauchy()dchisq()dexp()df()dgamma()dhyper()dlnorm()dmultinom()dnbinom()dnorm()dpois()dt()dunif()dweibull()每一種機率分布都有四個功能函數:
d<name>() : 機率(密度)函數 density or probability functionp<name>() : 累計機率函數 cumulative probability functionq<name>() : 分位函數 quantile functionr<name>() : 隨機抽樣函數 random samplingd<name>】Density Function 機率密度函數 (PDF)d<name>用來求取對應到某一數值的機率密度, 給定機率分佈的種類和它所需要的「參數」,我們就能確定「值域」之中每一點的機率密度; d<name>通常用來畫機率密度函數
par(mfrow=c(2,3), mar=c(2,4,3,2), cex=0.6)
for(n in c(10, 20)) for(p in c(0.2, 0.5, 0.8))
dbinom(0:n, n, p) %>%
barplot(names=0:n, main=sprintf("Binom[n=%d, p=%.1f]", n, p), las=2)
par(mfrow=c(2,2), mar=c(2,4,3,2), cex=0.7)
curve(dnorm(x,mean=50,sd=15),0,100,main="Normal")
curve(dunif(x,min=0,max=100),0,100,main="Uniform")
curve(dlnorm(x,meanlog=log(50),sdlog=1.5),0,100,main="Log-Normal")
curve(dexp(x,rate=0.05),0,100,main="Exponential")
Normal[mean=40,sd=15]這個機率密度函數在x = c(0,20,40,60,80,100)這些點的值[1] 0.00010282 0.00359940 0.02129653 0.02129653 0.00359940 0.00010282
r<name>】Random Sampling 隨機抽樣r<name>常用來從給定參數的機率分佈之中隨機抽出樣本
par(mfrow=c(3,2), mar=c(3,2,2,2),cex=0.6)
for(n in c(20, 200, 2000)) {
hist(rnorm(n, mean=50, sd=10),breaks=10,main=paste("Normal",n))
hist(runif(n, min=0, max=100),breaks=10,main=paste("Uniform",n))
}p<name>】Cumulative PDF (CDF) 累積機率函數p<name>求取變數落在某數值區間的機率,給定機率分佈,我們常會想要知道目標變數會落在某一個數值空間的機率,如果隨機變數X ~ Normal[mu=50, sd=10],pnorm(x=55, 50, 10)會傳回X < 55的機率;
[1] 0.69146
🧙 問題討論:
A. 如果隨機變數X ~ Normal[mu=100, sd=20],請求出以下機率:
■ P[X < 110]
■ P[130 > X > 110]
■ P[X > 130]
B. 請畫出圖形來解釋你的運算
[1] 0.308538 0.624655 0.066807
par(mfrow=c(1,2), mar=c(2,2,2,2),cex=0.7)
curve(dnorm(x,100,20),40,160,main="PDF")
abline(v=c(x1,x2),col='gray',lty=3)
x = seq(x1,x2,length=100)
polygon(c(x, x2, x1), c(dnorm(x,100,20), 0, 0), col="#00E9001F", border=NA)
#
curve(pnorm(x,100,20),40,160,main="CDF")
abline(v=c(x1,x2),col='gray',lty=3)
abline(h=c(p1,p2),col='pink')q<name>】Quantile 百分位函數q<name>通常用來求取對應到某一機率的臨界值,如果隨機變數X ~ Normal[mu, sd],qnorm(p=0.8, mu, sd)會傳回Pr[X < x1] = 0.8的臨界值x1;
[1] 116.83
🧙 問題討論:
A. 如果隨機變數X ~ Normal[mu=100, sd=20],請求X的90%信賴區間
B. 請畫出圖形來解釋你的運算