xellstorm 학습 센터
KO
앱 열기

어떤 확률 분포를 써야 할까요? 몬테카를로 모델의 분포 선택 가이드

가이드 · 2026년 10월 업데이트

분포는 이름으로 고르지 말고, 불확실한 값에 관해 아는 것으로 고르세요. 전문가가 낸 최저, 최빈, 최고 값이 있으면 PERT 분포나 삼각 분포, 비용이나 기간처럼 위쪽 꼬리가 긴 양수는 로그정규 분포, 좌우 대칭인 측정값은 정규 분포, 고장까지의 시간은 와이블 분포, 사건의 횟수는 푸아송 분포, 일어나거나 일어나지 않는 사건은 베르누이 분포, 0과 1 사이의 비율은 베타 분포, 합이 전체가 되어야 하는 여러 비율은 디리클레 분포, 한 기간의 최댓값은 검벨 분포나 GEV, 건수와 크기가 모두 불확실한 손실의 합계는 복합 분포가 맞고, 과거 데이터가 있으면 거기에 적합한 분포를 씁니다. 아래 분포 찾기는 질문을 한두 개 하고 분포 이름을 알려 줍니다. xellstorm에는 직접 만든 표를 포함해 모두 52개의 분포가 있습니다.

내게 맞는 분포 찾기

불확실한 값을 가장 잘 설명하는 항목을 고르세요. 답 하나로 부족하면 그 아래에 두 번째 질문이 열립니다.

불확실한 값은 무엇인가요?
최저값과 최고값은 어떤 뜻인가요?

PERT

최소에서 최대까지 이어지고 최빈값에서 봉우리를 이루는 매끄러운 곡선으로, 한계에는 좀처럼 닿지 않습니다. 평균 (최소 + 4 × 최빈값 + 최대) / 6은 최빈값 가까이에 놓입니다.

xellstorm에서는 PERT를 고르고 최소, 최빈, 최대를 입력합니다. 새 입력은 PERT로 시작합니다.

PERT 분포 가이드

삼각 분포

최소에서 최빈값까지 올라갔다가 최대까지 내려오는 직선으로 이루어집니다. 같은 세 숫자를 쓴 PERT보다 넓게 퍼지므로 추정치를 더 보수적으로 읽는 셈입니다.

xellstorm에서는 삼각 분포를 고르고 최소, 최빈, 최대를 입력합니다.

삼각 분포 가이드

균등 분포

최소와 최대 사이의 모든 값이 똑같이 나옵니다. 범위의 어느 부분이 더 그럴듯한지 정말로 말할 수 없을 때만 쓰세요.

xellstorm에서는 균등 분포를 고르고 최소와 최대를 입력합니다.

균등 분포 가이드

백분위수에 적합한 분포

P10과 P90을 최소와 최대로 쓰면 그 바깥에 있는 결과 20%가 빠집니다. 대신 P10, P50, P90을 지나는 모양을 적합하세요. 위쪽 꼬리가 길면 로그정규 분포, 좌우 대칭으로 퍼지면 정규 분포가 맞습니다.

xellstorm에서는 입력을 선택하고 사이드 패널의 “추정치로” 탭을 씁니다(PERT, 정규 분포, 로그정규 분포, 삼각 분포). 백분위수로 삼각 분포를 정하는 백분위수 기반 삼각 분포를 골라도 됩니다.

P50, P80, P90 이해하기

데이터에 적합한 분포

분포는 데이터에 맡기세요. 여러 모양을 적합해 어느 쪽이 값을 더 잘 설명하는지 비교합니다. 과거 이력이 지금도 대표성이 있는지 확인하고, 표본이 작으면 극단값에 관해 알려 주는 것이 적다는 점도 기억하세요.

xellstorm에서는 입력을 선택하고 사이드 패널의 “데이터로” 탭을 씁니다. 정규, 로그정규, 감마, 와이블, 베타, 푸아송, 음이항 분포 등을 적합하고 순위를 매겨 줍니다.

예제 풀이: 배송 리드 타임 적합하기

베르누이 분포

확률 p로 1, 아니면 0입니다. 여기에 사건의 영향액을 곱하면 시행마다의 비용이 나옵니다. 평균이 아니라 언제나 전부 아니면 전무입니다.

xellstorm에서는 베르누이 분포를 고르고 p를 입력합니다. 영향액은 별도의 셀에 둡니다.

