모델 설계

모델링의 목적은 여러가지가 있겠지만, 일반적인 모델링의 목적은 미래에 대한 추정이다. 미래를 추정하는 방법은 여러가지가 존재한다. 전략 컨설팅에서는 전문가 의견 종합을 통해 추정하고, 통계청 및 경제 기관에서는 판매사원 의견 종합을 통해 선행지수를 예측한다. 또한, 고객과 맞닿고 있는 리테일에서는 고객에게 설문지를 돌리는 고객조사기법을 사용하기도하고, 데이터가 충분히 존재하는 곳에서는 회귀분석을 통한 기법도 활용한다.

목적값에 따른 Driver 선정 실시(모델링 설계)

  • 모델링 목적에 따라 타당하게 변수를 구성하였나: TOP-DOWN에 의해 설계된 모델링 로직이 맞는지 파악
  • 동일한 목적치를 구하더라도 여러개의 가능한 모델링 시나리오 존재 -> 프로젝트 목적에 가장 부합하는 시나리오 모델링 선정
    • 탑다운 방식 모델링이 타당할지, 바텀업 방식 모델링이 타당할지
    • 수요 측을 통한 Q 로직이 타당할지, 공급 측을 통한 Q 로직이 타당할지
    • 각 모델링을 통해 파악한 Value-Driver의 취득은 용이한지
  • 가장 High Level의 로직 고려 시, 단위를 맞추는 과정이 매우 중요하다. 예를 들어, SOEC 수전해 발전소 시장 규모를 모델링 한다고 할 때, SOEC 수전해 발전소 1기당 가격 * 향후 지어질 수전해 발전소 기수 로 모델링 하면 매우 멍청한 모델링이 된다. 왜냐하면 수전해 발전소 사이즈는 모두 제각각 일텐데 1기당 가격을 어떻게 균일하다고 가정할 것이며, 크기가 제각각이 기수를 단지 한 울타리에 있다고 1기로 인정할 수 있는지에 대한 의문이 들기 때문이다. 때문에 위와 같은 모델링에서는 SOEC 수전해 발전소 kw당 가격 * 향후 지어질 수전해 발전소 총 용량으로 단위를 맞추어 로직 설계해야한다.
  • 고객이 납득할 로직인가?

모델링의 두가지 방법: 탑다운, 바텀업

실제프로젝트에서 탑다운과 바텀업의 구분 중요성을 깨닳은 사례를 통해 각 프로젝트에서 더 맞는 방법의 모델링을 찾아보도록 하자. 이전 프로젝트에서 산업별(철강, 석유화학, 시멘트 등) 자가발전 중 수소 발전 용량 구하는 모델링을 실시한 경험이 있다.

탑다운 모델링의 경우

수소 발전 용량 = 산업별 전체발전용량 * 자가발전비율 * 무탄소발전비율 * 수소발전비율

위와 같은 식은 모집합에서 내려오는 모든 비율들을 구해야하기 때문에 무수히 많은 가정과 가설이 들어간다. 또한, 수소발전량이 직접적으로 구해지지 않아 직관적이지 않다.

바텀업 모델링의 경우

모집합에서 타겟을 쪼개 들어오는 탑다운 방식이 아니라, 바텀에 있는 값을 직접적으로 구해버리는 방법이다. 바텀업 모델링을 위해서는 왜 시장 Player 가 수소 발전을 하려고 하는지? 에 대한 동인(動因)을 고려하는 것이 핵심이다.

플레이어는 왜 수소 자가발전을 하려고 할까? 왜냐하면 탄소 발생량을 낮춰야 하기 때문이다. 그렇다면 수소 자가발전을 통해 얼마만큼의 탄소 발생을 절약해야하는 것일까? 이는 아래와 같은 바텀업 모델링으로 생각될 수 있다.

전체 탄소발생량 * (1-국가 허가한 탄소발생비율) * 탄소 절감에 필요한 재생에너지 발전량 * 수소발전비율

그외 탑다운과 바텀업 모델링의 예

  • 예1: 치약시장
    • 탑다운: 전체 미용 시장 * 치약시장
    • 바텀업: 전체인구 * 양치 가능한 인구비율 * 하루 양치 횟수 * 회당 치약 사용량
  • 예2: 뷰티 디바이스 시장
    • 탑다운: 20대 이상 여성인구 * 뷰티 디바이스 사용률
      • 20대 이상 여성인구 * f(소득, 잉여시간, 나이 등..)
    • 바텀업: 리프팅목적 뷰티디바이스 이용인구 + 여드름 흉터 제거 목적 뷰티 디바이스 사용 인구 + ...
      • 20대 이상 여성인구 * 주름발생률 * 리프팅디바이스사용률 + 20대 이상 여성인구 * 여드름 발병률 * 흉터남길 확률 * 흉터제거디바이스사용률...
    • -> 단, 바텀업으로 구성 시 사용 목적이 겹치거나 명확하지 않아 탑다운 방식으로 모델링 하는게 더 나을 수 있음

