3부까지 우리는 도착 간격과 서비스 시간을 아무렇지 않게 “지수분포”라고 가정했다. 하지만 실제 시스템을 모델링할 때 가장 먼저 부딪히는 질문은 이것이다. “그 분포가 정말 지수분포가 맞나? 모수는 얼마인가?” 입력 분포가 틀리면 아무리 엔진이 정확해도 결과는 무의미하다 — garbage in, garbage out. 이 글은 실측 데이터로부터 시뮬레이션의 입력 분포를 정하는 input modeling을 다룬다. 4부의 첫 글로, “시뮬레이션을 신뢰할 수 있게 만드는” 방법론의 출발점이다.

왜 입력이 결정적인가

7번 글에서 보았듯, 같은 평균이라도 분포의 모양이 결과를 크게 바꾼다. 평균 서비스 시간이 같아도 분산이 크면(들쭉날쭉하면) 대기는 훨씬 길어진다. 그래서 “평균만 맞추면 되겠지”는 위험한 생각이다. 입력 모델링의 목표는 평균뿐 아니라 분포 전체를 데이터에 맞게 정하는 것이다.

데이터가 있을 때: 네 단계

실측 데이터(예: 손님 도착 시각 로그, 서비스 소요 시간 기록)가 있다면 다음 절차를 따른다.

1. 데이터를 그려 본다. 히스토그램을 그려 분포의 대략적 모양 — 봉우리의 위치, 치우침(skew), 꼬리의 두께 — 을 눈으로 파악한다. 시간 순서대로도 찍어 추세나 주기가 있는지 본다.

2. 분포 가족(family)을 고른다. 모양과 물리적 근거로 후보를 좁힌다.

  • 도착 과정: 사건이 서로 독립적으로 무작위하게 발생하면 도착 수는 포아송 분포, 도착 간격은 지수분포를 따른다. 이것이 M/M/1의 “M”이다.
  • 서비스·처리 시간: 음수가 될 수 없고 종종 오른쪽으로 치우치므로, 로그정규(lognormal)·감마(gamma)·와이블(Weibull) 분포가 자주 쓰인다. 여러 작은 단계의 합이면 정규분포에 가까워지기도 한다.

3. 모수를 추정한다. 선택한 분포 가족의 모수(예: 지수분포의 )를 데이터로부터 추정한다. 표준 도구는 최대우도추정(MLE)으로, 이 블로그 모수 추정 글에서 다룬 그 방법이다.

4. 적합도를 검정한다(goodness-of-fit). 고른 분포가 데이터를 정말 잘 설명하는지 확인한다.

  • Q-Q plot: 데이터의 분위수와 이론 분포의 분위수를 산점도로 비교한다. 점들이 직선에 가까우면 잘 맞는 것이다. 수치보다 직관적이라 가장 먼저 본다.
  • Kolmogorov–Smirnov(KS) 검정: 경험적 CDF와 이론 CDF의 최대 차이를 통계량으로 본다.
  • 카이제곱(chi-square) 검정: 구간별 관측 빈도와 기대 빈도를 비교한다.
  • Anderson–Darling 검정: KS의 변형으로 꼬리 부분에 더 민감하다.

이들은 모두 가설검정이다. 다만 주의할 점이 있다. 검정을 “통과”했다고 그 분포가 이라는 뜻은 아니다. “데이터와 모순되지 않는다” 정도이며, 표본이 매우 크면 사소한 차이도 기각되곤 한다. 그래서 검정 수치와 Q-Q plot을 함께 보고 판단한다.

데이터가 부족하거나 없을 때

새 공장처럼 아직 데이터가 없는 시스템도 흔하다. 이때는,

  • 삼각분포(triangular)·균일분포: 최솟값·최댓값·(가능하면) 최빈값만 전문가에게 물어 거친 분포를 세운다. “최소 2분, 보통 5분, 최대 12분” 같은 정보로 삼각분포를 만든다.
  • 경험분포(empirical distribution): 적합한 이론 분포가 없으면 데이터 자체를 분포로 삼아 샘플링한다. 단 관측되지 않은 값(데이터 범위 밖)은 절대 나오지 않는다는 한계가 있다.

데이터가 빈약할수록 결과의 불확실성도 커지므로, 민감도 분석으로 “입력 가정이 결과를 얼마나 바꾸는지”를 반드시 살펴야 한다.

흔한 함정

  • 비정상성(non-stationarity): 도착률이 하루 종일 일정한 경우는 드물다. 점심시간 피크처럼 시간에 따라 변하면, 단일 지수분포가 아니라 비동질 포아송 과정(non-homogeneous Poisson process) 으로 시간대별 도착률을 모델링해야 한다. 시간에 따라 변하는 입력은 시계열 분석의 도구와도 맞닿는다.
  • 독립성 가정 위반: 연속한 서비스 시간이 서로 상관되어 있을 수 있다(예: 피곤해질수록 느려짐). 분포만 맞추고 자기상관을 무시하면 모델이 빗나간다.
  • 평균에만 맞추기: 앞서 말했듯, 분산과 꼬리가 결과를 좌우한다.

정리

  • 입력 분포가 틀리면 결과도 틀린다(garbage in, garbage out). Input modeling은 분포 전체를 데이터에 맞추는 일이다.
  • 데이터가 있으면 그리기 → 분포 가족 선택 → MLE로 모수 추정 → 적합도 검정(Q-Q·KS·카이제곱) 의 네 단계를 따른다.
  • 데이터가 없으면 삼각분포(전문가 의견)·경험분포로 대체하고, 민감도 분석으로 불확실성을 확인한다.
  • 비정상성·자기상관·평균만 맞추기가 대표적 함정이다.

다음 글에서는 이렇게 정한 입력으로 돌린 시뮬레이션의 출력을 통계적으로 다루는 output analysis로 넘어간다.