베르누이·이항 분포 가이드
어떤 종류의 횟수인가요?

푸아송 분포

기간당 평균 횟수라는 숫자 하나로 정해지는 정수입니다. 분산이 평균과 같습니다.

xellstorm에서는 푸아송 분포를 고르고 평균을 입력합니다.

푸아송 분포 가이드

음이항 분포

분산이 평균보다 큰 횟수입니다. 푸아송보다 한가한 기간도, 바쁜 기간도 더 많습니다. 수요나 몰려서 생기는 불량에 흔합니다.

xellstorm에서는 음이항 분포를 고르고 n과 p를 입력하거나, 과거 횟수에 적합합니다.

푸아송·음이항 분포 가이드

이항 분포

같은 확률 p로 독립적으로 n번 시도했을 때 ‘예’의 수이며, 0부터 n까지입니다.

xellstorm에서는 이항 분포를 고르고 n과 p를 입력합니다.

이항 분포 가이드
어떤 종류의 시간인가요?

와이블 분포

척도 모수는 대표적인 수명을, 형상 모수는 고장이 시간에 걸쳐 어떻게 퍼지는지를 정합니다. 형상 모수가 1보다 작으면 초기 고장, 1보다 크면 마모 고장입니다.

xellstorm에서는 와이블 분포를 고르고 형상과 scale을 입력합니다.

와이블 분포 가이드

지수 분포

숫자 하나, 사건 사이의 평균 시간으로 정해집니다. 경과 시간은 영향을 주지 않습니다. 다음 한 시간 안에 사건이 일어날 확률은 언제나 같습니다.

xellstorm에서는 지수 분포를 고르고 평균을 scale로 입력합니다.

와이블·지수 분포 가이드

로그정규 분포(추정치가 있으면 PERT)

양수이고 위쪽 꼬리가 깁니다. 전문가의 기간 3점 추정이 있다면 한계 안에서는 PERT도 같은 역할을 합니다.

xellstorm에서는 로그정규 분포를 고르고(s, scale = 중앙값, loc 0), 과거 기간에 적합해도 됩니다.

로그정규 분포 가이드

감마 분포

지수 분포를 따르는 대기 시간 여러 개의 합입니다. 형상 모수는 대기 횟수, 척도 모수는 대기 한 번의 평균입니다. 양수이고 오른쪽으로 치우친 범용 모양으로도 씁니다.

xellstorm에서는 감마 분포를 고르고 a(형상 모수)와 scale을 입력합니다.

감마 분포 가이드
금액 하나인가요, 여러 건의 합계인가요?

로그정규 분포

대부분의 값은 대표값 근처에 있고, 소수가 그보다 훨씬 위에 있습니다. 평균이 중앙값보다 높아서, 대표값으로 짠 예산이 모자라게 됩니다. 감마 분포도 모양이 비슷하지만 꼬리가 더 얇습니다.

xellstorm에서는 로그정규 분포를 고르거나, “추정치로” 탭에서 P10, P50, P90으로 적합합니다.

로그정규 분포 가이드

스플라이스(본체 + 꼬리)

한 점 아래와 위에 서로 다른 분포를 씁니다. 예를 들어 보통의 손실에는 로그정규 분포를, 임계값을 넘는 손실에는 일반화 파레토 분포를 씁니다. 분기점 아래에 놓일 비율을 정하거나, 비워 두면 두 밀도가 같은 높이에서 만납니다.

xellstorm에서는 스플라이스(본체 + 꼬리)를 고른 뒤, 그 행에서 분기점 아래(본체)와 분기점 위(꼬리)의 분포, 그리고 분기점을 정합니다.

로그정규 분포 가이드

복합 분포(빈도 × 심도)

시행마다 푸아송 분포나 음이항 분포 같은 빈도 분포에서 사건 건수를 뽑고, 로그정규 분포 같은 심도 분포에서 그 건수만큼 크기를 뽑아 더합니다. 사건이 없는 해에는 비용이 0이고, 여러 건이 일어난 해에는 모두 더해집니다. 사건마다 공제액과 한도를 적용할 수 있습니다.

xellstorm에서는 복합 분포를 고른 뒤, 그 행에서 빈도와 심도를 정하고, 해당하면 건마다의 공제액과 한도도 정합니다.

푸아송 분포 가이드: 사건 건수 세기

검벨 분포 또는 GEV(일반화 극단값 분포)

