기획, 파트너쉽, 그리고 마케팅 3614405@gmail.com
by 딸기우유

카테고리
마케팅 & 기획
R&D 평가 노하우
기획에 사용하는 기법(tool)
프로젝트관리 + 알파
개똥철학
Web 2.0 응용
삶의 주저리 주저리
공지사항

메모장
양군 블로그 구독하기
한RSS에 추가Subscribe with Bloglines


이글루 파인더


몬테카를로 시뮬레이션 (Monte-Carlo Simulation)
연구(R&D) 기획일을 하다보면 불확정적인 정보들로 인해 결론내리기가 애매한 경우를 많이 당한다.
특히, 나를 포함한 공학도 출신들은 정확히 딱딱 떨어지는 계산결과에 쾌감마져 느끼는 사람들이 많다. 이런 사람들은 '이럴수도 있고, 저럴수도 있다'라는 식의 정보가 나오게 되면 결과를 내놓고도 결과가 흔들릴 수 있다는 생각에 잠이 잘 안오곤 한다.
기획은 planning이기 때문에 forecasting과 추론을 포함할 수 밖에 없다. 그리고 여기에 영향을 미치는 대부분의 요소들은 확률변수이다.
확률이 존재하는 의사결정이 필요한 상황에 내가 종종 들고 나오는 무기(tool)는 몬테카를로 시뮬레이션(Monte-Carlo Simulation)이다.

<몬테카를로 시뮬레이션의 개요>
변수의 관계가 확실하여 예측치를 정확하게 찾을 수 있는 확정모형(deterministic model)과는 달리, 기획일의 많은 부분은 결과를 정확하게 예측할 수 없는 확률모형(stochastic model)이다. 일반적으로 확정모형에서는 분석적 해(analytical solution)을 찾는 것이 가능하다. 그러나 확률모형에서는 분석적인 방법으로 해를 찾는 것이 불가능 한 경우가 많다. 이 경우에는 수치적(numerical)으로 일련의 난수를 반복적으로 발생해서 시뮬레이션을 하면 답을 찾을 수 있는데 이것이 몬테카를로 시뮬레이션이다.

기본 사상은 각각의 단위 변수의 패턴을 알아내서, 의사결정을 위한 그 단위 변수의 조합의 패턴을 추정하는 것이다.
다시말해, 각각의 변수의 확률분포를 통합해서 목표로 하는 값의 확률분포를 알아내는 것이다.
Figure 1.을 보면 이게 무슨말인지 쉽게 이해할 것이다.

< Figure 1 >



그럼 단위 변수들의 확률모델은 어떻게 알아내느냐고? 그건 최소한 의사결정을 위한 목표값의 확룔모델을 알아내는 것보다는 몇갑절 쉽고 정확하다. 범위와 그 속성을 알면 누구나 동감할 만한 수준의 패턴을 찾아낼 수 있기 때문이다.

몬테카를로 시뮬레이션에 대한 비교적 이해하기 쉬운 글이 하나 있어서 추천한다. 아래를 클릭해서 읽어보면 도움이 될 것이다.
http://www.nemopartners.com/webzine/webzine0504_10.asp

이즈음에서 실제 적용사례를 하나 예로 들어보자.
일단, 몬테카를로 시뮬레이션을 돌릴 툴이 필요하다. 각종 나이스한 통계툴들이 많이 판매되고 있지만, 이거 하겠다고 SW사달라고하면 사줄회사가 몇이나 될까? 대기업인 우리도 절대 사줄리 없다. 나중에 그 효용이 공유되고 아주 많은 경우에 통계기법이 활용되는 상황이 펼처지면 그때는 사줄 것이다. 그러므로 많은 분들은 엑셀을 써야만 하는 환경에 있으리라 믿어 의심치 않는다. (여기에 내가 그렇게 노래를 부르는 MS Excel의 power user가 되어야 하는 이유가 있다.)
엑셀을 이용하여 몬테카를로 시뮬레이션을 돌리는 것과 관련해서는 경문사의 '(엑셀/VBA를 이용한) 금융공학' 책을 읽어볼 것을 추천한다. 어느정도 수준급의 사용자는 굳이 이책을 읽지않고도 스스로 엑셀을 이용한 분석툴을 디자인 할 수 있겠지만 말이다.
이 예제에서는 모두 3가지 변수를 사용하여, 목표지수를 알아내려는 시도를 한다.
3개의 변수(A, B, C)는 향후 몇년간 주어진 범위 내에서만 움직일 것이 확실하지만, 정확히 어떤값이 될지는 기업내외부 사정에 따라서 달라지므로 무어라 탁 꼬집어 말할 수 없는 상황이다. 다행히 A와 B의 트랜드는 파악이 되어서 어느정도 패턴을 유추할 수는 있는 상황이다. Metric C는 패턴이란게 절대 안보이고 범위안에서 제멋대로 나오므로 random변수를 사용할 수 밖에 없다.
3개의 변수에 대한 범위와 그 패턴정의는 Figure 2.와 같다.

