均勻機率分配(uniform probability distribution)

將值域定義在a與b中,且曲面下總面積為1的分配

函數 指令 說明
累積機率函數(CDF) punif() P(X<=x)
CDF的反函數 qunif() qunif(punif())
抽樣函數 runif() 傳回x個均勻機率分配樣本向量
# Compute P(0< X < 3) for X uniform(a=0,b=10)
punif(3,min = 0,max = 10)
## [1] 0.3

此題為假設公車每隔10分鐘開一班,請問學生在站牌開始等車,3分鐘內等到公車來的機率為何? 在使用punif()指令,利用min與max來設定a與b值。若沒有設定a與b值預設參數為0與1

curve(dunif(x, 0, 10), -2, 30)   #畫出uniform(0,10)

連續型密度函數利可利用curve()來表示其對應分配圖形。

常態分配(normal distribution)

μ與σ為常態分配兩個重要參數,μ為平均數,σ為標準差。

函數 指令 說明
累積機率函數(CDF) pnorm() P(X<=x)
CDF的反函數 qnorm() qnorm(pnorm())
抽樣函數 rnorm() 傳回x個常態分配樣本向量
# Compute P(0< X < 1.282) for X normal(0,1)
pnorm(1.282)-pnorm(0)
## [1] 0.4000787

配在標準常態配normal(0,1)中在統計書附錄表格裡可以查到相對應機率值,是以累積機率值編制,所以P(0< X < 1.282)的機率可以以累計到1.282的值減去累計到0的機率值,便可以算出題目所求

make.shadow <- function(xStart,xEnd,xIncr,func = dnorm, ...) #編制填上陰影區域
{
  middle = seq(xStart,xEnd,by=xIncr)
  x0 = c(xStart,middle,xEnd)
  y0 = c(0 , func(middle,...),0)
  return(list(x=x0,y=y0))
}
s=make.shadow(0,1.282,0.05,func = dnorm)                     #令s為由0到1.282的區域
curve(dnorm(x),-3,3)                                         #畫上常態分配
abline(h=0)                                                  #畫上底線
polygon(s$x,s$y,density = 40,angle = 45)                     #畫上陰影

將題目的P(0< X < 1.282)所求圖形化,可以利用R語言中配合curve()與polygon()指令劃出所求

指數分配(exponential distribution)

當x服從指數分配時,X代表兩次偶發事件的間隔時間,其λ參數代表為單位時間內期望的偶發事件次數。

函數 指令 說明
累積機率函數(CDF) pexp() P(X<=x)
CDF的反函數 qexp() qnexp(pexp())
抽樣函數 rexp() 傳回x個指數分配樣本向量
# Compute P(0< X < 2) for X exponential(4)
pexp(2,4)-pexp(0,4)
## [1] 0.9996645

若要探討λ參數對於指數分配的差異可以利用curve()將其不同λ參數圖形化

curve(dexp(x,0.5),0,10,col="blue",add=F,ylab="f(x)")    #劃上exp(λ=0.5)圖形
curve(dexp(x,1),0,10,col="red",add=T)                   #加上exp(λ=1)圖形
curve(dexp(x,2),0,10,col="green",add=T)                 #加上exp(λ=2)圖形
legend( "topright",                                     #標記註解,位置在右上
        c("λ=0.5","λ=1","λ=2"),                         #註解內容
        col=c("blue","red","green"),                    #註解顏色
        lty=1)                                          #註解樣式

在運用curve()劃上不同參數圖形時,第一個內部參數add要先輸入F讓此圖形為第一張圖形,第二張不同參數圖形在將add輸入T,使得圖形使用加入第一張圖的方式,而不是在重新劃一張圖形。

學生t分配(Student t distribution)

利用小樣本來估計常態分配(normal distribution)就是學生t分配(Student t distribution)的由來,為了避免與標準常態混淆,先釐清學生t分配其中自由度(degrees of freedom)的影響

函數 指令 說明
累積機率函數(CDF) pt() P(X<=x)
CDF的反函數 qt() qt(pt())
抽樣函數 rt() 傳回x個t分配樣本向量
curve(dt(x,2),-3,3,col="blue",add=F,ylab="f(x)",ylim=c(0,0.5))    #劃上t(df=0.5)圖形
curve(dt(x,10),-3,3,col="red",add=T)                              #加上t(df=1)圖形
curve(dt(x,20),-3,3,col="green",add=T)                            #加上t(df=2)圖形
legend( "topright",                                               #標記註解,位置在右上
        c("df=0.5","df=1","df=2"),                                #註解內容
        col=c("blue","red","green"),                              #註解顏色
        lty=1)   

在統計上當學生t分配的自由度近似無窮大時,此時便會近似標準常態分配。

<補充>伽瑪分配(gamma distribution)

先回憶卜瓦松分配為在一特殊時間的區段或空間的區域內的次數,若將此延伸為多次特蘇時間或空間區域,便為伽瑪分配(gamma distribution),延續使用參數λ,新增了α為形狀母數。

函數 指令 說明
累積機率函數(CDF) pgamma() P(X<=x)
CDF的反函數 qgamma() qgamma(pgamma())
抽樣函數 rgamma() 傳回x個gamma分配樣本向量
g = rgamma(100,1,1)
curve(dgamma(x,1,1),min(g),max(g),
      xlab="x",ylab="pdf",main="Gamma(1,1) pdf") #劃出Gamma(1,1) pdf

卡方分配(chi-squared distribution)

卡方分配是其中一種伽瑪分配,所以可利用伽瑪分配的密度函數來推導,其參數為自由度(v)

函數 指令 說明
累積機率函數(CDF) pchisq() P(X<=x)
CDF的反函數 qpchisq() qpchisq(ppchisq())
抽樣函數 rpchisq() 傳回x個卡方分配樣本向量
curve(dchisq(x,5),0,30,col="blue",add=F,ylab="f(x)",ylim=c(0,0.2))    #劃上卡方(df=5)圖形
curve(dchisq(x,10),0,30,col="red",add=T)                              #加上卡方(df=10)圖形
curve(dchisq(x,15),0,30,col="green",add=T)                            #加上卡方(df=15)圖形
legend( "topright",                                               #標記註解,位置在右上
        c("df=5","df=10","df=15"),                                #註解內容
        col=c("blue","red","green"),                              #註解顏色
        lty=1)   

由上圖可知,卡方並非對稱分配,起始點由0開始,與之前所學的常態分配與學生t分配相當不同。

F分配(F distribution)

F分配是建立在兩個卡方分配自除自由度下相除而得其密度函數,所以此分配就會有兩個自由度的參數。

函數 指令 說明
累積機率函數(CDF) pf() P(X<=x)
CDF的反函數 qf() qf(pf())
抽樣函數 rf() 傳回x個F分配樣本向量
curve(df(x,10,100),0,6,col="blue",add=F,ylab="f(x)",ylim=c(0,2))  #劃上F(df=10,100)圖形
curve(df(x,100,10),0,6,col="red",add=T)                           #加上F(df=100,10)圖形
curve(df(x,100,100),0,6,col="green",add=T)                        #加上F(df=100,100)圖形
legend( "topright",                                               #標記註解,位置在右上
        c("df1=10,df2=100","df1=100,df2=10","df1=df2=100"),       #註解內容
        col=c("blue","red","green"),                              #註解顏色
        lty=1)   

針對不同自由度F分配圖形,來幫助大家對於自由度對於分配的影響。

參考資料

本篇筆記參考“R軟體:應用統計方法”(作者:陳景祥)