많은 값 중 최댓값은 위쪽 꼬리가 긴 극단값 분포를 따릅니다. 검벨 분포는 모양이 정해져 있고, GEV는 형상 모수를 더해 꼬리를 더 두껍게 하거나 값이 상한에서 끝나게 할 수 있습니다. 모든 값이 아니라 기간마다의 과거 최댓값을 쓰세요.

xellstorm에서는 검벨 분포(loc, scale)를 고르거나, “데이터로” 탭에서 과거 최댓값에 적합합니다. GEV(일반화 극단값 분포)를 골라도 됩니다. GEV의 형상 (c)는 scipy처럼 보통 쓰는 ξ와 부호가 반대여서, 위쪽 꼬리가 두꺼우면 0보다 작습니다.

정규 분포

종 모양 곡선으로, 평균과 표준편차로 정해집니다. 작고 독립적인 불확실성이 많이 모인 합계도 이 분포로 나타납니다.

xellstorm에서는 정규 분포를 고르고 평균과 표준편차를 입력합니다.

정규 분포 가이드
비율 하나인가요, 전체를 이루는 여러 비율인가요?

베타 분포

구조상 0과 1 사이에 머뭅니다. 평균은 alpha / (alpha + beta)이고, 둘의 합이 클수록 폭이 좁아집니다.

xellstorm에서는 베타 분포를 고르고 a와 b를 입력합니다(비중이라면 loc 0, scale 1).

베타 분포 가이드

디리클레(합계의 비율)

셀마다 불확실한 비율이 하나씩 있고, 모든 시행에서 비율의 합은 합계와 같습니다. 각 셀의 alpha를 alpha 전체의 합으로 나눈 값이 그 셀의 평균 비율이고, alpha의 합이 클수록 비율의 흔들림이 작아집니다. 비율 하나만 따로 보면 베타 분포를 따릅니다.

xellstorm에서는 셀 범위를 입력 하나로 만들고 디리클레(합계의 비율)를 고른 뒤, 셀마다 alpha 하나와 합계를 입력합니다(비워 두면 1).

베타 분포 가이드

시계열

각 기간이 직전 기간에서 출발하므로, 나쁜 달의 영향이 다음 달로 이어지고 매번 독립적으로 다시 뽑지 않습니다. 무작위 퍼센트로 오르는 가격, 일정한 수준 둘레를 떠도는 비율이 그런 예입니다.

xellstorm에서는 셀 한 행을 입력 하나로 만들고 추출 방식을 “시계열(경로 하나)”로 설정한 뒤, GBM(성장), 랜덤 워크, AR(1), 평균 회귀, 점프 확산 중에서 고릅니다.

예제 풀이: 현금 런웨이

분포 한눈에 보기

파라미터 이름은 xellstorm의 분포 메뉴와 같습니다. 어느 분포든 절단(두 한계 사이의 값만 남김)과 이동을 함께 쓸 수 있습니다.