< Figure 2 >
MetricVariationDistribution
A0~2normal
B0.6~0.8exponential
C0.10~0.15uniform

이러한 조건을 이용해서, 각 Metric의 난수생성을 해보자. (엑셀의 함수기능을 활용해야 하는데, 그것은 위에 추천한 책이나 엑셀의 도움말을 보고 공부하도록 한다. 여기서 엑셀 강좌까지 할 수는 없지 않은가?)
임의로 각각 2천개씩 생성해서 돌리면 어느정도 답의 패턴이 보인다. 금융공학에서는 1백만번 이상이 되면 신뢰할만하다고 말을 하는데, 프로그래밍 하지않고 엑셀의 기능만 이용하면 이건 현실적으로 불가능하고 꼭 그렇게 안해도 2천번이면 충분히 결과가 나오더라.
Figure 3.은 2천개의 난수패턴에 결합모델을 이용한 엑셀파일의 일부이다. 오만가지 경우에 대한 목표지수가 나열된다. 몇개가? 2천번 돌렸으니 2천개가!

< Figure 3 >

Figure 3.을 보면 일단 무슨짓을 한것인지는 알 수 있을 것이다. 각 경우에 대한 목표값을 일일이 만들어보는 것이다. 사람이 할 짓이 아니므로, 컴퓨터가 필요한 것이 바로 몬테카를로 시뮬레이션이다.

Figure 4.은 각 Metric과 목표지수의 결과값을 오름차순으로 sorting해서 그 패턴을 분석해본 것이다. 과연, 확률모델상에서는 어떤일이 벌어진건지 설명해주기 위해서, 별도로 만들어 본 것이다. (목표지수도 sorting된 것이므로 Figure 3.에서처럼 Metric A, B, C의 연산으로 산정되는 테이블이 아님을 명심할 것)

< Figure 4 >

위의 Figure 4.를 보면 A와 B와 C의 패턴이 만나서, 목표값의 패턴이 되는 과정을 볼 수 있다. (사실 막대그래프인데 2천개를 정렬해서 세워놓으면 이런 차트가 나온다. 미적분의 원리 아닌가? ^^)
물론 목표값자체도 확률모델로 나오므로, 1개의 정확한 해가 구해지는 것은 아니다. 하지만 적어도 의사결정에 사용될 결과값이 어떻게 움직일지가 예상될 수 있드며, 목표값이 어느 부분에 집중되어 있으므로 어디를 공략하는게 성공율이 높은지의 정보가 나온다.
충분히 값진 결과이다.


<몬테카를로 시뮬레이션 결과의 보고>
몬테카를로 시뮬레이션 결과는 어떻게 보고 되어야 할까?
난 편의상 복잡한 것을 싫어하는 상사에게는 가장 빈도높고 성공확률 높은 값(통상적으로 평균이 되는 경향이 있지만)을 찾아내서 그것을 알려주기도 한다. 하지만, 이것은 상황에 따라 그러는 것이고, 정공법은 아니다.
몬테카를로 시뮬레이션의 결과는 확률로 보고되는것이 정공법이다.
결과값은 각 구간별 빈도수를 체크하여 차트로 구성한다. 그러면 각 구간별로 발생할 수 있는 확률패턴이 나타나게 되는데 이것이 의사결정에 도움이 된다. (가장 대표적인게 표준정규분포표 아닌가?)

Figure 5.는 톰 디마르코와 티모시 리스터의 '소프트웨어 프로젝트에서의 리스크 관리'란 책에서 제공하는 Riskology라는 엑셀로 개발된 툴을 이용한 결과이다. (힌트를 주자면, 위에서 언급한 예제를 빈도수를 가지고 히스토그램을 만들어보면 아래와 똑같은 모양이 된다. 한번 해보기 바란다.)

< Figure 5 >



이것은 특정 프로젝트의 완료일자에 영향을 주는 다양한 요소를 고려해서 만들어진 완료일자 확률모델이다.
프로젝트는 상황이 충분히 좋으면 8월 11일에 종료될 수도 있고, 상황이 어려워지면 이듬해 12월까지 질질 끌려 지연될 수도 있다.
여러분이 이 프로젝트를 맡았다면, 언제까지 과제를 종료시키겠다고 말할 것인가? 영업에선 8월 중에 종료할 수있다고(사실은 그럴 가능성이 있기는 하지만) 밀어붙이겠지만, 함부로 8월에 끝낼 수 있다고 장담할 수 있는 사람은 없을 것이다.
그러면, 어떻게 보고를 해야 할까? 내년 5월 완료? 7월 완료? 이쯤되면 그만두란 소리를 들을 법도 하다.
몬테카를로 시뮬레이션을 이해하는 사람간의 대화라면 아마 다음과 같을 것이다.
"이 프로젝트를 금년 10월까지 성공적으로 완료할 수 있는 확률은 15%남짓 합니다. 하지만 올해 12월까지 완료될 가능성은 30%는 되므로, 출시일정을 이에 맞추면 30%이상의 성공을 기대할 수 있을 것 같습니다."
이 대화가 이상해 보이는가?
난 이정도로 정량화된 사고와 대응을 할 수 있는 후배라면, 돈이 얼마나 들던 꼭 데려오고 싶을 것 같다.