어느 정도 Sub-level 까지 변수 구조화할 것인가에 대한 고민

  • 어떤 드라이버는 그냥 상수를 가져 올 수도 있고, 어떤 드라이버는 더 깊이 들어가서 sub-sub-driver 까지 고민 필요
    • 생수 시장규모 = 전체인구 * 일주일 內 수 구매 인구 비율 * 생수 사먹는 횟수 * 1회당 구매하는 생수 mL
    • 일주일 內 생수 구매 인구 비율은 전문가한테 물어보고 가져올 것인가? 아니면 해당 Driver를 구성하는 sub-driver까지 더 깊게 팔 것인가?
    • 생수 구매 비율 = f(정수기 보유 비율, 외출시간, etc)

Driver로 설정한 값들을 어떻게 구할 것인가에 대한 고민

드라이버를 구조화한 후에는 정말 추정할 수 있는 값들인지에 대한 판단을 미리하는게 중요. 아무리 좋은 모델링이라 하더라도 현실적으로 구할 수가 없다면 모델 수정이 필요하기 때문.

해당 Driver가 정말 Top-Value와 상관관계가 있는지 파악

데이터를 통한 상관관계 분석법으로 하위의 subdriver가 top-value와 관계성이 있는지 파악하는 작업. 

[참고1] 논문을 통해 해당 시장에게 영향을 미치는 변수 취득

B2C 시장은 어떤 변수로 시장 사이즈가 변화하는지 명확하지 않다. 이에 각 종 논문에서 진행한 설문 및 통계 자료를 통해 주요 변수를 파악하고 모델링에 적용할 수 있다.

최근에 뷰티 디바이스 시장 규모를 추정했는데, 두세편의 논문을 통해 나이, 소득, 직업군이 유효한 영향을 미치는 변수라는 것을 확인했다. 이처럼 논문을 통해, 타겟 시장의 선택률에 영향을 미치는 요인들을 파악할 수 있다.

[참고2] B2C 시장 모델리의 경우 "시나리오" 따른 시장 규모 추정 필요

고급 고양이 식판 구매 비율을 추정한다고 할 때, 고양이 양육 인구 중 상위 20%만 구매할 경우, 상위 30%만 구매할 경우, 상위 40%만 구매할 경우로 케이스를 나누어 계산가능. 이때 각 숫자의 근거가 필요한데, 동일한 프리미엄 시장의 다른 제품을 통해 추정할 수 있다. 예를 들어, 고양이 프리미엄 사료는 전체 고양이 인구 중 10%만 먹인다고 하면, 고급 고양이 식판도 10%만 구매한다고 추론할 수 있을 것이다.
 
고양이 사료 시장 내 kg당 평균 가격이 2,000원이고 프리미엄 사료는 kg 당 4,000원 인데, 프리미엄 사료 시장의 일반 사료 시장의 10%를 점하고 있다면, 가격/kg 변수와 점유율 변수를 통해 2차함수를 구하고 이로써 프리미엄 시장이 갖는 기울기를 구해낼 수 있을 것이다. 이 기울기를 활용하여 고양이 식판 구매 비율을 추정하면, 훌륭한 모델링이 될 수 있다.

+ 여기에 고양이 식판 시장과 사료 시장의 차이를 만들어내는 변수를 파악해 변화량을 주면 가장 Best일 것.

정성데이터를 어떻게 정량화 시킬까에 대한 고민

Scoring 기법 (가중치 기법)

  • 예를 들어, A국의 한해 수소 생산량이 100만톤일 때, 한국으로 수출가능한 물량은?
  • 전체 수소 생산량 중 한국 向 수출률을 표현해야할 때, 고객한테 "그냥 한 20% 나올것 같은데요?" 라고 말할 수는 없음. 따라서 20%라고 주장할 수 있는 근거가 필요
  • 수소 생산하고 있는 프로젝트의 지분율 중 한국 기업의 차지하는 비중, 한국과의 물리적 거리(수소는 배로 운반하기 때문에 거리가 멀면 자연 소실 되므로), 판매자의 사업 목적 등의 지표에 Scoring
  • 판매자의 사업 목적 같은 정성 데이터는 "판매의지 높음(100점), 판매의지 중간(50점), 판매의지 낮음(0점)"처럼 Scroing하여 정량적 수치로 변환

표준분포 기법

  • 수소 생태계가 얼마나 잘 갖추어져 있는가를 판단하는 정성지표를 정량화 시킨다고 했을때, 각 국 보유 수소 프로젝트수에 따라 표준분포를 그리면 상위 %에 따라 Scoring 가능

Linear 및 Logistic 함수 활용한 예측 모델

  • 데이터가 충분할 시, 기존 데이터를 통한 선형 기법을 통해 독립변수의 종속변수 값을 구할 수 있음

바이너리 기법

  • Pass or Fail 기법으로 떨어뜨리거나 붙여주거나..