자주 쓰는 분포와 그 용도, xellstorm의 파라미터, 엑셀에서 값을 뽑는 수식
분포용도파라미터엑셀에서 뽑기
PERT한계가 있는 전문가 추정, 최빈값을 가장 믿을 때최소, 최빈, 최대BETA.INV(RAND(), α, β, min, max)
삼각 분포한계가 있는 전문가 추정, 한계 근처의 값도 나올 수 있을 때최소, 최빈, 최대IF와 SQRT를 쓴 수식, 가이드 참고
균등 분포어느 값도 더 나올 만하지 않은 범위최소, 최대min+(max-min)*RAND()
정규 분포대칭인 변동: 측정값, 오차, 여러 부분의 합평균, 표준편차NORM.INV(RAND(), mean, sd)
로그정규 분포위쪽 꼬리가 긴 양수: 비용, 손실, 기간s, scale, locLOGNORM.INV(RAND(), LN(median), s)
감마 분포양수이고 오른쪽으로 치우침, 대기 시간 여러 개의 합a, scale, locGAMMA.INV(RAND(), shape, scale)
베타 분포0과 1 사이의 비중과 비율a, b, loc, scaleBETA.INV(RAND(), α, β)
와이블 분포고장까지의 시간: 마모 고장 또는 초기 고장형상, scale, locscale*(-LN(1-RAND()))^(1/shape)
지수 분포일정한 비율로 일어나는 무작위 사건 사이의 시간scale, loc-mean*LN(1-RAND())
푸아송 분포평균 발생률로 한 기간에 일어나는 사건의 수평균POISSON.DIST와 COUNTIF로 만든 표, 가이드 참고
음이항 분포푸아송보다 들쭉날쭉한 횟수: 수요, 몰려서 생기는 불량n, pNEGBINOM.DIST와 COUNTIF로 만든 표
베르누이 분포사건이 일어남(1) 또는 일어나지 않음(0)pIF(RAND()<p, 1, 0)
이항 분포n번 시도 중 ‘예’의 수n, pBINOM.INV(n, p, RAND())
정수 균등 분포범위 안의 정수, 모두 같은 확률하한, 상한RANDBETWEEN(low, high)
이산 표가능한 값 몇 개와 각각의 확률값과 확률의 표누적확률을 찾아보는 수식
백분위수 기반 삼각 분포한계가 아니라 낮은 백분위수와 높은 백분위수로 정하는 삼각 분포하단, 최빈, 상단, 하단 %, 상단 %–
스튜던트 t 분포대칭이고 꼬리가 두꺼움: 수익률, 이상값이 섞인 오차df, loc, scaleloc+scale*T.INV(RAND(), df)
검벨 분포많은 값 중 최댓값: 연간 최대 부하, 홍수loc, scaleloc-scale*LN(-LN(RAND()))
GEV(일반화 극단값 분포)많은 값 중 최댓값: 꼬리가 더 두껍거나 상한이 있을 때형상 (c), loc, scaleloc+scale*(1-(-LN(RAND()))^c)/c
Metalog여러 백분위수를 지나는 유연한 모양값과 확률의 표–
복합 분포크기가 제각각인 사건이 무작위 건수만큼 일어난 합계: 보험금, 손실빈도, 심도, 공제액, 한도–
스플라이스(본체 + 꼬리)한 점 아래와 위에 서로 다른 분포: 본체와 두꺼운 꼬리분기점 아래, 분기점 위, 분기점, 아래쪽 비율–
디리클레(합계의 비율)모든 시행에서 합이 합계와 같은 비율: 시장 점유율, 예산 배분셀마다 alpha, 합계셀마다 GAMMA.INV(RAND(), alpha, 1)로 뽑고 그 합으로 나눔

xellstorm에는 52개의 분포가 있습니다. 앱 메뉴에 29개가 있고, “그 밖의 분포” 아래에 23개가 더 있습니다. 더 있는 분포는 대부분 엑셀 애드인으로 만든 모델에서 만나는 분포이며, xellstorm이 가져올 때 변환합니다(애드인에서 모델 옮기기 참고).

예제 엑셀 파일: 모든 분포를 엑셀 수식으로

이 페이지의 엑셀 파일에는 분포마다 한 행이 있습니다. 파라미터, RAND()로 뽑은 난수, 그 난수로 뽑은 값, 그리고 수식으로 계산한 평균, P10, P90이 들어 있습니다. F9를 누르면 뽑은 값이 모두 바뀝니다. 마지막 열들에는 같은 분포가 xellstorm 입력으로 들어 있어서, 한 번 실행하면 엑셀로 뽑은 값과 xellstorm으로 뽑은 값을 나란히 볼 수 있습니다. 이 사이트의 가이드는 모두 이 파일의 수식을 이런 추출값 10,000개와 대조해 확인합니다.

examples/distributions.xlsx: 분포마다 한 행씩, 수식으로 계산한 평균, P10, P90
분포예와 파라미터평균P10P90
정규 분포다음 시즌 수요(개)
평균 1,000, 표준편차 200
1,0007441,256
로그정규 분포보험금 청구 1건의 수리비(USD)
중앙값 2,000, ln의 퍼짐 0.8
2,7547175,576
삼각 분포항목 1개의 비용(천 달러 단위)
최소 80, 최빈값 100, 최대 140
106.791.0124.5
PERT항목 1개의 비용(천 달러 단위)
최소 80, 최빈값 100, 최대 140
103.389.2118.7
균등 분포단가(USD)
최소 40, 최대 60
504258
와이블 분포펌프 수명(시간)
형상 1.5, 척도 20,000
18,0554,46234,874
지수 분포고장 사이의 시간(시간)
평균 500
500531,151
푸아송 분포한 주의 불만 건수
평균 4
427
음이항 분포한 주의 주문 건수, 변동이 더 큰 경우
성공 횟수 4, 확률 0.5
418
베르누이 분포리스크 발생(1) 또는 미발생(0)
확률 0.3
0.301
이항 분포50개 묶음의 불량품 수
시도 횟수 50, 확률 0.04
204
베타 분포갱신하는 고객의 비중
알파 8, 베타 2
80.0%63.2%93.9%
감마 분포수리 세 건을 연달아 끝내는 데 걸리는 일수
형상 3, 척도 2
6.02.210.6

