0.0.1 Data input


로지스틱회귀,의사결정나무,랜덤포레스트,인공신경망 ***

0.1 Summary

본 연구의 목적인 온라인 해외 패키지 상품 예약고객 이탈여부에 관한 분류(취소=0, 출발=1)결정에 영향을 미치는 요인을 확인해 보면 ‘10대’를 기준으로 ‘20대’에서 모든 연령대는 취소될 가능성이 높았는데 이는 ‘10대’ 경우 실제 본인이 정확한 일정과 가격비교를 통해서 예약했기 때문에 타 연령층보다 이탈 가망성이 낮은 것으로 해석할 수 있다. 이는 온라인 패키지 여행상품 중 중장년층들이 예약이 많은 노선, 상품속성은 일정표상에 타사대비 경쟁우위 특징을 명확히 명시하는 것이 대안으로 생각할 수 있다. 총 6단계의 PKG 등급 중 무등급이 타 등급에 비해 취소 가능성이 매우 높으며, 콜센터(SCF), 닷컴(PC), 모바일 3개의 예약채널 중 닷컴, 모바일 채널 예약이 콜센터 예약보다 취소 가능성이 높다는 것은 PKG등급이 높은 고객일수록 충성도가 높기에 취소 가망성이 상대적으로 낮고, 상담 없이 온라인에 명시된 일정과 가격만으로 예약한 고객은 정확한 상품 설명 및 조건 확인이 안 된 경우가 많아서 취소 가망성이 높은 것으로 해석할 수 있다.

결국, PKG 무등급 고객이 등급 상향될 수 있도록 PKG 이용 횟수를 늘리는 것이 원초적인 방법이 될 수 있는데 이는 첫 고객 이벤트 혹은 프로모션을 통해서 온라인으로 유입된 첫 이용자를 락인(Lock-in)시키는 전략이 시급히 필요한 것으로 풀이된다. 또한, ‘20일 이상’ 리드타임을 가진 온라인 예약 경우, 충분히 타 경쟁사로 이탈될 가능성이 있기에 이 또한 예약과 동시에 결제를 하거나 최저가 보상제 등 온라인 고객이 이탈되지 않도록 지속적인 이벤트 및 마케팅 활동이 요구된다.

반대로 승산비가 1보다 큰 것 중 주목할 만한 변수로 상품 속성 중 배낭여행, 에어텔 상품속성이 타 상품 속성에 비해 출발할 가능성이 매우 높은 것으로 확인되는데 기성상품인 일반 패키지와 달리 항공과 호텔만으로 구성된 자유여행상품은 온라인 소비자가 사전 가격비교에서 정해진 개인 일정에 출발해야하기 때문에 일반 패키지보다는 취소율이 적을 것으로 예측된다.

본 연구의 목적인 온라인 해외 패키지 상품 예약고객 이탈여부에 관한 분류(취소=0, 출발=1)결정에 영향을 미치는 요인으로 본 연구의 관심영역인 취소로 분류될 가능성이 매우 높은 변수들을 확인할 수 있었다. 온라인 여행상품 예약자들이 이탈되지 않도록 첫 고객 프로모션, 이벤트 혹은 타 경쟁사 대비 자사 상품의 경쟁우위 특징을 온라인 채널에서 각인시켜서 이탈을 방지하는 다양한 마케팅 전략은 항상 고민되어야 하고 실행되어야 한다고 판단한다. 더불어 온라인으로 유입된 고객 중 어떤 유형의 고객이 이탈 가능성이 높은지를 실시간으로 모니터링할 수 있도록 기업 전사 BI(business identification) 시스템 차원에서 온라인 고객 유입 패턴에 대한 데이터를 실시간 수집 및 저장하고, 이 데이터를 가장 효과적이고 효율적인 방법으로 활용하여 적절한 의사결정을 할 수 있는 시스템이 또한 요구되어진다.

즉, 온라인으로 유입된 고객이탈을 줄이기 위한 기업의 노력은 전사 차원에서 고객 이탈에 대한 위험성을 인지하고 비즈니스 인사이트를 가진 직원들이 최소한 자사 고객 데이터를 수집 및 가공하여 올바른 마케팅 의사결정을 내릴 수 있도록 지원하는 시스템 및 분석기술을 갖추어야 한다.

0.2 Goal

온라인 패키지 상품 취소고객과 어떤 요인들이 상관관계가 있는지 주요 변수를 탐색하고, 데이터마이닝 기법을 통하여 사전 고객이탈 분류 및 예측 분석한다.

0.3 Process

본 연구 데이터 자료는 H사의 예약정보 데이터를 바탕으로 연구진행 선행 연구를 통하여 고객 이탈을 ‘고객취소’로 정의하여 반응 변수인 취소에 영향을 주는 설명변수들을 H사 상품,예약,고객 데이터 마트에서 추출함

research

research

0.4 탐색적 데이터 분석(EDA)

0.4.1 기술통계

탐색적 데이터 분석의 주요 목적은 데이터를 이해하는 것이다. 반응변수인 ‘온라인 여행상품 고객취소 여부(Target)’의 ‘취소(0)’와 ‘‘온라인 여행상품 고객취소 여부(Target)’의 ‘취소(=0)’와 ‘출발(=1)’에 따른 각 설명변수의 기초통계는 아래와 같다.


              Descriptive Statistics by '출발여부'              
_____________________________________________________________ 
                                 0             1          p  
                             (N=47979)     (N=761588)  
------------------------------------------------------------- 
   예약채널                                                 0.000
    - 닷컴SCF                9108 (19.0%)  244691 (32.1%)      
    - 닷컴SCO                18237 (38.0%) 259061 (34.0%)      
    - 모바일SCO               20634 (43.0%) 257836 (33.9%)      
  성별                                                    0.000
   - F                     30768 (64.1%) 468940 (61.6%)      
   - M                     17211 (35.9%) 292648 (38.4%)      
  연령대                                                   0.000
   - 00to18                1940 ( 4.0%)  69350 ( 9.1%)       
   - 19to43                18456 (38.5%) 235176 (30.9%)      
   - 44to63                24114 (50.3%) 379693 (49.9%)      
   - 64more                3469 ( 7.2%)  77369 (10.2%)       
  PKG등급                                                 0.000
   - 1_VVIP                 63 ( 0.1%)    979 ( 0.1%)        
   - 2_VIP                  881 ( 1.8%)  18562 ( 2.4%)       
    - 3_우수                 3032 ( 6.3%)  77027 (10.1%)       
    - 4_일반                 4373 ( 9.1%)  106910 (14.0%)      
    - 5_1회성                15698 (32.7%) 514258 (67.5%)      
    - 6_무등급                23932 (49.9%) 43852 ( 5.8%)       
   상품브랜드                                                0.000
   - ZEUS                   37 ( 0.1%)    1260 ( 0.2%)       
      - 브랜드미적용              249 ( 0.5%)   3589 ( 0.5%)       
     - 이세이브팩               11585 (24.1%) 172185 (22.6%)      
    - 하나free               4345 ( 9.1%)  53171 ( 7.0%)       
     - 하나골프                 773 ( 1.6%)  13702 ( 1.8%)       
     - 하나크루즈                29 ( 0.1%)    535 ( 0.1%)        
       - 하나트레킹&레포츠          91 ( 0.2%)    982 ( 0.1%)        
    - 하나팩                  26692 (55.6%) 453322 (59.5%)      
      - 하나팩프리미엄            3970 ( 8.3%)  57011 ( 7.5%)       
     - 하나허니문                208 ( 0.4%)   5831 ( 0.8%)       
   상품속성                                                 0.000
    - 골프                    760 ( 1.6%)  13005 ( 1.7%)       
    - 레포츠                   35 ( 0.1%)    411 ( 0.1%)        
     - 박람회&학회                3 ( 0.0%)    166 ( 0.0%)        
     - 배낭여행                 40 ( 0.1%)    572 ( 0.1%)        
    - 에어텔                  4328 ( 9.0%)  52777 ( 6.9%)       
     - 인센티브                 489 ( 1.0%)  15254 ( 2.0%)       
      - 종교문화탐방              15 ( 0.0%)    381 ( 0.1%)        
    - 크루즈                   30 ( 0.1%)    541 ( 0.1%)        
     - 트랙/트레킹               56 ( 0.1%)    563 ( 0.1%)        
    - 패키지                  41991 (87.5%) 671729 (88.2%)      
    - 허니문                   232 ( 0.5%)   6189 ( 0.8%)       
   리드타임                                                 0.000
    - 5일이하                  276 ( 0.6%)   6112 ( 0.8%)       
    - 6일~10일               1225 ( 2.6%)  29993 ( 3.9%)       
    - 11일~20일              4989 (10.4%)  120901 (15.9%)      
    - 21일~30일              6138 (12.8%)  141897 (18.6%)      
    - 31일~180일             34624 (72.2%) 456831 (60.0%)      
    - 180일이상                727 ( 1.5%)   5854 ( 0.8%)       
   상품특성                                                 0.000
      - 온라인전용가격             70 ( 0.1%)    623 ( 0.1%)        
     - 일반가격                24982 (52.1%) 395053 (51.9%)      
     - 일반가격 & DEPO         1230 ( 2.6%)  20607 ( 2.7%)       
      - 일반가격 & 신청금         1228 ( 2.6%)  16285 ( 2.1%)       
     - 특별가격                16477 (34.3%) 260793 (34.2%)      
     - 특별가격 & DEPO         1749 ( 3.6%)  32189 ( 4.2%)       
      - 특별가격 & 신청금         2243 ( 4.7%)  36038 ( 4.7%)       
    상품출발요일                                              0.000
   - 월                     6047 (12.6%)  94915 (12.5%)       
   - 화                     5543 (11.6%)  87534 (11.5%)       
   - 수                     7458 (15.5%)  122771 (16.1%)      
   - 목                     7030 (14.7%)  118698 (15.6%)      
   - 금                     6765 (14.1%)  113693 (14.9%)      
   - 토                     8579 (17.9%)  122062 (16.0%)      
   - 일                     6557 (13.7%)  101915 (13.4%)      
    상품예약요일                                              0.000
   - 월                     8887 (18.5%)  151545 (19.9%)      
   - 화                     8107 (16.9%)  133277 (17.5%)      
   - 수                     7611 (15.9%)  126947 (16.7%)      
   - 목                     6969 (14.5%)  116790 (15.3%)      
   - 금                     6698 (14.0%)  107456 (14.1%)      
   - 토                     4524 ( 9.4%)  62657 ( 8.2%)       
   - 일                     5183 (10.8%)  62916 ( 8.3%)       
   결제수단                                                 0.000
    - ARS카드                9874 (20.6%)  229488 (30.1%)      
   - KICC                   56 ( 0.1%)    992 ( 0.1%)        
   - KS-NET                16343 (34.1%) 197998 (26.0%)      
   - NICE                   26 ( 0.1%)    551 ( 0.1%)        
     - 가상계좌                16569 (34.5%) 270472 (35.5%)      
      - 개인마일리지             3298 ( 6.9%)  38782 ( 5.1%)       
      - 결제통합 - KICC모바일       3 ( 0.0%)     63 ( 0.0%)        
       - 결제통합 - 카카오페이       984 ( 2.1%)  10549 ( 1.4%)       
      - 결제통합 - 페이코          585 ( 1.2%)   7743 ( 1.0%)       
    - 은행                    100 ( 0.2%)   1294 ( 0.2%)       
      - 자사외상품권              28 ( 0.1%)    995 ( 0.1%)        
      - 하나투어상품권             113 ( 0.2%)   2661 ( 0.3%)       