워터풀

  • 년도별 발생하는 사건이 언제까지 시작해서 언제 끝날 것인가를 나타낼 때 유용한 방법. 대표적인 예로 감가상각이 있다. '22년 CF가 100만원 발생하여 10년 동안 상각한다고 했을 때, '22년부터 '31년까지 10만원의 CAPEX가 나간다고 인식할 수 있을 것이며 '23년에도, '24년에도 증설로 인한 CF가 100만원씩 나가는 상황이라면 이를 표현하는 대표적 방법이 워터풀.

더 정확한 모델링을 위해 데이터를 가공하는 법에 대한 고민

Log함수

Log함수는 2가지 측면에서 Linear 보다 유용하다. 1. 현실 세계의 한계체감을 잘 반영하고 있다. 아무리 자본을 많이 쏟아부어도 어떤 한계점을 지나면 성장률이 더디다. 로그함수는 한계체감을 잘 표현할 수 있다. 2. 데이터가 편차가 커서 유의미한 모델링이 불가할 때 유용하다. 첫번째 테이블인 "여성 직종별 월평균 임금"에서 관리자와 그외 직종별 임금 편차가 매우 크다. 이때 임금을 독립변수로 사용하면 임금이 낮은 서비스종사자나 단순노무종사자 向 모델링이 심하게 왜곡될 가능성이 있다.

이때 활용할 수 있는 방법이 기존 raw데이터를 log처리 하는 것. 아래 테이블은 기존 임금 데이터를 1.01값으로 log 처리 하였다. 이에 따라 관리자 8,396 -> 단순 노무자 1,895의 편차가 관리자 908 -> 단순노무자 758로 변화하여 더 의미 있는 모델링을 할 수 있다.

행렬을 통한 연립 방정식 계산

종속변수 y값을 추론하기 위해 복수개의 독립변수 x를 선정할 수 있다. 이때 3개의 독립변수 x를 갖는 식을 처리한다고 가정하면 독립변수의 역행렬을 통해 a, b, c의 값을 추론할 수 있다.

aX1 + bX2 + cX3 = Y
aX4 + bX5 + cX6 = Y
aX7 + bX8 + cX9 = Y

X1 X2 X3 (a) = Y
X4 X5 X6 (b) = Y
X7 X8 X9 (c) = Y

어떤 Driver를 Bull Base Bear 로 설정할 지에 대한 고민

  • 모든 드라이버에 시나리오 넣는게 아니라, Impact Factor에 해당하는 변수들에 시나리오를 제공 해야함

어떤 매게 드라이버들을 더 추가하거나 뺄지에 대한 고민

매게 드라이버란 모델링에 주요 전제가 되는 Proxy 숫자들을 의미한다. 예를 들어, 수소의 에너지 전환율이 70%라고 하면 에너지 전환율이 매게 드라이버가 될 수 있다. 에너지 전환율을 낮추거나 높여서 다른 모델링 결과를 도출할 수 있는데 이러한 Impact Factor을 상수로 고정할지 아니면 변수로 Control 할지 고민해야한다.

Driver의 Top-Bottom 값에 대한 고민

  • 특정 Proxy를 통해 Cap값이 제공된다면 그 수치 아래서 모델링하면 되므로 편리함
  • 가령, 국가에서 예상한 매우 긍정적 시나리오의 향후 원자력 발전 비중이 20%라면 이러한 수치를 차용하여 모델이 20%넘지 않는 선에서 모델링 실시

엑셀 시트 분할

  • result
  • input: 주요 벨류 드라이버를 조정하는 시트
  • const: 변수 기입 시트
  • senario
  • calculation: 로직 및 계산이 기입되어 있는 시트로 본 시트의 모든 데이터는 他 시트 참조
  • reference: caculation시트에서 계산할 하부단의 로직들의 섞여있는 데이터 시트
  • rawdata: 인구, 금리 데이터, 수도세 데이터 등 로직 없이 Counting 해서 결과물이 이미 나와있는 데이터

모델검증

  • 정규분포, 표정정규분포를 활용하여 원하는 수치가 고루 분포되었는지 확인

모델링 팁

  • rawdata와 작성데이터는 다른 시트에서 관리 할 것
  • 작성데이터의 참조는 rawdata로 할 것
  • 타시트 참조데이터는 초록색, 동일 시트 함수데이터는 검은색, hardcoding 데이터는 파랑색으로 폰트설정할 것
  • 전체 줄금을 삭제하고 가로줄만으로 표시할 것
  • 데이터는 추세선을 그려가며 진위를 확인해볼 것
  • 한 시트에 여러 테이블을 만들어야 하는 상황에는 엑셀 테이블 만들기기능 이용할 것: 테이블 당 필터링 가능
  • 가정해야하는 변수가 더 적은 모델(less is more)
  • 고객들은 숫자 하나하나 매우 민감하며 사소하다고 판단되는 숫자에도 근거가 존재할 것
  • 모델링은 엑셀로 수행하기에 코딩으로는 쉽게 해결할 수 있는 Technical한 문제를 해결할 수 없는 경우가 많다. 대표적으로 엑셀은 루프기능이 없으며, 값을 변수에 담을 수 없다. 루프와 변수 저장 기능을 모두 셀단위로 처리해야 하는 것이다.

+ Recent posts