자주 하는 실수

분포별 가이드

자주 묻는 질문

데이터가 없으면 어떤 분포를 써야 할까요?

그 값을 아는 사람들에게 최저, 최빈, 최고 값을 물어 PERT 분포나 삼각 분포를 씁니다. 그 사람들이 말한 최저값과 최고값이 한계가 아니라 “열 번에 한 번꼴”의 값이라면, 그 백분위수에 분포를 적합합니다. 그런 다음 숫자가 뜻하는 바(평균, P10, P90)를 그 숫자를 낸 사람들과 확인하세요.

비용 추정에는 어떤 분포가 가장 좋을까요?

비용 항목마다 3점 추정으로 PERT 분포나 삼각 분포를 쓰고, 확실한 최댓값이 없으면 로그정규 분포를 씁니다. 일어날 수도 있고 아닐 수도 있는 리스크에는 베르누이 분포에 영향액을 곱합니다. 합계는 추정하지 않고 시뮬레이션합니다. 프로젝트 비용 예비비 예제를 참고하세요.

작업 기간에는 어떤 분포를 써야 할까요?

작업마다 3점 추정으로 PERT 분포나 삼각 분포를 쓰거나, 과거 기간에 적합한 로그정규 분포를 씁니다. 둘 다 위쪽 꼬리가 길 수 있습니다. 전체 일정은 작업 네트워크를 시뮬레이션합니다. 일정 리스크 분석을 참고하세요.

보험금 청구나 운영 손실에는 어떤 분포를 써야 할까요?

한 기간에 손실이 몇 건 생기는지(빈도)와 한 건이 얼마나 큰지(심도)를 따로 모델링하고, 복합 분포로 더합니다. 건수에는 푸아송 분포나 음이항 분포, 크기에는 로그정규, 감마, 파레토 분포를 씁니다. 큰 손실이 보통 손실보다 두꺼운 꼬리를 따르면, 임계값 아래의 본체에 임계값 위의 일반화 파레토 분포를 이어 붙입니다(스플라이스). 따로 모델링하면 각각을 해당 데이터로 확인할 수 있고, 공제액이나 한도도 손실 한 건마다 적용됩니다.

합이 100%가 되는 비율은 어떻게 시뮬레이션하나요?

셀마다 따로 분포를 두지 말고 디리클레 분포로 함께 뽑으세요. 서로 독립인 비율은 합이 100%가 되는 일이 드뭅니다. 엑셀에서는 셀마다 GAMMA.INV(RAND(), alpha, 1)로 값을 뽑고 각 값을 그 합으로 나눕니다. xellstorm에서는 셀 범위에 디리클레(합계의 비율)를 고르면 됩니다.

분포가 내 데이터에 맞는지 어떻게 알 수 있나요?

여러 분포를 적합하고 서로 비교합니다. xellstorm의 “데이터로” 탭은 AIC로 적합 결과의 순위를 매깁니다. AIC는 잘 맞을수록 좋게 평가하고 파라미터가 많을수록 나쁘게 평가합니다. 각 분포의 적합도 검정도 함께 보여 줍니다. 곡선과 히스토그램을 겹쳐 보는 것도 중요합니다. 특히 결정에 중요한 꼬리 부분을 살펴보고, 표본이 작을 때는 결과를 조심해서 읽으세요.

분포를 무엇으로 고르느냐에 따라 결과가 크게 달라지나요?

가운데보다 꼬리가 더 많이 달라집니다. 세 숫자나 평균이 같은 두 모양은 평균이 비슷해도 P90이 다르고, 예산을 넘을 확률도 다른 경우가 많습니다. 중요한 결정이라면 같은 난수에서 두 분포를 시나리오로 돌려 비교하세요.

관련 글

xellstorm은 엑셀 모델을 브라우저에서 몬테카를로 시뮬레이션하는 도구입니다. 애드인은 필요 없고, 엑셀 파일은 내 컴퓨터 밖으로 나가지 않습니다.