참고로, Figure 5와 같은 모델을 리스크 다이어그램(Risk Diagram)이라고 한다.
이것은 정량적 위험관리의 강력한 툴로 사용된다.
몬테카를로 시뮬레이션이 적극적으로 활용되는 분야가 위험관리인데 이에 대해서는 위험관리에 대한 고찰 (Advanced Risk Management) 포스트를 참조하기 바란다.


<TIP>
몬테카를로 시뮬레이션은 무척 다양한 용도로 쓰인다.
(정량적 위험관리, 사업리스크 분석, 금융공학, 품질관리 등등)
확률이 존재하는 의사결정이 필요한 모든 부분에서 우선적으로 사용을 검토해보길 권한다.
최소한, 기존의 주먹구구 방식보다는 진일보시켰다는 평가를 받을 수 있을 것이다.


by 딸기우유 | 2006/05/19 10:47 | 기획에 사용하는 기법(tool) | 트랙백(2) | 핑백(1) | 덧글(29)
트랙백 주소 : http://yjhyjh.egloos.com/tb/33072
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from mazing2305's.. at 2010/05/05 20:56

제목 : 마징가2305의 생각
몬테카를로 시뮬레이션...more

Tracked from 인터넷meme과 이슈 .. at 2011/12/21 11:13

제목 : 몬테카를로 시뮬레이션 설명
http://yjhyjh.egloos.com/m/33072...more

Linked at Monte-Carlo Simu.. at 2010/11/19 17:20

... 위한 그 단위 변수의 조합의 패턴을 추정하는 것이다. 다시말해, 각각의 변수의 확률분포를 통합해서 목표로 하는 값의 확률분포를 알아내는 것이다. Source: http://yjhyjh.egloos.com/33072 이제 몬테카를로 시뮬레이션을 얘기할 때가 된 것 같다. 통계 분석은 크게 두 가지로 얘기할 수 있는데 하나는 데이터를 요약하고 데이터에 대해 설명하는 기 ... more

Commented by 김희찬 at 2008/05/30 15:46
몬테카를로 시물레이션에 대해 궁금했는데 정말 고맙읍니다
Commented by 박종현 at 2008/08/01 10:45
엔지니어로서 8년간 일을 하다가 최근 들어 기획부분의 업무가 생겨 많은 혼란을 겪고 이다가 이 글을 보게 되었습니다. 이렇게 해야 되지 않을까하는 막연한 생각을 구체화하게 되었구요. 좋은 글 감사합니다.
Commented by 딩구 at 2008/08/13 15:57
좋은 자료 감사합니다!!
학업에 많은 도움 되었습니다!!
Commented by william at 2008/09/24 22:59
담아갑니다. 감솨!
Commented by 양광수 at 2008/11/19 11:07
팀장님이 해당 블로그를 출력 하시면서 숙제를 주셔서 여기까지 오게 되었습니다. 파생상품 평가보고서의 확률적 기법이 대한 이해의 단초가 된것 같아서 감사 합니다.
Commented by wyndchaser at 2008/12/17 10:46
도움이 많이 되는 자료에 감사드립니다.