------------------------------------------------------------- 

위 데이터 셋은 상품/예약 데이터 셋이며 2019년 출발일 기준으로 온라인 예약(H사 PC, Mo, 콜센터)채널에서 예약한 모든 패키지 상품 이용고객이며 FIT 상품은 제외하였다. 결측 치를 제외한 전체 데이터는 809,567이며 취소고객이 전체 6%인 이유는 예약일 기준이 아닌 출발일 기준으로 데이터 마트에서 추출되었기 때문이다. 그러나, 최소 데이터가 약 5만개 데이터양이기 때문에 분석에 용이하다고 판단하였다. 출발여부에 따른 설명변수의 빈도크기를 살펴보면, 출발고객 채널 점유율 대비 취소고객 중 닷컴(pc), 모바일 채널에서 취소고객 점유율이 10% pont이상 차이가 보였다.

<예약채널별 출발여부 빈도>

그 외 취소고객 중 20~30대, PKG 무등급, 31일~ 180일 리드타임 고객이 출발한 고객보다 현저히 높은 점유율을 보이고 있다. 전체 데이터에서 취소고객 데이터만을 추출하여 예약시간에 따른 취소고객 누적 분포를 아래 그림에서 살펴보면 대부분 오전, 오후 및 저녁 시간대 취소 고객이 많았지만 새벽시간대 예약한 취소고객도 확인할 수 있다.

<취소고객 예약시간 별 취소고객 누적 현황>

