본문 바로가기
엑셀/도구 엑셀로 푸는 통계

[엑셀 통계] 69. 정규분포함수에서 랜덤 추출하기

by 만다린망고 2022. 8. 21.
반응형

엑셀에는 정규분포에서 랜덤으로 추출하는 함수를 제공하지 않습니다. (참고로 R에서는 제공합니다.) 다행히 방법이 있습니다. 여러 함수를 조합하여 정규분포에서 랜덤추출하는 상황을 구현할 수 있습니다. 

 

엑셀에는 표준정규분포의 역누적분포함수가 있습니다. 역누적분포함수는 누적분포함수의 역함수입니다. 누적분포함수의 x축이 확률변수이고 y축이 확률인 반면, 역누적분포함수는 x축이 확률이고 y축이 확률변수입니다.

 

표준정규분포의 역누적분포함수에 0~1 사이의 확률값을 입력하면 표준정규분포의 확률변수 값을 출력합니다. 예를 들어 확률 0.5를 입력하면 0이 출력됩니다. 표준정규분포의 역누적분포함수는 아래와 같습니다. 

 

norm.s.inv( )

 

입력값으로 0~1 사이 랜덤값을 입력할 수 있다면, 표준정규분포에서 표본을 랜덤추출하는 상황을 구현할 수 있습니다. 다행히 엑셀에는 0~1 사이의 랜덤값을 추출하는 rand( ) 함수가 있습니다. rand( ) 함수 괄호 안은 비워두면 됩니다. 두 함수를 조합하면 아래와 같습니다. 

norm.s.inv( rand( ))

 

rand 함수에서 임의로 출력된 0~1 사이 값이 표준정규분포의 역누적분포함수의 입력값이 됩니다. 이제 표준정규분포에서 랜덤추출을 할 수 있게 되었습니다.

 

하지만 우리가 원하는 것은 정규분포의 평균과 표준편차도 직접 설정하는 것입니다. 표준정규분포와 정규분포의 관계를 고려하면 쉽게 구현할 수 있습니다. 우리가 원하는 정규분포의 평균이 m이고 표준편차가 s라고 한다면 아래와 같이 함수를 수정하면 됩니다. 

 

norm.s.inv( rand( ))*s+m

 

표준정규분포에서 추출된 값에 표준편차를 곱하고 평균을 더해주면 됩니다. 

반응형

댓글