61
Collaborate with JUICY

[분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

Embed Size (px)

Citation preview

Page 1: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

Collaborate with JUICY

Page 2: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

뜨거운 여름이면

시원한생과일 주스한 잔이 생각난다.

Page 3: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

하지만 그런 것은우리에게

있을 수가 없어.

Page 4: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

사람들이 몰리는 시간을피할 수 없을까?

Page 5: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

그래서 이 프로젝트를 시작하게 되었습니다.

Page 6: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

서로 다른세 분야의 만남

뀨잉뀨잉

Page 7: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

지금부터시작합니다.

대기행렬

회귀분석

시뮬레션

고해성사

1 2 3 4

Page 8: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작
Page 9: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

“ 운전을 하다 보면 내 차선은 별로 움직일 기미가 안 보이는데, 옆 차선 차들은 꾸준히

앞으로 나가고 있는 것을 보게 된다. 무리하게 차선을 바꿨더니 이제 상황이 뒤바뀐다. ”

정재승의 과학콘서트 ‘교통의 물리학 : 복잡한 도로에서 차선을 바꾸지 마라’ 中

Page 10: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

Ch 1. 기다림에 대한 이해

대기행렬

Page 11: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

환자 차량 부품

의사 신호 노동자

진료 통제 조립

대 기행 렬

1. 생활 속의 대기행렬

음료를 주문한 고객

쥬 시

믹서기 모터

음료 제공

Page 12: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

대 기행 렬

2. 대기행렬의 각 요소들

도착 특성

도착률 분포

포아송

기타 (지수분포등)

도착 패턴

랜덤형

계획형

투입량

제한

무제한

도착유형

서비스까지 기다림

Balk & Renege

Page 13: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

도착 유형에따라

Number of arrivals / time : 포아송

Inter-arrival time : 지수분포

Balk : Line was too long!

Renege : I give up!

서비스 유형에 따라

Service time : 지수분포

때로는포아송 쓰기도

대 기행 렬

2. 대기행렬의 각 요소들

Page 14: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

대 기행 렬

2. 대기행렬의 각 요소들

대기열 특성

대기열의 길이

제한

무제한

서비스 원칙

FIFO

기타

Page 15: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

대 기행 렬

2. 대기행렬의 각 요소들

서비스시설 특성

채널의 수

단일

다중

채널당 단계

단일

다중

서비스 시간 분포

음의 지수분포

기타

Page 16: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

Single-channel, Single-phase system

Single-channel, Multi-phase system

Multi-channel, Multi-phase system

대 기행 렬

3. 대기행렬의 유형

Service 떠남도착

떠남도착 Phase 1 Phase 2

떠남도착

Phase 1Channel 1

Phase 1Channel 2

Phase 2Channel 1

Phase 2Channel 2

Page 17: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

대 기행 렬

3. 대기행렬의 유형

Channel 1

Channel 2

Channel 3

Channel 4

대기행렬(음료 기다림)

서비스 시설(믹서기 모터)

떠남도착

(결제 직후)

쥬시의 대기행렬은 주문대기와 수령대기로

원칙적으로는 Single & Multi-channel, Multiphase system 에 가까우나,

주문대기 시간이 짧은 관계로 수령 대기행렬만 감안하기로 하였다.

뀨잉뀨잉의 대기행렬 모델은

Multi-channel, Single-phase system

위 모델에서는 Balk와 Renege가 드물다.

M/M/4매장마다 4개 보유

1인 1음료 가정

Page 18: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

대 기행 렬

4. 대기행렬 모형의 가정

FIFO먼저 들어온 순서대로제공된다.

도착은 독립적

도착은 이전의 도착과는독립적이다.

도착은 포아송

도착률은 포아송확률분포에 의해 설명되며, 고객들은 매우 많은인구에서 온 것이다.

서비스도 독립적

서비스 시간은 고객마다다양하며 독립적이다.평균은 알려져 있다.

음의 지수분포

서비스 시간은음의 지수 확률 분포에의해 설명된다.

서비스 > 도착

서비스 비율은도착 비율 보다 크다.

Page 19: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

대 기행 렬

4. 대기행렬 모형의 가정

FIFO먼저 들어온 순서대로제공된다.

도착은 독립적

도착은 이전의 도착과는독립적이다.

도착은 포아송

도착률은 포아송확률분포에 의해 설명되며, 고객들은 매우 많은인구에서 온 것이다.

서비스도 독립적

서비스 시간은 고객마다다양하며 독립적이다.평균은 알려져 있다.

음의 지수분포

서비스 시간은음의 지수 확률 분포에의해 설명된다.

서비스 > 도착

서비스 비율은도착 비율 보다 크다.

조사 결과 서비스 시간(음료 제공 시간) 평균은 4분이며 변동이 적다.

다만, 주문이 누적될수록 시간 단축 효과가 있어 반영해야 한다.

시간당 고객 도착을 알아내면 시뮬레이션이 가능하다.

Page 20: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

여기서 잠깐,

쥬시를 선택한 이유?

Page 21: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

쥬시를 선택한 이유?

1. 상업 프로젝트 2. 메뉴의 일관성 3. 대기열 생성

4. 조사의 용이성 5. 이슈 & 친밀도

Page 22: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작
Page 23: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

“ 통계학자는예술가와 같아서 자신의 모델과 사랑에 빠지는 나쁜 습관이 있다. ”

통계학자 조지 E. P. 박스

Page 24: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

Ch 2. 데이터와의 대화

회귀분석

Page 25: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

1인 1음료라는 가정 하에

시간당 고객 도착은시간당 판매량으로 치환 가능하다.

음료

Page 26: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

판매잔 수

기온시간

유동인구 강수 여부

회 귀분 석

1. 데이터 수집

Page 27: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

판매잔 수POS 데이터직접 수집

기온기상청데이터 실시간크롤링

시간시스템 내 시간 호출

유동인구스마트 서울앱 데이터 수집

강수 여부범주형으로 직접 입력

회 귀분 석

1. 데이터 수집

Page 29: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

신촌점

이화여대점

성균관대점 성신여대점

고려대점

경희대점

시립대점

숭실대점

강남구청점

강남역 | 경희대점 | 고려대점 | 성균관대점 | 성신여대점 | 숭실대점 | 시립대점 | 신촌점 | 이화여대점

서울시 대학 주변 9개 지점 조사

회 귀분 석

1. 데이터 수집

Page 30: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

3

33

59

4624158

월에서

월까지

곳에서

일치를 수집한 결과

개의 데이터가 지점별로 모였고

개의 데이터를 분석하게 되었다.

회 귀분 석

1. 데이터 수집

Page 31: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

시간시스템 내 시간호출

오전

8 ~11

오후

11 ~ 17

저녁

17 ~ 22

프로그램에서는 실시간으로받아오지만

회귀분석 처리에서는 유동인구 데이터 문제로 범주형으로간주한다.

회 귀분 석

2. 데이터 가공

Page 34: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

강수 여부범주형으로 직접 입력

회 귀분 석

2. 데이터 가공

Q. 강수량이 아니라 범주형인 강수 여부로 정한 이유?

A. 3월에서 5월사이의 강수를 보게 되면 비가 온 횟수가 적고, 강수량이 적기 때문에 강수량으로

판단하기 보다는 강수의 유무로 판단하는 것이 더 좋은 결과를 얻을 수 있다고 생각했다.

A. 강수는 밖에서 기다릴 때 영향을 미치는데, 이는 양의 문제가 아니라 강수 여부의

문제이기 때문이다. 실제로 강수 여부가 더 유의미하게 나왔다.

Page 35: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

회 귀분 석

3. 회귀분석 및 평가

GLM

log(판매량) = α + β1기온 + β2유동인구 + β3강수 + β4시간랜덤성분(RC) : y~poi

체계적성분(SC) : 일차선형

연결함수(LF) : log

Value/DF 0.88 유의수준 0.05하에서 변수들이 유의함

평가

Page 36: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

유동인구 1명

증가 시

판매량 약 0.03% 증가

기온 1℃

증가 시

판매량 약 0.16% 증가

비가 오지 않은 날

오는 날대비

판매량 약 3.7% 증가

회 귀분 석

4. 회귀분석 결과

log(판매량) = 4.1392 + 0.0017기온 + 0.0003유동인구 + β3강수 + β4시간

Page 37: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

회 귀분 석

4. 회귀분석 결과

-0.4

-0.2

0

0.2

0.4

0.6

0.8

8 9 10 11 12 13 14 15 16 17 18 19 20 21

시간당판매량 (21시대비)

비율

Page 38: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작
Page 39: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

데이터를 수집하기에 열악한 상황이었지만

시간당 판매량을 구하는 회귀식이 각 지점별로완성되었다.

이제 시뮬레이션을 해보자.

Page 40: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작
Page 41: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

“야구에 만약이란 건 없습니다. 만약이란 걸 붙이면 다 우승하죠. ”

야구선수 정수근 MBC ESPN 인터뷰 中

Page 42: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

Ch 3. 후회 없는 시나리오

시뮬레이션

Page 43: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

대기행렬 모델을 통한 컨설팅 제공

Queuing Queuing

How to do

Page 44: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작
Page 45: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작
Page 46: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

대기행렬 모델을 통한 컨설팅 제공

Queuing Queuing

Page 47: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

대기행렬 모델을 통한 컨설팅 제공

Queuing Queuing

참 쉽죠?

Page 48: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

시 뮬레 션

STEP 1. 크롤링 및 회귀분석

NokogiriOpen-uri

시스템 내시간 정보

입력한 날씨, 지점 정보

기상청 기온크롤링

유동인구범주 체크

실측값 최대최소 범위 내균등분포로 유동인구 뽑아냄

지점별 회귀식 변수에 넣어 시간당 판매량 계산

(시간당 고객 도착 평균)= 시뮬레이션 시간(60) / 시간당 판매량λ

사용자의입력

3단계(시뮬레이션 단계)로 전달

Page 49: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

시 뮬레 션

STEP 2. 균등분포 및 지수분포 함수

유동인구 실측 값의 최대 최소 범위 내에서 유동인구를 뽑아낼 균등분포를 발생시키는 함수 코딩

도착시간과 서비스 시간을 누적할 때마다 불러올 지수분포를 발생시키는 함수 코딩

균등분포함수

유동인구추출

STEP 1에서 요구

도착 시간

지수분포함수

STEP 1의값을 기준으로

STEP 3에서도착 시간

포아송 분포발생

서비스 시간

지수분포함수

실측 기준 평균 4.0

도착 시간빠를수록

서비스 시간감소

발생범위 0.34 ~ 0.4로 제한

1단계(회귀분석 - 유동인구)와 3단계(시뮬레이션 단계)에서 호출이 있을 때마다 실행

Page 50: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

시 뮬레 션

STEP 3. 시뮬레이션 단계0에서 시작하여 60분이 될 때까지 시간을 누적시키며 시뮬레이션 합니다.

도착

서버1

서버2

서버3

서버4

0 60

도착 간격은 지수 분포로 발생시킴

버퍼 서버 수를 초과하면 버퍼로 이동 비어있는 서버에 바로 들어간다

도착해서 떠나기까지 걸린 시간누적 대기인원 계산

메인변수 선언 : 처리량(시간당 판매량), 평균 인원, 평균 대기시간

STEP 1 에서 λ 받음 → STEP 2 도착 시간 함수에서 λ 기준으로 지수 분포 발생

① 서버가 비어있으면 서비스 제공 → STEP 2 서비스 시간 함수에서 평균 4.0 기준으로 지수분포 발생

→ 서비스 시간 지나면 떠난 것으로 간주, 서버가 열림

② 서버가 차있으면 버퍼에 쌓임 → 서버 열릴 때까지 대기(누적 인원과 시간 기록) → 서버 열리면 투입

Page 51: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

Program Execution.

Page 52: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

http://boaz-chocodelesson1.c9users.io

Page 53: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

클릭하세요

Page 54: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

날씨 고르고

지점 고르고

마지막으로돌려돌려뀨잉뀨잉

Page 55: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

주문 이후 음료 받을 때까지

주문 이후 내 앞의 대기 인원

Page 56: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작
Page 57: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

아직 안 끝났습니다.

Page 58: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

Ch 4. 좌절의 벽

고해성사

Page 59: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

한계점

시뮬레이션 특성상근사를 목적으로 하지만 정확의 개념과는 거리가 있다.

가능한 모든 변수를 반영하면 오히려 역효과가 나기도 하며 반영할 수도 없기 때문이다.

이러한 시뮬레이션의 특성을 감안하더라도 데이터와 구현 수준에서제약 조건이 많아

한계가 있었다. (데이터 확보, 계절 반영 불가, 메뉴 다양성 등)

데이터 자체보다는 그것을 가공하고 서비스로 만드는과정에 주목하셨으면 한다.

아직 Demo 버전이지만 이후 데이터가 추가로확보되고 전문가에 의해 보완된다면

좋은 서비스로 거듭날 것.

Page 60: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작

감사합니다.

Page 61: [분석] 회귀 분석 및 시뮬레이션 모델에 기반한 웹서비스 제작