`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

또한, 취소고객 중 PKG 등급에 따라 예약 시간대 별 상품 속성 예약현황을 살펴보면, 대부분 상품속성이 오후시간에 예약한 반면 골프, 레포츠, 에어텔, 허니문은 새벽에 예약한 취소고객이 타 속성보다 많으며 골프는 VIP에서 무등급까지 다양한 PKG등급 고객이 예약하고 취소하였지만 허니문과 트레킹 테마 상품은 PKG 1회성 및 무등급 고객이 새벽에 온라인 예약하고 취소하는 이상치를 보였다. 즉, PKG ‘무등급’과 ‘1회성’ 고객층이 취소가 많았으며 취소 상품속성은 일반 패키지 상품을 제외한 전 상품 속성이 해당되었다. 또한, 늦은 밤이나 새벽에 예약한 취소 고객의 여행상품은 골프, 에어텔,인센티브 등에서 이상치를 확인할 수 있었다.

<취소고객 PKG등급에 따른 예약시간별 상품속성 현황>

상품/예약 데이터 셋에 고객 데이터 마트에서 추출된 고객 데이터를 고객번호 기준으로 통합하여 연 1회 이상 패키지 상품 이용고객으로 추출하여 취소 및 출발 고객 패턴을 분석해 보았다. 일반적으로 탐색적 데이터 분석은 시각화가 주를 이루지만, 시각화에 대한 결과를 조금 더 통계학적으로 검증하기 위하여 t-test 혹은 ANOVA분석을 사용한다. 하지만, 보통 탐색적 분석을 위해서는 데이터 탐색이기 때문에 탐색차원에서 결과를 확인하는 정도로 많이 활용한다. ‘출발여부’ 반응변수 수준이 취소, 출발 2개이기 때문에 t-test로 확인하였으며 차이가 크게 나는 변수로 수치형 변수인 예약 건당 ‘객단가’ 파생변수로 분석한 바, 통계 값은 유의한 결과를 보였다.

<출발여부 별 상품 객단가 t-test>


    Welch Two Sample t-test

data:  객단가 by 출발여부
t = -3.028, df = 100.69, p-value = 0.003127
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -358052.0  -74600.1
sample estimates:
mean in group 0 mean in group 1 
        1100377         1316703 

좀 더 이해를 돕기 위해 시각적으로 표현하면 취소고객(0), 출발고객(1) 모두 온라인 여행상품 패키지 건당 평균 객단가에서는 차이가 보이지 않았으나 취소고객 대비 출발한 고객의 건당 상품 가격 분포가 훨씬 더 넓은 것으로 확인할 수 있다. 이는 취소고객의 상품이 단거리 및 다소 낮은 상품가격에 집중된 것으로 해석할 수 있다.

<출발여부에 따른 상품 객단가 현황>

또한, 출발여부에서 ‘출발일별’ 변수를 추가하여 출발일별 취소고객(0)과 출발고객(1)의 상품 건당 ‘객단가’ 패턴과 ‘연령대’ 분포도를 보면 성비수기 구분 없이 전체적인 데이터가 고루 분포된 반면 취소고객은 1분기와 3분기와 40~50대 고객이 더 많이 관찰되고 있다.

<출발여부에 따른 출발일별 객단가, 연령대 분포>

0.4.2 최종변수선택

탐색적 데이터 최종 분석 단계는 최종 변수 선택 및 변수의 특질을 추출하는 단계로 반응변수와 관계가 있는 유의미한 설명변수들을 선택하고 분석목적에 따른 자료의 변수를 추출하는 것이다. 즉, 데이터 탐색이후 실제 분류/예측모형으로 진행하기 전에 각 변수 중에서 유의한 변수를 확인해야 한다. 본 연구의 데이터 셋 변수가 대부분 범주형 변수이기에 카이제곱 검정을 실시하였으며 설명변수 17개 중 ‘최초예약상태코드’만 제외하고 모두 p-value가 유의미한 것으로 확인할 수가 있다. 여기에 수치형 변수인 ’예약시간’ 변수를 포함하여 상품/예약 데이터 셋으로 최종 분류 모형을 실행하였다.

<범주형 변수 카이제곱 검정 결과>

               Cols       P_value
1            연령대  0.000000e+00
2              성별  6.484786e-29
3           FIT등급 8.106745e-164
4           PKG등급  0.000000e+00
5          예약채널  0.000000e+00
6        상품브랜드 2.256241e-120
7              노선 8.134638e-233
8          상품속성 1.629488e-121
9          출발항공  0.000000e+00
10 최초예약상태코드  1.000000e+00
11         리드타임  0.000000e+00
12         상품특성  3.689527e-19
13     상품출발요일  6.404253e-31
14     상품예약요일 4.095939e-108
15         카드결제  4.872515e-03
16      은행.카드사 1.597990e-156
17         결제수단  0.000000e+00

<최종 모델링 변수>

 [1] "출발여부"     "연령대"       "성별"         "FIT등급"      "PKG등급"     
 [6] "예약채널"     "상품브랜드"   "노선"         "상품속성"     "출발항공"    
[11] "리드타임"     "상품특성"     "상품출발요일" "상품예약요일" "카드결제"    
[16] "은행.카드사"  "예약시간"    

0.5 온라인 여행상품 이탈고객 분류/예측분석

0.5.1 로지스틱 회귀

온라인 여행상품 이탈고객 분류/예측 분석을 위한 로지스틱 회귀 모형분석으로 먼저 탐색적 데이터 분석단계에서 추출된 데이터를 Train 70%, Teat 30%으로 Sampling하였으며, 세분화 기준은 반응변수인 ‘출발여부’(취소=0, 출발=1) 이산형 변수로 나누었다. 층화 추출된 데이터는 1.로지스틱 회귀분석 모형 수행 2.유의한 변수 선택 3.예측 인자 (Odds ratio) 확인 4.모형 평가_ 오분류표, ROC 그래프 총 4단계 순으로 모형 구축 진행되었다. 단계적 변수 선택에 따른 유의한 설명변수는 <표 11>와 같으며, 범주가 많은 (10개 이상) 범주 형 변수인 ‘FIT등급’, ‘은행.카드사’, ‘출발항공’, ‘상품출발요일’ 4개 설명변수를 제외한 12개의 설명변수가 선택되었다.

<단계적 변수선택 방법에서 추출된 설명변수>


Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union

Attaching package: 'reshape'
The following object is masked from 'package:dplyr':

    rename

********************************************************
Note: As of version 1.0.0, cowplot does not change the
  default ggplot2 theme anymore. To recover the previous
  behavior, execute:
  theme_set(theme_cowplot())
********************************************************

Attaching package: 'cowplot'
The following object is masked from 'package:reshape':

    stamp
corrplot 0.84 loaded
Loading required package: lattice

Attaching package: 'lattice'
The following object is masked from 'package:moonBook':

    densityplot
Loading required package: grid
Registered S3 method overwritten by 'quantmod':
  method            from
  as.zoo.data.frame zoo 
randomForest 4.6-14
Type rfNews() to see new features/changes/bug fixes.

Attaching package: 'randomForest'
The following object is masked from 'package:dplyr':

    combine
The following object is masked from 'package:ggplot2':

    margin

Attaching package: 'class'
The following object is masked from 'package:reshape':

    condense
Loading required package: carData

Attaching package: 'car'
The following object is masked from 'package:dplyr':

    recode
Type 'citation("pROC")' for a citation.

Attaching package: 'pROC'
The following object is masked from 'package:gmodels':

    ci
The following objects are masked from 'package:stats':

    cov, smooth, var
Start:  AIC=168755.1
출발여부 ~ 연령대 + 성별 + PKG등급 + 예약채널 + 상품브랜드 + 
    노선 + 상품속성 + 리드타임 + 상품특성 + 상품예약요일 + 카드결제 + 
    예약시간

               Df Deviance    AIC
<none>              168641 168755
- 예약시간      3   168661 168769
- 상품예약요일  6   168669 168771
- 카드결제      1   168663 168775
- 성별          1   168674 168786
- 상품특성      6   168705 168807
- 상품브랜드    9   168757 168853
- 상품속성     10   168772 168866
- 노선          5   168989 169093
- 연령대        3   169462 169570
- 예약채널      2   169884 169994
- 리드타임      5   170425 170529
- PKG등급       5   246098 246202

Call:  glm(formula = 출발여부 ~ 연령대 + 성별 + PKG등급 + 예약채널 + 
    상품브랜드 + 노선 + 상품속성 + 리드타임 + 상품특성 + 상품예약요일 + 
    카드결제 + 예약시간, family = "binomial", data = train)

Coefficients:
                (Intercept)                 연령대19to43  
                  4.4410933                   -0.8381502  
               연령대44to63                 연령대64more  
                 -0.9027756                   -0.6821462  
                      성별M                 PKG등급2_VIP  
                  0.0862018                    0.1641218  
              PKG등급3_우수                PKG등급4_일반  
                  0.3413435                    0.1591148  
             PKG등급5_1회성              PKG등급6_무등급  
                  0.3936530                   -5.9160736  
            예약채널닷컴SCO            예약채널모바일SCO  
                 -0.5971391                   -0.7430388  
     상품브랜드브랜드미적용         상품브랜드이세이브팩  
                 -1.3411538                   -0.9471787  
         상품브랜드하나free           상품브랜드하나골프  
                  0.3170779                   -0.4115134  
       상품브랜드하나크루즈  상품브랜드하나트레킹&레포츠  
                 -7.0905283                    6.1598302  
           상품브랜드하나팩     상품브랜드하나팩프리미엄  
                 -0.7890630                   -0.8782108  
       상품브랜드하나허니문                   노선동남아  
                 -0.8537253                    0.0773598  
                   노선미주                     노선유럽  
                 -0.0258816                   -0.1973078  
                   노선일본                     노선중국  
                 -0.1851976                   -0.2505688  
             상품속성레포츠          상품속성박람회&학회  
                 -7.0172401                    2.1240071  
           상품속성배낭여행               상품속성에어텔  
                  4.6870808                    4.3700395  
           상품속성인센티브         상품속성종교문화탐방  
                  0.4765302                    1.6796538  
             상품속성크루즈          상품속성트랙/트레킹  
                  6.6726703                   -6.5059544  
             상품속성패키지               상품속성허니문  
                  0.3630917                    1.3639044  
          리드타임180일이상            리드타임21일~30일  
                 -1.2963240                   -0.0825824  
         리드타임31일~180일              리드타임5일이하  
                 -0.6847560                   -0.0561286  
           리드타임6일~10일             상품특성일반가격  
                  0.0378273                    0.7181609  
    상품특성일반가격 & DEPO    상품특성일반가격 & 신청금  
                  0.6406745                    0.5378721  
           상품특성특별가격      상품특성특별가격 & DEPO  
                  0.7042429                    0.9254486  
  상품특성특별가격 & 신청금               상품예약요일목  
                  0.6468687                    0.0455784  
             상품예약요일수               상품예약요일월  
                  0.0296121                    0.0327183  
             상품예약요일일               상품예약요일토  
                 -0.0726254                    0.0006146  
             상품예약요일화                    카드결제Y  
                  0.0670217                    0.0686973  
               예약시간오전                 예약시간오후  
                  0.1057644                    0.1285454  
               예약시간저녁  
                  0.1123819  

Degrees of Freedom: 566697 Total (i.e. Null);  566641 Residual
Null Deviance:      255000 
Residual Deviance: 168600   AIC: 168800

로지스틱 회귀분석에서 변수가 유의한 지를 판단하는 기준은 이탈도(deviance)를 이용하여 판단할 수 있으며 아래 표처럼 카이제곱 적합도 검정을 통하여 모든 설명변수가 유의수준에 적합한 것으로 확인되었다.

<설명변수 anova 검증 결과>

Analysis of Deviance Table

Model: binomial, link: logit

Response: 출발여부

Terms added sequentially (first to last)

             Df Deviance Resid. Df Resid. Dev  Pr(>Chi)    
NULL                        566697     254950              
연령대        3     1945    566694     253005 < 2.2e-16 ***
성별          1       44    566693     252960 2.585e-11 ***
PKG등급       5    45981    566688     206979 < 2.2e-16 ***
예약채널      2     1264    566686     205715 < 2.2e-16 ***
상품브랜드    9    34596    566677     171119 < 2.2e-16 ***
노선          5      421    566672     170698 < 2.2e-16 ***
상품속성     10      126    566662     170572 < 2.2e-16 ***
리드타임      5     1796    566657     168776 < 2.2e-16 ***
상품특성      6       65    566651     168711 4.322e-12 ***
상품예약요일  6       28    566645     168683 0.0001005 ***
카드결제      1       22    566644     168661 2.570e-06 ***
예약시간      3       20    566641     168641 0.0001772 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

최종 선택된 설명변수로 로지스틱 회귀분석 모형이 다시 구현된 후 모형 성능평가를 하였다. 회귀분석에서는 R2를 통해 모형의 성능을 평가하지만, 일반적으로 로지스틱 회귀분석에서는 분류 모형이 실제로 얼마나 맞췄는가를 평가한다. 그러기 위해서는 만들어진 로지스틱 회귀 모형에 데이터를 넣어, 확률을 추정하고 그에 따른 분류 결과를 아래 오분류표(Confusion Matrix), ROC 그래프로 확인할 수 있다.

<로지스틱 회귀분석 오분류표(Confusion Matrix)>

Confusion Matrix and Statistics

          Reference
Prediction      0      1
         0   6112      2
         1   8281 228474
                                          
               Accuracy : 0.9659          
                 95% CI : (0.9652, 0.9666)
    No Information Rate : 0.9407          
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.5813          
                                          
 Mcnemar's Test P-Value : < 2.2e-16       
                                          
            Sensitivity : 0.42465         
            Specificity : 0.99999         
         Pos Pred Value : 0.99967         
         Neg Pred Value : 0.96502         
             Prevalence : 0.05926         
         Detection Rate : 0.02517         
   Detection Prevalence : 0.02517         
      Balanced Accuracy : 0.71232         
                                          
       'Positive' Class : 0               
                                          

로지스틱 회귀분석 오분류표는 층화추출된 Training 데이타를 통하여 예측 및 분류성능을 측정하기 위해 예측 value와 실제 value를 비교한 표로써 본 연구의 반응변수인 ‘출발여부’(취소=0, 출발=1) 이산형 변수의 분류 확률을 확인할 수 있다. 출발, 취소를 모두 맞출 확률인 정확도(Accuracy)는 97%, 실제 취소고객이 취소할 확률인 민감도(Sensitivity)는 42%, 실제 출발할 고객이 출발할 예측력인 특이도(Specificity)는 99% 예측한 것으로 분류모델 성과지표를 확인할 수 있다.

<로지스틱 회귀분석 ROC 그래프>

[1] 0
Setting levels: control = 0, case = 1
Setting direction: controls < cases

또한, 예측 성능을 확인할 수 있는 ROC(receiver operation characteristic curve) 그래프에서는 임계값 변화에 따른 세로축 민감도와 가로축(1-특이도)의 관계를 ROC 커브로 표현할 수 있는데, 일반적인 모델 성능비교는 curve의 아래 부분 영역, 즉 AUC(Area Under Curve)로 확인되어 본 모델은 79.7%의 설명력을 나타내고 있다.

모형 성능평가와 더불어 실제 비즈니스 현장에서는 로지스틱 회귀분석 해석이 중요한데 해석의 주요인자는 회귀계수와 오즈비(=승산비)이다. 회귀계수는 해당 변수가 1단위 증가할 때의 log odds의 증가량이며 이 회귀계수에 exponential을 취하면, OR의 증분으로 나머지 설명변수가 고정된 상태에서 해당 변수를 1단 위 증가시켰을 때 변화하는 성공 확율(OR)이 된다. 여기서 주의할 점이 회귀계수가 양수이면 성공확률이 증가를 의미하고 회귀계수가 음수이면 성공확률이 감소하는 것을 의미한다.

승산비에 대한 해석은 설명변수가 범주형인지 아니면 수치형인 지에 따라 달라지는데 본 연구의 설명, 반응 변수 모두 범주형 변수이기에 각 변수별 기준점에 따라 해석을 해야 한다. 예를 들어, 범주형 예측 변수의 승산비는 예측 변수의 서로 다른 2개 수준에서 비교 결과의 확률을 비교한다. 비교 수준은 로지스틱 회귀 분석 표에 있으며, 추정 승산비를 갖는다. 승산비가 1보다 크면 범주형 예측 변수가 기준 수준에서 비교 수준으로 바뀔 때 비교 결과의 확률이 기준 결과에 비해 더 높아는 것으로 해석하며, 반대로 승산비가 1보다 작으면 범주형 예측 변수가 기준 수준에서 비교 수준으로 바뀔 때 비교 결과의 확률이 기준 결과에 비해 더 낮아짐으로 확인할 수 있다. 승산비가 1은 변동이 없는 것이다. 또한 OR은 신뢰구간으로 판단하는데 OR 값은 95% 신뢰구간에 1을 포함하지 않아야 통계적으로 유의하다고 판단한다.

본 연구의 설명변수가 예약 취소(0) 및 출발(1) 분류 결정에 영향을 미치는 영향의 정도를 추정치(회귀계수)와 승산비(OR),신뢰구간 및 유의확률을 통해 살펴보면 아래와 같다.

<로지스틱 회귀분석 승산비(OR)>

                                OR   lcl          ucl      p
(Intercept)                  84.87 31.07 2.317900e+02 0.0000
연령대19to43                  0.43  0.40 4.600000e-01 0.0000
연령대44to63                  0.41  0.38 4.300000e-01 0.0000
연령대64more                  0.51  0.46 5.500000e-01 0.0000
성별M                         1.09  1.06 1.120000e+00 0.0000
PKG등급2_VIP                  1.18  0.85 1.640000e+00 0.3261
PKG등급3_우수                 1.41  1.02 1.940000e+00 0.0369
PKG등급4_일반                 1.17  0.85 1.610000e+00 0.3299
PKG등급5_1회성                1.48  1.08 2.040000e+00 0.0154
PKG등급6_무등급               0.00  0.00 0.000000e+00 0.0000
예약채널닷컴SCO               0.55  0.53 5.700000e-01 0.0000
예약채널모바일SCO             0.48  0.46 5.000000e-01 0.0000
상품브랜드브랜드미적용        0.26  0.15 4.700000e-01 0.0000
상품브랜드이세이브팩          0.39  0.23 6.700000e-01 0.0006
상품브랜드하나free            1.37  0.83 2.260000e+00 0.2130
상품브랜드하나골프            0.66  0.28 1.570000e+00 0.3491
상품브랜드하나크루즈          0.00  0.00 5.721275e+47 0.9055
상품브랜드하나트레킹&레포츠 473.35  0.00 1.269902e+41 0.8915
상품브랜드하나팩              0.45  0.26 7.800000e-01 0.0043
상품브랜드하나팩프리미엄      0.42  0.24 7.200000e-01 0.0015
상품브랜드하나허니문          0.43  0.16 1.120000e+00 0.0835
노선동남아                    1.08  1.02 1.150000e+00 0.0145
노선미주                      0.97  0.87 1.090000e+00 0.6546
노선유럽                      0.82  0.76 8.800000e-01 0.0000
노선일본                      0.83  0.77 8.900000e-01 0.0000
노선중국                      0.78  0.73 8.300000e-01 0.0000
상품속성레포츠                0.00  0.00 2.410963e+35 0.8765
상품속성박람회&학회           8.36  1.31 5.327000e+01 0.0245
상품속성배낭여행            108.54 38.80 3.035900e+02 0.0000
상품속성에어텔               79.05 30.45 2.052000e+02 0.0000
상품속성인센티브              1.61  0.81 3.220000e+00 0.1772
상품속성종교문화탐방          5.36  1.52 1.894000e+01 0.0091
상품속성크루즈              790.50  0.00 5.440281e+53 0.9110
상품속성트랙/트레킹           0.00  0.00 4.019299e+35 0.8854
상품속성패키지                1.44  0.71 2.900000e+00 0.3108
상품속성허니문                3.91  1.38 1.107000e+01 0.0102
리드타임180일이상             0.27  0.24 3.100000e-01 0.0000
리드타임21일~30일             0.92  0.87 9.800000e-01 0.0050
리드타임31일~180일            0.50  0.48 5.300000e-01 0.0000
리드타임5일이하               0.95  0.78 1.140000e+00 0.5653
리드타임6일~10일              1.04  0.94 1.140000e+00 0.4464
상품특성일반가격              2.05  1.40 2.990000e+00 0.0002
상품특성일반가격 & DEPO       1.90  1.29 2.800000e+00 0.0012
상품특성일반가격 & 신청금     1.71  1.16 2.520000e+00 0.0066
상품특성특별가격              2.02  1.39 2.950000e+00 0.0003
상품특성특별가격 & DEPO       2.52  1.72 3.710000e+00 0.0000
상품특성특별가격 & 신청금     1.91  1.30 2.800000e+00 0.0009
상품예약요일목                1.05  0.99 1.100000e+00 0.0889
상품예약요일수                1.03  0.98 1.080000e+00 0.2590
상품예약요일월                1.03  0.98 1.090000e+00 0.1974
상품예약요일일                0.93  0.88 9.900000e-01 0.0142
상품예약요일토                1.00  0.94 1.060000e+00 0.9839
상품예약요일화                1.07  1.02 1.130000e+00 0.0101
카드결제Y                     1.07  1.04 1.100000e+00 0.0000
예약시간오전                  1.11  1.05 1.180000e+00 0.0007
예약시간오후                  1.14  1.07 1.200000e+00 0.0000
예약시간저녁                  1.12  1.06 1.180000e+00 0.0001

명시된 로직스틱 회귀계수(coefficient)는 추정된 파라미터 값으로 해당 변수가 1단위 증가할 때 로그아드의 변화량으로 양수이면 성공활률과 양의 상관관계, 음수이면 성공확률과 음의 상관관계를 의미하며 P-value는 해당 변수가 통계적으로 유의미한지 여부를 알려주는 지료로 해당 파라미터 값이 0인지 여부를 통계적으로 판단한다.

우선, 통계적으로 유의하지 않은 확률 값과 승산비 신뢰구간이 1을 포함한 변수를 제외한 범주형 변수들을 확인해 보면 모든 연령대와 성별 M, PKG등급에서는 1회성, 무등급/ 모든 예약채널/ 상품브랜드에서는 이세이브팩, 하나팩, 프리미엄/ 노선에서는 동남아, 일본, 중국/ 상품속성에서는 박람회&학회, 배낭여행, 에어텔, 종교문화탐방, 허니문/ 리드타임은 5일이사, 6일~10일을 제외한 리드타임/모든 상품특성/ 상품예약요일은 화,수,일요일/ 카드결제 여부 및 모든 예약시간대 등 이 변수들이 출발여부에 유의한 영향을 미치는 것으로 해석할 수 있다.

그럼, 통계적으로 유의한 설명변수 중 고객 분류(취소=0, 출발=1)결정에 영향을 미치는 영향의 정도를 회귀계수와 승산비(OR)를 통해 살펴보면,

‘10대’에 비해 모든 연령대(20대~ 60대)는 회귀계수가 음수이므로 출발할 가능성이 약 0.4배 감소로 해석하여 취소 가능성이 60%증가하는 것으로 해석된다. 다시 말해 10대에 비해 40, 50대의 취소 가능성이 제일 높다는 것으로 확인할 수 있다.

성별에서는 여성에 비해 남성이 1.09배 출발 가능성이 높았다.

PKG 등급에서 VVIP 비해 1회성 등급은 1.48배 출발할 가능성이 있지만 무등급은 취소할 가능성이 매우 큰 것으로 확인할 수 있다.

예약채널에서는 콜센터 예약채널에 비해 PC와 모바일 예약채널이 음의 상관관계로 취소가능성이 약 50% 가까운 것으로 확인되었다.

상품브랜드에서도 zeus 브랜드에 비해 이세이브팩, 하나팩 및 프리미엄 상품 모두 음의 상관관계로 취소가능성이 약 50% 증가하는 것으로 확인되었다.

노선에서는 남태평양 지역 예약자 대비 동남아 노선 예약자는 1.08배 출발가능성이 높지만 유럽, 미주, 일본, 중국노선 상품 예약자는 출발가능성이 낮은 것으로 확인되었다.

상품속성에서는 배낭여행과 에어텔이 타 속성에 비해 출발할 가능성이 매우 높은 것으로 확인되었다.

예약 리드타임에서는 모두 음의 상관관계로 10일~20일 전 예약자 대비 이후 예약 리드타임 건들이 취소 가능성이 높은 것으로 확인되었다.

상품특성에서는 일반가격이든 depo 혹은 특별가격 상품이든 모든 변수가 양의 상관관계를 보였으며 특히 특별가격& depo상품 예약자가 2.52배 출발할 가능성이 높은 것으로 확인되었다.

상품 예약요일에서는 일요일 예약자가 취소 가능성이 높았다

카드결제자 경우 현금 결제자보다 출발 가능성이 높고 예약시간대로는 새벽시간 예약대비 오전, 오후, 저녁 예약자가 출발할 가능성이 높은 것으로 확인되었다.

고객 분류(취소=0, 출발=1)결정에 영향을 미치는 변수로 본 연구의 관심영역인 취소 가능성은 40대~ 50대, PKG 등급_ 무등급, 온라인 예약채널(pc,mo), 상품브랜드에서 이세이브 및 하나팩 상품, 상품노선에서는 유럽, 미주, 일본, 중국노선 상품, 리드타임 중 30일~ 180일, 180일 이상 고객군 그리고 일요일 예약자로 승산비는 설명하고 있다.

요약하면 아래와 같다.

summary

summary

0.5.2 의사결정나무

본 연구는 이산형 반응변수 분류 목적이기에 이진분할에 용이하며, 연산속도가 빠른 지니지수 분류기준인 CART(classification and regression trees)와 통계적 유의성 검증으로 분류하며 가지치기가 수행되지 않는 CHAID(unbiased recursive partitioning based on permutation test) 알고리즘을 사용하였다. 지니(Gini)를 분류기준으로 최종 의사결정나무 모형을 만든 후 적절한 가지 수의 선택 및 검정을 위해서는 아래와 같이 오류율(rel error)이 가장 작은 CP(Cost complexity)값을 선택한다.

<의사결정나무 수 검정>

n= 566698 

node), split, n, loss, yval, (yprob)
      * denotes terminal node

1) root 566698 33586 1 (0.05926613 0.94073387)  
  2) PKG등급=6_무등급 47556 16827 1 (0.35383548 0.64616452)  
    4) 상품속성=골프,레포츠,박람회&학회,인센티브,종교문화탐방,크루즈,트랙/트레킹,패키지,허니문 14573     0 0 (1.00000000 0.00000000) *
    5) 상품속성=배낭여행,에어텔 32983  2254 1 (0.06833823 0.93166177) *
  3) PKG등급=1_VVIP,2_VIP,3_우수,4_일반,5_1회성 519142 16759 1 (0.03228211 0.96771789) *


Classification tree:
rpart(formula = 출발여부 ~ ., data = train)

Variables actually used in tree construction:
[1] PKG등급  상품속성

Root node error: 33586/566698 = 0.059266

n= 566698 

       CP nsplit rel error xerror      xstd
1 0.21695      0    1.0000 1.0000 0.0052924
2 0.01000      2    0.5661 0.5661 0.0040361

3개의 leaf node가 형성된 의사결정 모형을 해석하면 ‘PKG등급’이 ‘무등급’이고 ‘배낭여행’과 ‘에어텔’을 제외한 상품속성을 예약한 고객이 온라인 예약 취소 확률이 높은 것으로 분류할 수 있다.

<지니(Gini)를 분류기준 의사결정나무 모형>

Rattle: A free graphical interface for data science with R.
Version 5.3.0 Copyright (c) 2006-2018 Togaware Pty Ltd.
Type 'rattle()' to shake, rattle, and roll your data.

Attaching package: 'rattle'
The following object is masked from 'package:randomForest':

    importance

또한, 의사 결정 나무의 노드에서 가지가 나뉠 때의 손실 함수(loss function) 감소량을 각 변수에 더하는 방법으로 변수 중요도를 평가하는데 본 의사결정나무 변수의 중요도는 아래와 같다.

<의사결정나무 변수 중요도>

  상품속성 상품브랜드    PKG등급       노선   상품특성   리드타임     연령대 
22386.6484 22346.8700  9008.9862  1584.4818   341.9399   128.8295   119.1973 

본 연구의 의사결정나무 분류모델 성과지표로 의사결정나무 오분류표를 살펴보면 출발, 취소를 모두 맞출 확률인 정확도(Accuracy)는 97%, 실제 취소고객이 취소할 확률인 민감도(Sensitivity)는 42%, 실제 출발할 고객이 출발할 예측력인 특이도(Specificity)는 100% 예측함으로써 로지스틱 회귀분석 오분류표와 거의 유사한 분류모델 성과지표를 나타내고 있다.

<의사결정나무 오분류표(Confusion Matrix)>

Confusion Matrix and Statistics

          Reference
Prediction      0      1
         0   6113      0
         1   8280 228476
                                          
               Accuracy : 0.9659          
                 95% CI : (0.9652, 0.9666)
    No Information Rate : 0.9407          
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.5814          
                                          
 Mcnemar's Test P-Value : < 2.2e-16       
                                          
            Sensitivity : 0.42472         
            Specificity : 1.00000         
         Pos Pred Value : 1.00000         
         Neg Pred Value : 0.96503         
             Prevalence : 0.05926         
         Detection Rate : 0.02517         
   Detection Prevalence : 0.02517         
      Balanced Accuracy : 0.71236         
                                          
       'Positive' Class : 0               
                                          

앞서 설명된 분류모델링 의사결정나무 학습법은 머신러닝의 한 방법으로 주어진 학습 데이터에 따라 생성되는 의사결정나무가 달라져서 일반화하기 어렵고 학습결과 역시 성능과 변동의 폭이 상이한 단점이 있어서 이를 극복하고자 일반적으로 랜덤 포레스트 학습 기법이 병행하여 사용된다.

랜덤 포레스트는 앙상블(ensemble)모형 중 하나로써 여러 개의 분류모형에 의한 결과를 종합하여 분류의 정확도를 높이는 기법이다. 이는 적절한 표본추출법으로 데이터에서 여러 개의 훈련용 데이터 셋을 만들어 각각의 데이터 집합에서 하나의 분류기를 만들어 앙상블하는 방법인데 즉, 새로운 자료에 대해 분류기 예측값들의 가중 투표(weighted vote)를 통해 분류를 수행한다. 데이터를 조절하는 방법으로 배깅(bagging)과 부스팅(boosting)이 있으며 랜덤 포레스트 방법은 배깅의 개념과 변수의 임의 선택(random selection)을 결합한 앙상블 기법이다. 본 연구에서는 의사결정나무의 단점을 극복하고자 앙상블 모형 중 하나인 랜덤 포레스트 분류 학습을 실행하여 분류 결과는 아래와 같다

<랜덤 포레스트 오분류표(Confusion Matrix)> <랜덤 포레스트 변수 중요도>

mtry = 1  OOB error = 5.67% 
Searching left ...
Searching right ...
mtry = 2    OOB error = 3.33% 
0.4122261 0.05 
mtry = 4    OOB error = 3.22% 
0.03404999 0.05 

             OOB         0            1
 [1,] 0.03819563 0.5170459 0.0080376177
 [2,] 0.03855361 0.5115079 0.0087444507
 [3,] 0.03848550 0.5104742 0.0087015414
 [4,] 0.03806677 0.5105116 0.0083352111
 [5,] 0.03760873 0.5113260 0.0077867819
 [6,] 0.03703187 0.5131675 0.0070088497
 [7,] 0.03626343 0.5144433 0.0061243268
 [8,] 0.03566373 0.5159882 0.0054012450
 [9,] 0.03518615 0.5181664 0.0047821173
[10,] 0.03455173 0.5193124 0.0040415486
[11,] 0.03413083 0.5208346 0.0034828406
[12,] 0.03382182 0.5222681 0.0030436412
[13,] 0.03345139 0.5234415 0.0025744745
[14,] 0.03332532 0.5241531 0.0023992485
[15,] 0.03308833 0.5246170 0.0021199211
[16,] 0.03291257 0.5255459 0.0018750633
[17,] 0.03277603 0.5254959 0.0017338860
[18,] 0.03272847 0.5268330 0.0016003963
[19,] 0.03266780 0.5271590 0.0015158536
[20,] 0.03257919 0.5277215 0.0013844440
[21,] 0.03254480 0.5287935 0.0012812312
[22,] 0.03242246 0.5287182 0.0011555272
[23,] 0.03232102 0.5285536 0.0010579549
[24,] 0.03238449 0.5299827 0.0010354433
[25,] 0.03236832 0.5305782 0.0009810358
[26,] 0.03231351 0.5303400 0.0009378892
[27,] 0.03226410 0.5303400 0.0008853674
[28,] 0.03229233 0.5306973 0.0008928705
[29,] 0.03231527 0.5317096 0.0008534792
[30,] 0.03229763 0.5318287 0.0008272183
[31,] 0.03226763 0.5320967 0.0007784481
[32,] 0.03227292 0.5324838 0.0007596903
[33,] 0.03226233 0.5328708 0.0007240505
[34,] 0.03223410 0.5325731 0.0007127958
[35,] 0.03221822 0.5323051 0.0007127958
[36,] 0.03223939 0.5326326 0.0007146716
[37,] 0.03220234 0.5327815 0.0006659013
[38,] 0.03221469 0.5328708 0.0006734045
[39,] 0.03222881 0.5334068 0.0006546467
[40,] 0.03221292 0.5334068 0.0006377647
[41,] 0.03221116 0.5334366 0.0006340131
[42,] 0.03224469 0.5336747 0.0006546467
[43,] 0.03221822 0.5335259 0.0006358889
[44,] 0.03219175 0.5337938 0.0005908702
[45,] 0.03219528 0.5337045 0.0006002491
[46,] 0.03220057 0.5339129 0.0005927460
[47,] 0.03218293 0.5339129 0.0005739882
[48,] 0.03216881 0.5338534 0.0005627335
[49,] 0.03217234 0.5340618 0.0005533546
[50,] 0.03216352 0.5340023 0.0005477273

                      0         1 MeanDecreaseAccuracy MeanDecreaseGini
연령대        54.918082  80.53591             86.85883        1181.3599
성별          21.189124  34.28076             37.87534         647.8804
PKG등급      601.356536 544.85311            627.95138       12674.7009
예약채널      62.141583  79.04733             96.07771         717.4453
상품브랜드     5.757363  11.76583             12.93283        7508.8426
노선          77.793319  75.92941             86.37324        1394.0357
상품속성      -2.356798  15.11142             15.86228        7465.3421
리드타임      76.500918  86.60302            101.01014         778.6407
상품특성      70.119727  94.93659            107.91345        1434.7567
상품예약요일  87.976474  80.85694             96.27893        2211.8533
카드결제      19.595531  35.86179             45.32127         657.6503
예약시간      73.863427  71.57802             79.36894        1380.0138

Confusion Matrix and Statistics

          Reference
Prediction      0      1
         0   6560    103
         1   7833 228373
                                         
               Accuracy : 0.9673         
                 95% CI : (0.9666, 0.968)
    No Information Rate : 0.9407         
    P-Value [Acc > NIR] : < 2.2e-16      
                                         
                  Kappa : 0.6084         
                                         
 Mcnemar's Test P-Value : < 2.2e-16      
                                         
            Sensitivity : 0.45578        
            Specificity : 0.99955        
         Pos Pred Value : 0.98454        
         Neg Pred Value : 0.96684        
             Prevalence : 0.05926        
         Detection Rate : 0.02701        
   Detection Prevalence : 0.02743        
      Balanced Accuracy : 0.72766        
                                         
       'Positive' Class : 0              
                                         

랜덤포레스트 기법을 통한 설명변수 중요도를 확인할 수 있는데 여기서 MeanDecreaseAccuracy, MeanDecreaseGini는 Random Forest에서 가지치기할 때 얼마나 정확도가 올라가는지 의미한다. 정확도 개선에 중요한 변수는 MeanDecreaseAccuracy의 값으로 판단하며 PKG등급, 리드타임, 상품특성 순으로 나타났으며, 노드 불순도 개선에 중요한 변수는 MeanDecreaseGini 표에서 확인된 바, PKG 등급, 상품속성, 상품 브랜드 순으로 높은 변수 중요도를 확인할 수 있다.

ROC 분석은 이진분류만 지원 가능한 모형 평가함수로써 유용성과 평가 및 진단 기준치(cut off value) 판단을 위해 사용된다. 민감도와 특이도를 바탕으로 그려지는 그래프로 하단 면적인 AUC(Area Under the ROC curve)가 넓을수록 정확도가 높은 검증할 수 있는데 로지스틱회귀분석 vs 의사결정나무 vs 랜덤포레스트 ROC 비교표를 보면 로지스틱회귀분석이 좀 더 성능이 좋은 것으로 확인할 수 있다.

<로지스틱회귀분석vs의사결정나무vs랜덤포레스트 ROC 비교>

Start:  AIC=168755.1
출발여부 ~ 연령대 + 성별 + PKG등급 + 예약채널 + 상품브랜드 + 
    노선 + 상품속성 + 리드타임 + 상품특성 + 상품예약요일 + 카드결제 + 
    예약시간

               Df Deviance    AIC
<none>              168641 168755
- 예약시간      3   168661 168769
- 상품예약요일  6   168669 168771
- 카드결제      1   168663 168775
- 성별          1   168674 168786
- 상품특성      6   168705 168807
- 상품브랜드    9   168757 168853
- 상품속성     10   168772 168866
- 노선          5   168989 169093
- 연령대        3   169462 169570
- 예약채널      2   169884 169994
- 리드타임      5   170425 170529
- PKG등급       5   246098 246202
Setting levels: control = 0, case = 1
Setting direction: controls < cases
Setting levels: control = 0, case = 1
Setting direction: controls < cases
Setting levels: control = 0, case = 1
Setting direction: controls > cases

0.5.3 인공신경망 분석

신경망 모델 생성을 위해 본 연구의 통계 패키지 프로그램 R에서 제공하는 ‘nnet’ 패키지를 이용하여 신경망 모델을 생성하였다. 모델 생성에는 앞서 준비한 Train 데이터를 이용한다.

설명변수는 12개(수치형 변수를 구간화한 최종 설명변수는 56개), 출력변수는 반응변수의 출발(=1), 취소(=0) 2개가 생성된다. 은닉층의 은닉 노드의 수는 초기 2(size =2)로 설정되었다. 은닉층의 은닉 노드의 수에 대한 간단한 휴리스틱으로 목표변수가 범주형일 때 각 클래스별로 1개 정도로 설정하고 가중치 감소의 모수인 decay 인수는 오퍼피팅 예방을 위해 decay(=5e-04) 설정하였다. maxit 에폭수는 100에서 200까지 정확도를 높이기 위해 성능테스트를 했으며, 은닉층 뉴런수 또한 초기 size= 2에서 10까지 반복 설정 훈련하였다.

<훈련 데이터로 신경망 모델을 생성>

# weights:  117
initial  value 343937.317869 
iter  10 value 123664.947592
iter  20 value 118153.024024
iter  30 value 97493.707060
iter  40 value 82234.218241
iter  50 value 81302.780012
iter  60 value 80821.377237
iter  70 value 80425.675599
iter  80 value 80224.137570
iter  90 value 80103.227720
iter 100 value 79980.534643
iter 110 value 79947.982204
iter 120 value 79931.222203
iter 130 value 79903.465525
iter 140 value 79874.038875
iter 150 value 79709.104759
iter 160 value 79674.938966
iter 170 value 79662.309250
iter 180 value 79656.899727
iter 190 value 79653.802791
iter 200 value 79651.542315
final  value 79651.542315 
stopped after 200 iterations

maxit 에폭수 ! 200에폭 size =2 은닉층의 뉴런수 decay = 5e-04 가중치감소의 모수, 오버피팅 예방 각 세대의 결과의 Value는 적합하는 목적식의 값이며,훈련이 반복될수록 점차 감소함을 볼 수 있다

a 56-2-1 network with 117 weights
options were - entropy fitting  decay=5e-04
  b->h1  i1->h1  i2->h1  i3->h1  i4->h1  i5->h1  i6->h1  i7->h1  i8->h1  i9->h1 
  35.32   -3.53   -3.14   -3.71    0.57    7.07   -9.83  100.15  -17.17  -43.65 
i10->h1 i11->h1 i12->h1 i13->h1 i14->h1 i15->h1 i16->h1 i17->h1 i18->h1 i19->h1 
  -4.87   -5.92   -3.12   -3.01   -5.98   -9.89    0.54    0.54   -3.67   -2.08 
i20->h1 i21->h1 i22->h1 i23->h1 i24->h1 i25->h1 i26->h1 i27->h1 i28->h1 i29->h1 
  -6.69    0.89    2.74    5.02   -1.78    4.85   -1.01    3.55   24.14   23.88 
i30->h1 i31->h1 i32->h1 i33->h1 i34->h1 i35->h1 i36->h1 i37->h1 i38->h1 i39->h1 
   2.23    2.68    1.00    2.40   -1.48    2.24   -4.28    1.62   -1.15    1.92 
i40->h1 i41->h1 i42->h1 i43->h1 i44->h1 i45->h1 i46->h1 i47->h1 i48->h1 i49->h1 
  -0.66    4.89    4.29    6.36    5.84    5.62    6.45   -0.96   -0.52   -0.84 
i50->h1 i51->h1 i52->h1 i53->h1 i54->h1 i55->h1 i56->h1 
  -0.89   -0.46    0.61    0.01    0.12    1.22    0.19 
  b->h2  i1->h2  i2->h2  i3->h2  i4->h2  i5->h2  i6->h2  i7->h2  i8->h2  i9->h2 
  25.91   -2.33   -2.64   -1.62    0.38    8.69    9.73    8.86    9.81   14.22 
i10->h2 i11->h2 i12->h2 i13->h2 i14->h2 i15->h2 i16->h2 i17->h2 i18->h2 i19->h2 
  -2.11   -2.68  -26.26  -16.82    3.43   32.02   -8.87  -16.74  -16.12  -16.38 
i20->h2 i21->h2 i22->h2 i23->h2 i24->h2 i25->h2 i26->h2 i27->h2 i28->h2 i29->h2 
  13.50    0.05   -0.40   -1.26   -0.97   -1.36   -2.19   26.55  -29.33  -43.04 
i30->h2 i31->h2 i32->h2 i33->h2 i34->h2 i35->h2 i36->h2 i37->h2 i38->h2 i39->h2 
   7.76   31.77   -5.90  -17.67   -0.76   19.61  -20.01   -0.61  -16.90   -1.41 
i40->h2 i41->h2 i42->h2 i43->h2 i44->h2 i45->h2 i46->h2 i47->h2 i48->h2 i49->h2 
  -0.87    2.55    2.09    1.63    2.59    3.31    2.29    0.18   -0.08    0.16 
i50->h2 i51->h2 i52->h2 i53->h2 i54->h2 i55->h2 i56->h2 
  -0.51   -0.04    0.11    0.21    0.11    0.33    0.28 
  b->o  h1->o  h2->o 
-15.38  17.85   1.49 

summary 함수를 이용하여 신경망 모델의 결과를 확인할 수 있다. 출력, 은닉, 입력 노드의 수와 가중치의 수를 보여 준 후 입력 노드 -> 은닉 노드로 가는 가중치의 값과 은닉 노드 -> 출력 노드로 가는 가중치의 값을 보여준다. 단 b로 표시된 것은 상수항(bias)의 가중치이다

 [1] "n"             "nunits"        "nconn"         "conn"         
 [5] "nsunits"       "decay"         "entropy"       "softmax"      
 [9] "censored"      "value"         "wts"           "convergence"  
[13] "fitted.values" "residuals"     "lev"           "call"         
[17] "terms"         "coefnames"     "contrasts"     "xlevels"      
  [1]  35.321502805  -3.526974144  -3.141928801  -3.708420812   0.566792607
  [6]   7.065467923  -9.833239070 100.152000739 -17.165867457 -43.645649862
 [11]  -4.870852981  -5.924905445  -3.118339471  -3.006482570  -5.978610467
 [16]  -9.887698662   0.541039019   0.539872320  -3.668416853  -2.080311531
 [21]  -6.685255447   0.886267124   2.735620455   5.020144570  -1.778440752
 [26]   4.854867106  -1.013082034   3.547607540  24.138526559  23.876867811
 [31]   2.230398497   2.678941422   1.001881623   2.400257419  -1.479748867
 [36]   2.237116497  -4.277471651   1.615841497  -1.147673717   1.916519834
 [41]  -0.663598636   4.894997439   4.286994866   6.358563331   5.837078531
 [46]   5.618960255   6.454067674  -0.963475255  -0.524632156  -0.843539774
 [51]  -0.890604673  -0.463278926   0.610191326   0.006042689   0.118375393
 [56]   1.223219550   0.187928697  25.908356861  -2.329880481  -2.640384103
 [61]  -1.618107626   0.378596121   8.694253542   9.725022549   8.863804007
 [66]   9.806065942  14.215665006  -2.113183998  -2.683330213 -26.256441040
 [71] -16.823334185   3.428618725  32.018695204  -8.874164904 -16.744630835
 [76] -16.123757466 -16.378820818  13.497409104   0.049226685  -0.400252724
 [81]  -1.263802328  -0.968700489  -1.360913075  -2.194049035  26.548929084
 [86] -29.330703375 -43.042188855   7.760623500  31.767146058  -5.903639543
 [91] -17.670945698  -0.764719244  19.610617941 -20.014630625  -0.606182235
 [96] -16.902848434  -1.408620452  -0.871753461   2.545726925   2.086658362
[101]   1.634844800   2.589558078   3.305613265   2.285797755   0.182595300
[106]  -0.084208904   0.164466724  -0.506058342  -0.044046069   0.108891161
[111]   0.208175292   0.111816451   0.328504999   0.277241955 -15.380044383
[116]  17.848268720   1.485365323
       [,1]
1 0.9500591
2 0.9500591
3 0.9532682
4 0.9532682
7 0.9811755
8 0.9811755
        [,1]
1 0.04994091
2 0.04994091
3 0.04673180
4 0.04673180
7 0.01882455
8 0.01882455

nnet 함수의 결과는 summary 함수에서 볼 수 있는 정보뿐 아니라 신경망 모델에 대한 다양한 정보를 제공한다. names 함수를 이용하여 nnet 함수의 결과에서 제공하는 항목 들을 살펴볼 수 있다. wts는 가장 좋은 가중치의 집합을 의미하며, fitted.values는 훈련 데이터를 모델로 적합한 결과를 residuals는 훈련 데이터의 잔차를 보여준다. 생성된 모델의 검증을 위해 테스트 데이터 셋을 이용하여 오분류표(confusion matrix)를 확인한 결과 아래와 같다.

<인공신경망 오분류표(Confusion Matrix)>

                 
predicted_result2      0      1
                0   6124      3
                1   8269 228473

출발, 취소를 모두 맞출 확률인 정확도(Accuracy)는 97%, 실제 취소고객이 취소할 확률인 민감도(Sensitivity)는 43%, 실제 출발할 고객이 출발할 예측력인 특이도(Specificity)는 99% 예측함으로써 인공신경망 성과지표는 로지스틱 회귀분석, 의사결정나무 오분류표와 거의 유사한 분류모델 성과지표를 나타내고 있다.

0.5.4 최종 모형 선택

본 연구의 목적인 온라인 여행상품 고객 이탈 분류를 위해 로지스틱회귀분석, 의사결정나무, 랜덤포레스트, 신경망 모델을 확인하였으며, 이를 통한 각각의 오류분류표 모형 검증결과를 비교하면 아래와 같다.

<표 18> 최종후보 모형별 정확도, 민감도, 특이도
final model

final model

각 데이터마이닝 기법에 따른 분석 결과, 각 모형별 예측/분류의 정확도, 민감도, 특이도를 비교해 보면 로지스틱 회귀, 의사결정나무, 랜덤포레스트, 신경망 각각 큰 차이가 보이지 않은 것으로 확인되었다. 하지만, 본 연구의 관심사는 반응변수인 고객 이탈(취소)이어서 민감도에서 조금 더 정확성이 보이는 랜덤포레스트가 적정한 것으로 판단할 수 있으나, ROC 그래프에서 조금 더 높은 AUC 지표를 보인 로지스틱회귀 모형이 회귀계수나 오즈비와 같은 변수 중요도로 현업사용자에 유용한 정보를 제공하고, 이를 해석하기에 편리한 장점이 있기에 로지스틱 회귀분석 모형을 최종 선택하였다. 또한, 좋은 분류모형을 만들기 위해 어떤 정보를 수집하고 관리해야 할 것인지, 고객의 이탈을 예측하고 분석하기 위해서 어떤 속성의 고객을 주 대상으로 할 것인지와 같은 문제를 해결하기 위한 유용한 정보를 얻을 수 있다고 판단하였기에 본 연구의 목적인 온라인 패키지여행 이탈고객 분류에 적합한 분석으로 로지스틱 회귀모형을 최종 선택되었다.

0.6 result

본 연구는 온라인 여행상품 예약, 취소 데이터를 통하여 온라인 패키지 상품 고객 취소와 어떤 요인들이 상관관계가 있는지 주요 변수를 찾아내고, 데이터마이닝 기법들을 이용하여 고객이탈을 분류/예측하는 최적의 모형을 구현함으로써, 온라인 여행 패키지 예약에 따른 고객 패턴을 분석하여 사전 이탈 고객을 분류/예측을 통한 실무적인 마케팅 시사점을 제공하고자 하였다.

이를 위하여 2019년 1년간 출발일 기준 총 예약데이터를 기준으로 H사 온라인 채널에서 발생되는 모든 여행상품 예약 데이터를 통계 프로그램 R-3.6.3 사용하여 분석을 실시하였다. 수집된 데이터 셋은 탐색적 데이터 분석 단계를 거쳐 변수의 특질을 확인하였으며, 총 13개의 설명변수와 반응변수를 추출하였다.

이후, 데이터마이닝 분석 기법 중 로지스틱회귀 분석, 의사결정나무 분석, 랜덤포레스트 분석, 신경망 분석 등 각각의 분석 방법별로 고객 이탈에 영향을 주는 주요 요인들을 찾아내고 모형의 상호 비교를 통해 예측력과 타당성, 그리고 효율성 측면을 고려하여 로지스틱 회귀모형을 최종 모형으로 선정하였다. 선정 사유는 각 모형별 예측/분류 검증결과 정확도, 민감도, 특이도에서 거의 유사한 결과를 확인할 수 있었으며, 로지스틱 회귀모형이 현업에서 실무적으로 고도화하여 사용하기 용이하였기 때문이다. 로지스틱 회귀분석 모형을 통한 온라인 여행 상품 소비자 예약 취소(=0), 출발(=1) 분류 분석의 결과는 아래와 같다.

첫째, ‘10대’에 비해 다른 연령대(20대~ 60대)는 출발할 가능성이 약 0.4배 감소된다. 즉, 취소 가능성이 60%증가하는 것으로 해석된다. H사의 주요 고객 연령측이 30~40대 임을 감안하더라도 온라인 채널에서 취소 가능성이 높다는 것은 각 연령층별 온라인 여행상품의 차별화가 시급하다는 것으로 해석할 수 있다. 또한, 여성에 비해 남성이 1.09배 출발 가능성이 높았는데 이는 여성의 취소율이 높다는 의미로 여성 예약자에 대한 꾸준한 관리와 이벤트가 필요한 것으로 해석할 수 있다.

둘째, H사의 총 6개 고객 등급에서 최상위 등급 VVIP 고객에 비해 1회성 등급은 1.48배 출발할 가능성이 있지만 무등급은 취소할 가능성이 매우 큰 것으로 확인할 수 있다. 즉, 공식 고객회원 및 등급이 아닌 회원이 온라인 채널에서 여행상품을 예약할 경우 세심한 관리가 필요하며 경우에 따라 첫 구매 이벤트 혹은 프로모션으로 유입된 고객을 충성고객으로 전환시켜야 할 것이다.

셋째, 온라인 예약채널에서는 콜센터 예약채널에 비해 PC와 모바일 예약채널이 취소될 가능성이 약 50% 높으며. 상품브랜드에서도 zeus 브랜드에 비해 이세이브팩, 하나팩 및 프리미엄 상품 모두 음의 상관관계로 취소가능성이 약 50% 증가하는 것으로 확인되었다.

넷째, 여행 상품노선에서는 남태평양 지역 예약자 대비 동남아 노선 예약자는 1.08배 출발가능성이 높지만 유럽, 미주, 일본, 중국노선 상품 예약자는 출발가능성이 낮은 것으로 나타났는데 이는 각 노선 별 상품 경쟁력과 프로모션을 점검해 볼 필요가 있다고 사료된다.

다섯째, 여행상품속성에서는 배낭여행과 에어텔이 타 속성에 비해 출발할 가능성이 매우 높은 것으로 나타나는데 이는 일반 패키지 상품과 달리 자유여행 상품은 상품 선택에서 일정까지 온라인 소비자가 면밀히 확인하고 예약하였기 때문이라고 예측된다. 여섯째, 여행상품 예약 리드타임에서는 10일~20일 예약자 대비 20일 이후 리드타임 건들이 취소 가능성이 높은데 이는 출발 10일~ 20일전 예약자는 이미 상품확정, 여행경비 지급 완료 및 취소료를 감안한 시점이어서 취소되지 않을 가망성이 높다는 것으로 해석할 수 있다. 또한, 출발 20일 이후 예약자들은 타 상품으로 전이할 수 있는 충분한 시간이 있기에 이 고객들을 상대로 별도 이벤트가 요구되어 진다.

마지막으로 상품특성에서는 특별가격& depo상품 예약자가 2.52배 출발할 가능성이 높았으며, 일요일 예약자가 취소 가능성이 높은 것으로 확인되었다. 카드 결제자 경우 현금 결제자 대비 출발 가능성이 높고 예약시간대로는 새벽시간 예약자가 취소될 가능성이 높은 것으로 확인되었다.

요약하면, 아래와 같다.

result

result

result2

result2