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

[R] 기하분포(geometric distribution)의 정의, 함수, 예제, 그래프

by makhimh 2019. 11. 28.
반응형

[R] 기하분포(geometric distribution)의 정의, 함수, 예제, 그래프



#1. 기하분포의 정의


시행에서 어떤 사건이 발생할 확률이 p입니다. 매번의 시행은 독립입니다. 사건이 발생할 때까지 시행한 횟수를 확률변수 x로 하는 분포가 기하분포입니다. 



위 정의는 위키피디아 정의구요. R에서는 성공 전까지의 실패횟수를 확률변수 x로 정의합니다. 따라서 확률분포는 아래와 같이 수정됩니다. x는 0부터 시작합니다. 




#2. 기하분포와 관련된 함수


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

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

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

rgeom : 임의추출


#3. 사용 방법


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


dgeom(x, prob, log = FALSE)
pgeom(q, prob, lower.tail = TRUE, log.p = FALSE)
qgeom(p, prob, lower.tail = TRUE, log.p = FALSE)
rgeom(n, prob)


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


dgeom(사건발생횟수, 사건발생확률, log = FALSE)
pgeom(
사건발생횟수, 사건발생확률, lower.tail = TRUE, log.p = FALSE)
qgeom(누적
확률, 사건발생확률, lower.tail = TRUE, log.p = FALSE)
rgeom(표본 크기, 사건 발생 확률)


#4. 예제


1) dgeom


슛 성공률이 30% 일 때, 5번째에서 성공할 확률


> dgeom(4,0.3)

[1] 0.07203



2) pgeom


슛 성공률이 30%일 때, 5번째에서 성공이 나오기 까지의 누적확률 (4번의 실패)


> pgeom(4,0.3)

[1] 0.83193


> dgeom(0,0.3)+dgeom(1,0.3)+dgeom(2,0.3)+dgeom(3,0.3)+dgeom(4,0.3)

[1] 0.83193



3) qgeom


슛 성공확률이 0.3일 때, 누적확률이 0.5가 될 때가지의 실패횟수입니다. 이산확률 분포이기 때문에 누적확률이 0.5 이상인 x중 최소값을 반환합니다. 


> qgeom(0.5,0.3)

[1] 1



4) rbinom


성공확률이 0.3인 초기하분포에서 임의로 5개의 데이터를 추출합니다. 


> rgeom(10,0.3)
 [1] 1 0 0 7 2 9 7 0 2 1



#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,1),ann=FALSE)


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


for (i in 1:length(p))

{

  x=0:100

  y=dgeom(x,p[i])

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

}


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

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

legend("topright",inset=c(-0.15,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=0:100

  y=pgeom(x,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.15,0),legend=paste("p=",p),col=rainbow(length(p)),lty=1)



반응형

댓글