본문 바로가기
programming language/MATLAB

MATLAB Bernoulli random variable generation

by 남성 2011. 4. 6.

Random Variable을 생성하기 위해서는 r.v. 의 CDF 값을 알고 있어야 한다.

 

CDF 값을 알고 있으면, 대부분의 컴퓨터 언어에서 기본적으로 제공하는 uniform r.v. 을 생성한 후 CDF 의 inverse 를 통해 r.v. 을 생성한다.

 

오늘의 포스팅에서는 MATLAB 을 이용하여 Bernoulli r.v. 를 생성해 보고 그 PMF(Probability Mass Function)와 CDF 를 확인한다.

 

bernoulli r.v. 은 k=0, 1 에 대하여 다음과 같은 PMF 및 CDF 값을 갖는다.

 

PMF:

 

CDF:

 

그럼 이제 MATLAB을 이용하여 Bernoulli r.v. generation 을 생성해 보자.

 

코드는 다음과 같다.

 

 

 

 

위 코드는 p = 0.3 인 경우의 Bernoulli r.v. 를 생성하고 이에 대한 pmf, cdf 를 표현했으며

 

시뮬레이션에 따른 평균과 분산은 다음과 같다.

 

 

bernoulli r.v. 의 이론적인 평균은 p 이며 위 시뮬레이션의 경우 p=0.3

 

이론적 분산은 p(1-p)=0.3 x 0.7=0.21

 

이므로 시뮬레이션 결과와 이론적 평균 분산 값이 일치 함을 확인 할 수 있다.


댓글1

  • ㅠㅜ 2016.12.04 17:49

    bernoulli cdf를 전체 실수 정의역에서 plot할 수는 없나요? 올려주신 코드는 0, 1에서의 값만 알아볼 수 있는데 x에 -1을 입력하면 0, 5를 입력하면 1이 되는 코드를 짜려면 어떻게 해야 하는지 궁금합니다. if문으로는 단일 입력에 대한 값만 볼 수 있고 plot 등 벡터에 대한 값은 볼 수 없던데..
    답글