5-2 Markov Chain 매트릭스 예제 엑셀처리

in #kr5 years ago (edited)

1800년대 후반에 물리학자인 볼츠만 혼자서만 열공한 줄 알았는데 러시아의 수학자였던 Markov 한 분이 더 있었군요. Markov Chain 이론이 직접 강화학습에 쓰이는 것은 아니지만 그 다음 단계로 보이는 MDP(Markov Decision Process) 단계에서 강화학습과 연결이 되는 것으로 보이는데 이 부분을 연결해주는 튜토리알이 거의 없는 듯하다. 그렇지만 이미 엑셀에서 매트릭스 처리 기법을 연습하였으므로 이를 바탕으로 Markov Chain 문제를 이해하고 엑셀로 문제를 풀어 본 후 다시 MDP를 학습해 볼 예정이며 거기서 강화학습과의 연결고리를 찾아 볼 계획이다.

noname01.png

볼츠만 확률분포에 이어 위 그림의 마코프 체인 확률 문제를 고려해 보자. 3개의 마트 A, B, C 가 있는데 각 마트의 첫 주 고객이 각각 200, 120, 180 이라고 두자. 일주일 간격으로 고객의 변화를 체크한 결과 위 그림이 결과를 얻었다.

각 마트의 고객변동률을 살펴보면 다 확률적으로 100% 임을 알 수 있다. 그런데 한 주가 지나자 A 마트는 80%의 고객이 다시 찾았고 10%는 B 마트로 나머지 10%는 C 마트로 빠져 나갔는데 B 마트와 C 마트에서 일부 고객이 넘어 왔다. 아울러 B 마트와 C 마트에서도 A 마트에서처럼 일정 부분의 고객이 다시 찾았으며 일부는 빠져 나가고 일부는 들어왔다.

이 분석 결과로부터 한 주 후에 각 마트를 찾는 고객 수를 평가할 수 있을 것이다. 만약 다시 찾는 비율과 타 마켓으로 빠져나가는 비율 그리고 넘어 들어오는 비율이 일정하다면 계속적으로 주간 경과 마다 각 마트를 찾는 고객 수를 계산할 수 있을 것이다.

마트 A, B, C를 찾는 마트별 고객 수는 A0=200, B0=120, C0=180 이 된다. 일정하게 숫자가 유지되는 총고객수는 A0+B0+C0=200+120+180=500명이므로 첫 주에 각 마트별 고객 점유 확률을 계산해 보면 PA0=0.4, PB0=0.24, PC0=0.36이 된다.
한 주 후에 A, B, C 마트를 찾는 각각의 고객 수를 계산해 보자.

A1 = 200x0.8 + 120x0.2 + 180x0.1 = 202
B1 = 120x0.7 + 200x0.1 + 180x0.3 = 200x0.1 + 120x0.7 + 180x0.3 = 158
C1 = 180x0.6 + 200x0.1 + 120x0.1 = 200x0.1 + 120x0.1 + 180x0.6 = 140

이 3개의 계산식을 다음과 같이 매트릭스로 표현해 보자.

noname02.png

3x3 매트릭스(Transition Probability Matrix)를 이용하여 첫주 의 각 마트별 고객수데이타(current state)로부터 다음 주의 고객수 데이터(next state)를 산출할 수 있다.
첫 시작 A, B, C 마트의 고객 수 대신 고객 점유 확률을 대입하여 위의 매트릭스를 계산해 보자.

noname03.png

즉 current state를 바탕으로 transition probability matrix를 사용하여 next state를 계산할 수 있다.

매트릭스 계산이 상당히 머리가 아플 지경이므로 엑셀에서 처리해 보도록 하자.
3x3 transition 매트릭스와 첫째주 고객 점유 확률 3x1 매트릭스와의 곱을 위해서 3개의 계산결과를 저장할 부분을 클릭하여 영역을 지정해 준 후 수식 버튼을 누르고 들어가 수학/삼각을 선택하고 확인 버튼을 누른다.

noname04.png

MMULT 명령 창이 나오면 Transition 매트릭스를 크릭 지정하고 이어서 첫주 고객 점유 확률을 크릭 지정해 준후에 반드시 Xntr+Shitft+Enter 작업을 해주면 자동적으로 창이 닫히면서 결과가 출력된다.

noname05.png

Markov Chain 의 매트릭스 값들을 입력만 해두면 계산은 쉽게 된다. 명령 사용법을 잊지 말도록 하자.

둘째주 예측 값을 알면 세쩨주는 유사한 방식으로 계산하면 된다. 혹시 이런 조건 하에서 중국에서 롯데 마트 망하듯이 마트 중 하나가 고객 수가 0 이 되는지 의심스러워 바로 앞 확률 값을 이용하여 9주차까지 계산해 보았더니 망하는 것은 아니고 어느 정도 균형 값 즉 45%:35%:20%에 접근하는 듯하다. 즉 A 마트와 B 마트가 좀 뜨고 C 마트가 찌그러졌다.
noname06.png

흠 나름 재미난 발상인 듯하다. 아무래도 경영학과와 산업공학과에서 열심히 계산해 보는 문제 인듯하다. 얼릉 Markov Decision Process 로 넘어갈 채비를 해야 겠다.

마나마인로고.png

Sort:  

짱짱맨 호출에 응답하였습니다.

Coin Marketplace

STEEM 0.33
TRX 0.11
JST 0.034
BTC 66407.27
ETH 3219.07
USDT 1.00
SBD 4.34