엑셀 PERT 분포: 수식, 평균, 사용 시점
PERT 분포는 3점 추정(최소, 최빈, 최대)을 최소에서 최대까지 펼친 베타 분포로 바꿉니다. 평균은 (최소 + 4 × 최빈값 + 최대) / 6입니다. 건물 구조의 추정치가 760, 820, 1,010(천 달러 단위)이면 그 평균은 841.7입니다. 엑셀에는 PERT 함수가 없지만 =BETA.INV(RAND(), α, β, min, max) 수식으로 PERT에서 값을 뽑을 수 있습니다.
형상 파라미터는 α = 1 + 4 × (최빈값 − 최소) / (최대 − 최소), β = 1 + 4 × (최대 − 최빈값) / (최대 − 최소)입니다. 같은 세 숫자를 쓴 삼각 분포의 평균은 863.3이고 더 넓게 퍼집니다.
PERT 분포는 무엇인가
3점 추정은 가능하다고 보는 가장 낮은 값, 가장 가능성이 높은 값, 가장 높은 값을 적어 둔 것입니다. PERT 분포는 이 세 숫자를 결과의 전체 범위로 바꿉니다. 최소보다 낮거나 최대보다 높은 값은 나오지 않고, 최빈값에서 봉우리를 이루며, 양쪽 끝으로 매끄럽게 줄어듭니다. 그래서 한계 근처의 값도 가능하지만 드뭅니다.
수학적으로는 베타 분포입니다. 베타 분포는 고정된 구간 위의 분포족으로, 모양을 양수 두 개 α(알파), β(베타)가 정하며, 0에서 1까지의 구간을 최소에서 최대로 늘려 씁니다. PERT는 봉우리가 최빈값에 오고 평균이 (최소 + 4 × 최빈값 + 최대) / 6이 되도록 α와 β를 고릅니다. 최빈값은 네 번, 각 한계는 한 번 셉니다. 가중치 4는 PERT(Program Evaluation and Review Technique)에서 왔습니다. PERT는 1950년대 후반 미국 해군의 폴라리스 미사일 프로그램에 쓰려고 개발한 프로젝트 일정 기법으로, 각 활동의 기대 기간을 (낙관 + 4 × 최빈 + 비관) / 6으로 추정했습니다. 프로젝트 관리자들은 지금도 이 식을 PERT 추정 또는 3점 추정이라고 부르는데, 바로 이 분포의 평균입니다.
| 구하는 값 | 수식과 예시 |
|---|---|
| 형상 α | 1 + 4 × (ml − 최소) / (최대 − 최소) = 1 + 4 × (820 − 760) / 250 = 1.96 |
| 형상 β | 1 + 4 × (최대 − ml) / (최대 − 최소) = 1 + 4 × (1,010 − 820) / 250 = 4.04 |
| 평균 | (최소 + 4 × ml + 최대) / 6 = 5,050 / 6 = 841.7 |
| 표준편차 | √((평균 − 최소) × (최대 − 평균) / 7) = 44.3 |
| 봉우리(최빈값) | ml = 820 |
평균은 841.7입니다. 최빈값보다 높은데, 범위가 최빈값 위쪽(820에서 1,010)이 아래쪽(760에서 820)보다 더 멀리 뻗어 있기 때문입니다. 비용과 기간 추정은 대개 이렇게 치우쳐 있어서, 프로젝트 예비비 예제에서 보듯 최빈 비용을 합친 값은 낙관적입니다. 표준편차에 쓰던 옛 PERT 간편식 (최대 − 최소) / 6은 근삿값일 뿐입니다. 여기서는 41.7이고, 위 수식으로 구한 값은 44.3입니다.
엑셀의 PERT 수식
엑셀에는 PERT 함수가 없지만 BETA.INV(probability, alpha, beta, A, B) 함수는 A에서 B까지 원하는 구간으로 늘린 베타 분포의 값을 돌려줍니다. 추정치의 최소, 최빈, 최대가 B2, C2, D2 셀에 있다면 다음처럼 씁니다.
| 항목 | 수식 |
|---|---|
| 난수 추출 | =BETA.INV(RAND(), 1+4*(C2-B2)/(D2-B2), 1+4*(D2-C2)/(D2-B2), B2, D2) |
| 평균(E2) | =(B2+4*C2+D2)/6 |
| 표준편차 | =SQRT((E2-B2)*(D2-E2)/7) |
| P90 | =BETA.INV(0.9, 1+4*(C2-B2)/(D2-B2), 1+4*(D2-C2)/(D2-B2), B2, D2) |
확률 인수에 RAND() 함수를 쓰면 다시 계산할 때마다 새 값이 나옵니다. 확률을 고정하면 BETA.INV가 시뮬레이션 없이 그 백분위수를 바로 돌려줍니다. 구조 항목에서 0.9는 904.1, 0.1은 786.9입니다. 엑셀 2007과 그 이전의 이름인 BETAINV도 같은 인수를 받습니다. 두 형상 수식이 모두 최대 − 최소로 나누므로 최소와 최대는 달라야 합니다.
항목 하나의 백분위수는 합계의 백분위수가 아닙니다. 여러 항목의 P90을 더해도 합계의 P90이 되지 않습니다(P50, P80, P90 참조). 합계에는 시뮬레이션이 필요합니다. 일반 엑셀에서는 데이터 표 등으로 수천 번 다시 계산한 결과를 모아야 하며, 엑셀 몬테카를로 시뮬레이션에서 설명합니다.
PERT와 삼각 분포: 같은 세 숫자, 다른 답
삼각 분포도 같은 최소, 최빈, 최대를 쓰지만, 밀도가 최소에서 최빈값까지 직선으로 올라가고 최대까지 직선으로 내려갑니다. 평균은 (최소 + 최빈 + 최대) / 3입니다. 최빈값을 네 번이 아니라 한 번만 세므로 먼 쪽 한계가 평균을 더 끌어당깁니다. 구조 항목에서는 2,590 / 3 = 863.3입니다. PERT의 841.7보다 약 22 높습니다. 삼각 분포의 표준편차 √((최소² + 최빈² + 최대² − 최소 × 최빈 − 최소 × 최대 − 최빈 × 최대) / 18)는 53.3이고, PERT는 44.3입니다.
모델에서 어떤 차이가 나는지 보려고 건축 예제의 5,000회 시행을 같은 시드로 두 번 실행했습니다. 한 번은 공개된 그대로 구조를 PERT로, 한 번은 구조를 같은 세 숫자의 삼각 분포로 바꿨습니다. 나머지 입력은 두 실행에서 정확히 같은 값을 뽑고, 구조도 시행마다 같은 난수를 뽑으므로, 두 실행은 이 분포 하나의 모양에서만 다릅니다.
| 구조 항목 | PERT | 삼각 분포 |
|---|---|---|
| 공식으로 구한 평균 | 841.7 | 863.3 |
| 추출값의 평균 | 841.7 | 863.3 |
| 공식으로 구한 표준편차 | 44.3 | 53.3 |
| 추출값의 표준편차 | 44.3 | 53.3 |
| 추출값의 P10 | 786.9 | 798.7 |
| 추출값의 P90 | 904.1 | 941.1 |
| PERT의 P90 초과 추출값 | 10.0% | 23.6% |
추출값은 표시된 소수 자리까지 공식과 일치합니다. 평균은 각각 841.7, 863.3입니다. xellstorm의 기본값인 라틴 하이퍼큐브 샘플링이 여기서 도움이 됩니다. 각 입력의 범위를 같은 확률의 5,000개 구간으로 나누어 구간마다 정확히 한 번씩 뽑기 때문입니다. 삼각 분포가 더 넓어서 P10에서 P90까지의 폭은 142.4, PERT는 117.2입니다. 삼각 분포의 추출값 중 PERT의 P90(904.1)보다 큰 것은 23.6%이고, PERT 자체의 추출값은 10%입니다. 그렇다고 양쪽이 모두 더 넓은 것은 아닙니다. 최소 근처에서는 PERT의 추출값이 더 많고, 삼각 분포의 P10이 더 높습니다(798.7, PERT는 786.9). 최빈값이 낮은 쪽 끝에 가까워서 삼각 분포는 길게 뻗은 위쪽 꼬리로 비중을 옮기며, 대칭인 추정이라면 양 끝에 더 많은 비중을 주었을 것입니다.
항목 6개 중 1개만으로도 합계가 움직입니다. 구조를 삼각 분포로 바꾸면 평균 총비용은 2,785에서 2,806까지 오르며, 이는 해당 항목 평균의 상승분과 같습니다(나머지 추출값은 모두 같습니다). P90은 27 오르고, 2,900 예산을 넘을 확률은 16.1%에서 20.8%까지 높아집니다.
| 총비용 | PERT | 삼각 분포 |
|---|---|---|
| 평균 | 2,785 | 2,806 |
| P90 | 2,937 | 2,964 |
| 2,900 예산 초과 확률 | 16.1% | 20.8% |
어느 쪽이 옳고 그르다고 할 수는 없습니다. 같은 세 숫자를 읽는 두 가지 방식일 뿐입니다. 의도적으로 하나를 고르고, 예산이 어느 쪽에 근거하는지 밝혀 두어야 합니다.
PERT, 삼각 분포, 로그정규 분포를 쓸 때
- PERT는 최빈값이 가장 믿는 숫자인 전문가 추정에 씁니다. 하한과 상한이 알려진 비용, 기간, 수량이 해당합니다. 평균이 최빈값에 가깝게 유지되고 한계에는 좀처럼 닿지 않으므로, 최소와 최대를 도달하지 않을 경계로 잡은 경우에 맞습니다.
- 삼각 분포는 한계 근처의 값이 현실적일 때, 또는 같은 세 숫자로 더 보수적인 퍼짐을 원할 때 씁니다. 치우친 추정에서는 긴 쪽에 더 많은 비중을 두므로 평균과 상위 백분위수가 더 높습니다. 밀도가 직선 두 개라 설명하기도 쉽습니다.
- 로그정규 분포는 확실한 최댓값이 없을 때 씁니다. 배수로 초과할 수 있는 비용, 손실, 기간과, 0 아래로 내려갈 수 없지만 오른쪽 꼬리가 긴 그 밖의 값이 해당합니다. 한계가 아니라 대푯값과 퍼짐으로 정합니다.
- 적합시킨 분포는 세 숫자가 한계가 전혀 아닐 때 씁니다. 전문가의 “낮음”과 “높음”이 10번 중 1번 수준의 경우(P10과 P90)라면, 이를 최소와 최대로 쓰는 PERT는 그 바깥 20%의 결과를 빼 버립니다. 대신 백분위수에 분포를 적합합니다. 과거 데이터가 있으면 데이터에 적합합니다.
가공 치수처럼 목표값 주위에서 대칭으로 변하는 값은 대개 정규 분포를 따르며, 공차 누적 예제가 그런 경우입니다.
xellstorm에서 PERT 분포 입력하기
xellstorm은 엑셀 파일을 브라우저에서 계산하고 분포는 그 옆에 따로 보관하므로, 엑셀 파일에는 BETA.INV 수식이 필요 없습니다.
- 엑셀 파일을 열고, 모델 맵에서 확신이 없는 셀을 클릭해 Make input을 고릅니다. 새 입력은 셀에 저장된 값의 90%에서 110%까지의 PERT로 시작합니다.
- Distributions 단계에서 Distribution 열은 PERT로 두고 최소, 최빈, 최대를 입력합니다. Shape, Mean, P10 – P90 열이 입력하는 대로 갱신되어, 실행 전에 세 숫자가 무엇을 뜻하는지 바로 보입니다.
- 추정치가 이미 엑셀 파일에 있고, 입력 옆 셀에 Min, Likely, Max(또는 Low, Base, High)라는 이름표가 있으면 사이드 패널이 “Link to these cells”를 제안합니다. 그러면 PERT가 실행할 때마다 그 셀을 읽으므로, 시트를 고친 뒤 수정한 엑셀 파일을 열고 저장한 프로젝트를 적용하면 변경 내용이 이어집니다. 리스크 관리대장 예제가 이렇게 동작합니다.
- 낮음과 높음이 한계가 아니라 P10과 P90이라면, 대푯값을 P50으로 해서 사이드 패널의 “Fit from estimates”에 입력하고 모양으로 PERT, Normal, Lognormal, Triangular 중 하나를 고릅니다. xellstorm이 그 모양에서 가장 가까운 분포를 찾아 적합 오차를 보여 줍니다. “From data” 탭은 대신 과거 값에 분포를 적합합니다.
- 모양을 비교하려면 입력의 분포를 Triangular로 바꾸는 시나리오를 추가하고 같은 세 숫자를 입력합니다. 시나리오는 같은 난수로 실행되며, Results 단계에서 각각을 기준 케이스와 비교합니다.
@RISK, ModelRisk, Analytic Solver용으로 만든 엑셀 파일에는 PERT 함수(RiskPert, VosePERT, PsiPert)가 자주 들어 있습니다. “Import from workbook”은 단독 함수, 또는 양수 곱셈 계수 하나 뒤에 오프셋이 최대 하나 붙은 함수를 입력으로 바꿉니다. 한 예로 VosePERT(E7,1,F7)*D7 같은 수식이 있습니다. 셀을 쓰는 인수와 곱셈 계수는 산술식까지 포함해 연결된 채로 남고, 시나리오의 고정 셀을 적용한 뒤 다시 읽습니다. 위의 BETA.INV 수식도 같은 뜻의 베타 입력으로 변환되며, 두 형상 계산식과 최소, 최대가 셀에 연결된 채로 남습니다. 명시적인 나눗셈 때문에 최소와 최대는 여전히 달라야 합니다. 최소, 최빈, 최대가 모두 같은 PERT 입력은 그 값 하나만 뽑습니다.
자주 묻는 질문
PERT 분포의 평균 공식은 무엇인가요?
PERT 분포의 평균은 (최소 + 4 × 최빈 + 최대) / 6입니다. 최빈값에 네 배, 각 한계에 한 배의 가중치를 둔 값입니다. 추정치 760, 820, 1,010에서는 5,050 / 6 = 841.7입니다. 프로젝트 관리에서는 같은 식을 PERT 추정 또는 3점 추정이라고 부릅니다.
PERT 분포의 표준편차는 얼마인가요?
PERT 분포의 표준편차는 √((평균 − 최소) × (최대 − 평균) / 7)입니다. 간단한 규칙 (최대 − 최소) / 6은 근삿값일 뿐입니다. 추정치 760, 820, 1,010에서 이 규칙은 41.7이고 이론값은 44.3입니다.
PERT 분포는 베타 분포와 같은가요?
PERT 분포는 특정한 베타 분포입니다. 최소에서 최대까지 늘리고, 형상 파라미터를 최빈값으로 정한 것으로, α = 1 + 4 × (최빈값 − 최소) / (최대 − 최소), β = 1 + 4 × (최대 − 최빈값) / (최대 − 최소)입니다. 형상 파라미터가 다른 베타 분포는 PERT가 아닙니다. 베타 분포이므로 엑셀의 BETA.INV로 추출할 수 있습니다.
PERT와 삼각 분포 중 무엇을 써야 하나요?
PERT와 삼각 분포는 같은 최소, 최빈, 최대를 받지만, 삼각 분포는 더 넓게 퍼지고 치우친 추정에서는 긴 쪽으로 기웁니다. 구조 추정치가 760, 820, 1,010(천 달러 단위)일 때 삼각 분포의 평균은 863.3, PERT는 841.7입니다. 최빈값을 가장 믿고 한계에 좀처럼 닿지 않는다면 PERT를, 더 보수적인 퍼짐을 원하거나 한계 근처의 값이 현실적이라면 삼각 분포를 씁니다.
엑셀에서 PERT 분포의 P90은 어떻게 구하나요?
PERT 입력 하나의 P90은 확률에 0.9를 넣은 BETA.INV에서 바로 나옵니다. =BETA.INV(0.9, 1+4*(ml-min)/(max-min), 1+4*(max-ml)/(max-min), min, max) 수식의 결과는 추정치 760, 820, 1,010에서 904.1입니다. 이 페이지에서 시뮬레이션으로 추출한 5,000개 값도 같은 결과를 재현하며 P90은 904.1입니다. 라틴 하이퍼큐브 샘플링(범위를 같은 확률의 구간으로 나눠 구간마다 한 번씩 추출)이 이를 돕습니다. 불확실한 항목 여러 개를 합친 값의 P90은 시뮬레이션으로 구해야 합니다. 백분위수는 더해지지 않습니다.
관련 글
- 가이드
엑셀 몬테카를로 시뮬레이션, 애드인 있어도 없어도
엑셀 모델에서 몬테카를로 시뮬레이션을 실행하는 세 가지 방법: RAND() 수식과 데이터 표, 애드인, 애드인 없는 브라우저 도구. PERT 수식 포함. - 프로젝트 비용과 일정
건설 프로젝트에는 예비비가 얼마나 필요할까요?
예제 풀이: 건축 견적의 최빈 비용 합계를 넘는 시뮬레이션 결과가 94.2%입니다. 몬테카를로로 건설 비용 예비비를 산정합니다. - 가이드
P50, P80, P90의 의미와 예산을 잡는 기준
P80은 시뮬레이션 결과의 80%가 그 아래에 머무는 비용입니다. 건축 프로젝트의 비용 항목 6개의 P80을 더하면 2,843이지만(천 달러 단위), 항목 합계의 P80은 2,756입니다.
xellstorm은 엑셀 모델을 브라우저에서 몬테카를로 시뮬레이션하는 도구입니다. 애드인은 필요 없고, 엑셀 파일은 내 컴퓨터 밖으로 나가지 않습니다.