본문 바로가기
2. 확률분포/이산확률분포

[R] 이항분포(binomial distribution)의 정의, 함수, 예제, 그래프

by makhimh 2019. 11. 28.
반응형

[R] 이항분포(binomial distribution)의 정의, 함수, 예제, 그래프



#1. 이항분포의 정의


시행에서 어떤 사건이 발생할 확률이 p입니다. 매번의 시행은 독립입니다. 이 시행을 n번 했을 때, 사건이 x번 발생할 확률 p(x)의 분포가 이항분포입니다. x는 확률변수입니다. 



#2. 이항분포와 관련된 R함수


dbinom : 확률밀도함수(probability density function)

pbinom : 누적분포함수(cumulative distribution function)

qbinom : 누적분포함수의 역함수(inverse cumulative distribution function)

rbinom : 임의추출


#3. 사용방법


누적분포함수의 경우 왼쪽꼬리가 디폴트입니다. 


dbinom(x, size, prob, log = FALSE)
pbinom(q, size, prob, lower.tail = TRUE, log.p = FALSE)
qbinom(p, size, prob, lower.tail = TRUE, log.p = FALSE)
rbinom(n, size, prob)


입력변수를 쉽게 설명하면 아래와 같습니다. 


dbinom(사건발생횟수, 시행횟수, 사건발생확률, log = FALSE)
pbinom(사건발생횟수, 시행횟수, 사건발생확률, lower.tail = TRUE, log.p = FALSE)
qbinom(누적확률, 시행횟수, 사건발생확률, lower.tail = TRUE, log.p = FALSE)
rbinom(표본 크기, 시행횟수, 사건발생확률)


#4. 예제


1) dbinom


동전을 10번 던질 때 앞면이 3번 나올 확률입니다.


> dnorm(1.64,0,1)
[1] 0.1039611


2) pbinom


동전을 10번 던질 때, 앞면이 3번 나오는 누적확률(1 또는 2 또는 3의 눈이 나올 확률)입니다.


> pbinom(3,10,0.5)
[1] 0.171875


3) qbinom


동전을 10번 던질 때, 앞면이 나오는 누적확률이 0.3이 되는 확률변수 X입니다. 이산확률변수이기 때문에 누적확률이 0.3보다 크면서 가장 가까운 확률변수를 반환합니다.


> qbinom(0.3,10,0.5)
[1] 4


4) rbinom


주사위를 10번 던지는 시행에서, 앞면이 나오는 사건이 확률변수 X인 확률분포에서 임의로 15개의 데이터를 추출합니다.


> rbinom(15,10,0.5)
 [1] 4 4 5 4 4 5 5 3 4 6 8 3 6 8 6



#5. 그래프


1) 확률질량함수



par(mar=c(5.1, 4.1, 4.1, 7),xpd=TRUE)


plot(0,type="n",

     xlim=c(0,100),ylim=c(0,0.15),ann=FALSE)


p=c(0.1,0.3,0.5,0.7,0.9)


for (i in 1:length(p))

{

  x=1:100

  y=dbinom(x,100,p[i])

  points(x,y,type="l",col=rainbow(length(p))[i])

}


title(main="PMF of binom",xlab="x",ylab="p(x)",cex.main=2,cex.lab=1.2)

box("outer",col="gray")

legend("topright",inset=c(-0.23,0), legend=paste("p=",p),col=rainbow(length(p)),lty=1)



2) 누적분포함수



par(mar=c(5.1, 4.1, 4.1, 7),xpd=TRUE)


plot(0,type="n",

     xlim=c(0,100),ylim=c(0,1),ann=FALSE)


p=c(0.1,0.3,0.5,0.7,0.9)


for (i in 1:length(p))

{

  x=1:100

  y=pbinom(x,100,p[i])

  points(x,y,type="l",col=rainbow(length(p))[i])

}


title(main="CMF of binom",xlab="x",ylab="p(x)",cex.main=2,cex.lab=1.2)

box("outer",col="gray")

legend("topright",inset=c(-0.23,0),legend=paste("p=",p),col=rainbow(length(p)),lty=1)



반응형

댓글