그리고 질문이 하나 있습니다. 변수 A, B, C 사이에 상관관계가 존재할때는 어떻게 해야 하는지요?
Commented by 송은주 at 2009/01/13 09:20
공부하다 어려워 검색해 보았는데 정말 자세히 올려주셨네요. 감사히 읽고 갑니다.
Commented by 라라윈 at 2009/10/22 20:49
감사합니다~
ㅅ이해하기 쉽게 설명해 주셔서 도움이 많이 되었습니다..^^
Commented by 좋은하루 at 2009/11/30 18:08
감사합니다. 담아감니다.
Commented by flyhigh39 at 2010/03/29 17:05
좋은 설명이네요. 감사합니다-
Commented by 봄나들이 at 2010/04/03 08:53
자세한 설명 감사드립니다
Commented by Bean at 2010/04/07 05:23
시물레이션수업을 듣던중 Monte Carlo 에 대한 이야기가 나와 찾아보던중 이렇게 블로그까지 오게 되었습니다. 자세한 설명 감사드립니다^^
Commented by 뉴브레인 at 2010/06/17 14:31
블로그에 출처를 달고 스크랩해서 개인적인 용도로 참고하겠습니다. 감사합니다.
Commented by 치환 at 2010/08/04 03:17
좋은 글 감사합니다.
Commented by 김마사루 at 2010/08/09 23:00
좋은글 감사합니다
Commented by 김명중 at 2011/03/13 05:15
MBA 과정중에 있는 Management Science를 공부하다가 google 검색을 통해 와보게 되었습니다.
무엇보다 figure1과 figure4가 정말 큰 맥락을 이해하는데 도움이 되었습니다. 감사합니다.
감사한 글이고 꼭 두고 읽어보고 싶어서 출처를 밝히고 내용을 퍼가도록 하겠습니다.
Commented by 황딩 at 2011/09/04 15:44
계량공부하는 학생인데 너무 재밌게 설명하신것 같아요 ㅋㅋㅋ 감사합니다 ㅋㅋ 아이 재미써
Commented by creaming at 2011/10/14 11:58
좋은 글이네요 감사합니다
Commented by 밀리네스 at 2012/04/02 18:31
의사 결정은 윗선의 일이지만, 대부분의 업무는 흑백논리로 정리 되어야 하는 경우가 많습니다.
성공률 15% 일정을 가능성 있다고 들이 미는 후배라면 교육이 필요하겠죠 ^^
SW 프로젝트의 경우 성공률 80% 일정도 90%의 확률로 실패하거든요.
Commented by 지식스폰지 at 2012/06/01 09:12
궁금했던 건데, 감사합니다.
Commented by Junho at 2012/10/12 13:37
좋은 글 잘 읽고 갑니다 :)
Commented by Chipotle at 2012/12/14 04:57
게시물이 좋고 나쁜 기술에 대한 좋은 것입니다.
Commented by ㅇㅇ at 2013/04/24 11:28
설명이 이해가 쉽게 잘되어있습니다 감사합니다
Commented by 길가던개발자 at 2014/01/03 15:32
고맙습니다
리스크 관리쪽 개발을 하게되었는데
덕분에 좋은 정보 배워가네요.
Commented by 데이터분석가 at 2014/07/07 17:34
깔끔한 설명에 정말 확 와닿네요.
이름만 대충 알고 있었는데 단번에 이해됐습니다.
Commented by jack at 2014/09/04 23:29
교수님이 지나가시면서 던져주신건데

개념이 잘 잡혔습니다^^ 좋은 글 감사합니다.
Commented by 바람그리기 at 2014/11/06 10:02
고맙습니다
Commented at 2014/11/10 10:50
비공개 덧글입니다.
Commented by 다채로운 돌고래 at 2016/09/17 16:34
정량적위험관리를 공부하고 있는데, 매우 훌륭한 설명을 듣고 갑니다.

:         :

:

비공개 덧글

◀ 이전 페이지 다음 페이지 ▶
최근 등록된 덧글
훌륭한 자료 감사합..
by 길석면 at 10/04
감사합니다 잘 사용..
by 분석자 at 09/28
감사합니다. 잘 사..
by joohee at 09/12
AHP에 대한 초보자..
by 안영찬 at 09/10
EVA에서는 PV가 ..
by Ed at 08/18
네이버 통해 글을 찾..
by Ed at 08/18
정말 감사합니다. 막..
by 김정범 at 07/31
감사합니다. 잘 배우..
by 마운틴 at 07/31
감사합니다 ^^
by 리서쳐 at 07/21
감사히 잘 활용하겠..
by 미캉이 at 07/11

최근 등록된 트랙백
기획 관련 유용한 사이트
by 열정 하나만으로...
몬테카를로 시뮬레이..
by 인터넷meme과 이슈..
갤럭시탭 + 노트북 ..
by 행복공작소

이전블로그
2016년 06월
2013년 10월
2013년 08월
2013년 07월
2013년 06월
2013년 03월
2012년 03월
2012년 02월
2011년 03월
2011년 02월
2011년 01월
2010년 08월
2010년 04월
2010년 01월
2009년 11월
2009년 10월
2009년 09월
2009년 08월
2009년 06월
2009년 05월
2009년 04월
2009년 03월
2009년 01월
2008년 12월
2008년 11월
2008년 10월
2008년 09월
2008년 08월
2008년 07월
2008년 06월
2008년 05월
2008년 04월
2008년 03월
2008년 02월
2008년 01월
2007년 12월
2007년 11월
2007년 10월
2007년 09월
2007년 08월
2007년 07월
2007년 06월
2007년 05월
2007년 04월
2007년 03월
2007년 02월
2007년 01월
2006년 12월
2006년 11월
2006년 10월
2006년 09월
2006년 08월
2006년 07월
2006년 06월
2006년 05월

rss

skin by black