본문 바로가기
@ 필수과목/손으로 푸는 확률분포

[손으로 푸는 확률분포] 초기하분포 (5) 그래프

by bigpicture 2019. 12. 24.
반응형

 

 

(5) 그래프

 

초기하분포의 그래프를 그려봅시다. 초기하분포의 확률질량함수는 아래와 같습니다.

 

$p(x)=\frac{_{k}C_{x}\cdot _{M-k}C_{n-x}}{_{M}C_{n}}$

 

용어의 의미는 아래와 같습니다. 

 

모집단의 크기 : M
모집단 중 원하는 원소 개수 : k
표본의 크기 : n
표본 중 원하는 원소 개수 : x

 

그래프 내에서는 표본의 크기 n을 바꾸고, 그래프 간에는 모집단 중 원하는 원소 수인 k를 바꿨습니다.

 

아래는 확률질량함수입니다. n이 커질 수록 그래프가 오른 쪽으로 이동하고, k가 커져도 그래프가 오른 쪽으로 이동합니다. 

 

 

아래는 누적분포함수입니다.

 

 

사용한 코드는 아래와 같습니다. 

 

########################################################################
###PDF of hyper

par(mar=c(5.1, 4.1, 4.1, 4.5),xpd=TRUE)
par(mfrow=c(2,2))

#표본의 크기
n=c(10,50,150,300)
#원하는 원소 수
k=c(10,30,50,90)

for (j in 1:length(k))
{
  plot(0,type="n",
       xlim=c(0,100),ylim=c(0,1),ann=FALSE)
  for (i in 1:length(n))
  {
    x=0:100
    y=dhyper(x,k[i],500-k[i],n[j])
    points(x,y,type="l",col=rainbow(length(n))[i])
  }
  
  title(main=paste0("PMF of hyper,"," k=",k[j],', M=500"'),xlab="x",ylab="p(x)",cex.main=1.3,cex.lab=1.2)
  box("outer",col="gray")
  legend("topright",inset=c(0,0), legend=paste("n=",n),col=rainbow(length(n)),lty=1)
}


########################################################################
###CDF of hyper

par(mar=c(5.1, 4.1, 4.1, 4.5),xpd=TRUE)
par(mfrow=c(2,2))

#표본의 크기
n=c(10,50,150,300)
#원하는 원소 수
k=c(10,30,50,90)

for (j in 1:length(k))
{
  plot(0,type="n",
       xlim=c(0,100),ylim=c(0,1),ann=FALSE)
  for (i in 1:length(n))
  {
    x=0:100
    y=phyper(x,k[i],500-k[i],n[j])
    points(x,y,type="l",col=rainbow(length(n))[i])
  }
  
  title(main=paste0("PMF of hyper,"," k=",k[j],', M=500"'),xlab="x",ylab="p(x)",cex.main=1.3,cex.lab=1.2)
  box("outer",col="gray")
  legend("topright",inset=c(0,0), legend=paste("n=",n),col=rainbow(length(n)),lty=1)
}

 

반응형

댓글