엑셀 균등 분포: 두 값 사이의 난수 만들기
한마디로: 최솟값과 최댓값 사이의 모든 값이 똑같이 나옵니다. 주사위를 던지는 것을 범위 전체로 넓힌 모양입니다.
균등 분포는 최솟값과 최댓값 사이의 모든 값이 똑같이 나오게 합니다. 엑셀에서는 =min + (max - min) * RAND()로 값을 뽑고, 정수는 RANDBETWEEN(min, max)로 뽑습니다. 단가가 40에서 60(USD) 사이라면 평균은 50, P10은 42, P90은 58입니다.
균등 분포는 무엇인가
숫자 두 개, 가능한 최솟값과 최댓값으로 정해집니다. 그 사이에서 밀도는 평평하므로 범위의 어느 구간이든 폭에 비례해 결과를 나눠 가집니다. 범위의 폭이 20이면 단위 하나가 차지하는 결과의 비중은 5.0%이고, P10은 최솟값에서 범위의 10분의 1 지점에 있습니다.
차트 읽는 법: 막대는 시뮬레이션한 10,000개 값 중 그 구간에 들어간 개수이고, 선은 이론 곡선입니다. 막대가 높을수록 그 값이 자주 나옵니다. 여기서는 막대 높이가 모두 거의 같아서, 범위의 어느 부분도 더 나오지 않습니다.
수식: 평균, 표준편차, 백분위수
| 구하는 값 | 수식과 예시 |
|---|---|
| 평균과 중앙값 | (최소 + 최대) / 2 = 50 |
| 표준편차 | (최대 − 최소) / √12 = 20 / 3.464 = 5.77 |
| 백분위수 p | 최소 + p × (최대 − 최소) P10 = 42, P90 = 58 |
엑셀의 균등 분포
RAND() 자체가 0과 1 사이의 균등 분포입니다. 이것을 원하는 범위로 늘리면 균등한 추출값이 됩니다. 최솟값이 D9에, 최댓값이 F9에 있을 때 셀 하나에 쓰면 =D9+(F9-D9)*RAND()입니다. 정수는 RANDBETWEEN(min, max)가 min에서 max까지, 양 끝을 포함한 정수를 돌려줍니다.
| 셀 | 수식 | 값 |
|---|---|---|
| 난수 u(I9) | =RAND() | |
| 추출값(J9) | =D9+(F9-D9)*I9 | |
| 셀 하나로 추출 | =D9+(F9-D9)*RAND() | |
| 평균(K9) | =(D9+F9)/2 | 50 |
| P10 (L9) | =D9+(F9-D9)*0.1 | 42 |
| P90 (M9) | =D9+(F9-D9)*0.9 | 58 |
수치 확인: 이론값과 엑셀, xellstorm의 10,000개 추출값 비교
| 이론값 | 엑셀, RAND() | xellstorm | |
|---|---|---|---|
| 평균 | 50.00 | 49.96 | 50.00 |
| 표준편차 | 5.77 | 5.78 | 5.77 |
| P10 | 42.00 | 41.97 | 42.00 |
| P50(중앙값) | 50.00 | 49.91 | 50.00 |
| P90 | 58.00 | 57.95 | 58.00 |
엑셀은 RAND()로 완전히 무작위하게 뽑고, xellstorm은 추출값을 범위 전체에 고르게 퍼뜨립니다(라틴 하이퍼큐브 샘플링). 그래서 통계값이 이론값에 더 가깝게 나옵니다.
균등 분포가 맞는 경우
범위만 알고 그 밖의 정보는 없을 때, 즉 범위 안의 어느 값도 다른 값보다 더 그럴듯하지 않을 때 씁니다. 이런 경우는 생각보다 드뭅니다. 가장자리보다 가운데에 걸고 싶다면 삼각 분포나 PERT 분포가 그 생각을 반영합니다. 40에서 60까지 같은 범위에서 50 지점에 봉우리가 있는 삼각 분포라면 결과의 75.0%가 45에서 55 사이에 들어가지만, 균등 분포에서는 50.0%뿐입니다. 표준편차는 균등 분포가 5.77, 삼각 분포가 4.08입니다.
- 잘 맞는 경우: 알려진 구간 어디에나 떨어질 수 있는 값(한 시간 안의 도착, 부품 위의 위치), 얼마나 중요한지 보려고 그럴듯한 범위 전체에서 훑어 보는 파라미터, 더 나은 추정치가 생기기 전의 모델 초안입니다.
- 맞지 않는 경우: 가운데보다 양 끝이 덜 나오는 비용과 기간, 그리고 확실한 한계가 없는 모든 값입니다.
xellstorm에서 균등 분포 입력하는 법
- 셀을 입력으로 만들고 분포 단계에서 균등 분포를 고른 뒤 최소와 최대를 입력합니다. 정수라면 정수 균등 분포를 고릅니다.
- 과거 값이 있으면 사이드 패널의 “데이터로” 탭에서 균등 분포를 다른 모양과 비교하므로, 데이터가 정말 평평한지 확인할 수 있습니다.
“엑셀 파일에서 가져오기”는 =a + (b - a)*RAND() 같은 셀을 균등 분포 입력으로, RANDBETWEEN(a, b)를 정수 균등 분포 입력으로 변환합니다. 애드인 모델의 RiskUniform, VoseUniform, PsiUniform도 변환합니다.
자주 묻는 질문
엑셀에서 두 값 사이의 난수는 어떻게 만드나요?
=min + (max - min) * RAND()를 씁니다. 40에서 60 사이의 값은 =40 + (60 - 40) * RAND()입니다. 정수는 =RANDBETWEEN(40, 60)을 씁니다. 둘 다 시트를 다시 계산할 때마다 새로 뽑습니다.
균등 분포의 평균과 표준편차는 얼마인가요?
평균은 구간의 중점인 (최소 + 최대) / 2이고, 표준편차는 (최대 − 최소) / √12로 폭의 약 0.29배입니다. 40에서 60까지라면 평균은 50, 표준편차는 5.77입니다.
균등 분포와 삼각 분포 중 무엇이 맞나요?
범위 안의 어느 값도 더 나올 만하지 않다면 균등 분포를, 최빈값이 있다면 삼각 분포나 PERT 분포를 씁니다. 같은 범위에서 균등 분포가 더 넓게 퍼지는 선택입니다. 표준편차는 균등 분포가 5.77이고, 가운데에 봉우리가 있는 삼각 분포가 4.08입니다.
관련 글
- 가이드
어떤 확률 분포를 써야 할까요? 몬테카를로 모델의 분포 선택 가이드
질문 두 개로 알맞은 확률 분포를 찾습니다. PERT, 삼각, 정규, 로그정규, 와이블, 푸아송, 이항, 베타 등 각 분포의 용도와 엑셀 수식을 설명합니다. - 가이드
엑셀 삼각 분포: 수식, 평균, PERT와의 차이
삼각 분포는 최소, 최빈값, 최대를 직선 모양의 확률로 바꿉니다. 난수 추출과 백분위수를 구하는 엑셀 수식, 평균, 삼각 분포와 PERT의 비교를 설명합니다. - 가이드
엑셀 몬테카를로 시뮬레이션, 애드인 있어도 없어도
엑셀 모델에서 몬테카를로 시뮬레이션을 실행하는 세 가지 방법: RAND() 수식과 데이터 표, 애드인, 애드인 없는 브라우저 도구. PERT 수식 포함.
xellstorm은 엑셀 모델을 브라우저에서 몬테카를로 시뮬레이션하는 도구입니다. 애드인은 필요 없고, 엑셀 파일은 내 컴퓨터 밖으로 나가지 않습니다.