우선 잡설부터 하자면....
이번 과제는 너무너무너무 하기 귀찮았다.
무엇보다도 내가 관심 있는 주제도 아니었고,
이번에 새로 배운 시각화 도구(Tableau)를 쓰라는데,
이것도 너무 불편했다.
드래그&드롭, 버튼 클릭으로 시각화를 할 수 있는 툴인데,
도대체가 뭐가 어디에 있는지 알 수가 있어야지
나는 python으로 설정 키워드 검색해서 일일히 지정하는게 편하단 말이다!
기존에 쓰던 방식에서 벗어나길 싫어하는 것을 보니
나도 이제 나이가 들.... ㅠㅠ
분석 보고서 개요부터 잡고 가야 여러모로 편할 듯 해서
ChatGPT에게 개요를 짜달라고 했다.
처음에는 도대체 어떻게 시작해야 하나 막막했는데,
일단 지피티가 짜준거 보다보니, 방향이 잡혔다.
마음에 드는 변수를 고르고,
그 변수들을 위주로 살펴보기로 했다.
------------------------------------
1. 서론
분석 목적
데이터 소개
2. 데이터 개요
분석에서 사용할 변수 소개
결측치 처리 및 전처리 설명
전체 취소율 및 호텔별 비교
3. 데이터 분석
예약 경로에 따른 분석: 카이제곱 독립성 검정 예약 및 취소 비율 비교 호텔별 비교
고객 구성에 따른 분석: (동일)
4. 결론
-------------------------------
호텔 예약 데이터를 통한 예약 취소율 개선 방안 분석
1. 서론
(1) 분석 목적
예약 취소는 호텔 수익성에 큰 영향을 미친다. 예약 취소에 영향을 미치는 요인을 파악하고, 개선 방향을 제안하는 것이 이번 분석의 목적이다.
(2) 데이터 소개
- 캐글(Kaggle)의 Hotel Booking Demand Datasets(링크)를 일부 변형한 데이터로, 해당 데이터의 원본은 다음 아티클(링크)이 출처이다.
- 분석에 사용된 데이터는 2015.07.01 ~ 2017.08.31의 기간 중 Resort Hotel과 City Hotel에서 이루어진 약 12만 건의 예약 정보를 담고 있다.
2. 데이터 개요
(1) 주요 변수
해당 데이터는 총 119,390 건의 예약 정보를 담고 있으며, 각 예약 정보는 29개의 변수를 포함한다. 이번 분석에서 사용할 변수는 다음과 같으며, 모두 범주형 변수이다.
hotel: 호텔명으로 Resort Hotel, City Hotel이 포함된다.
reservation_status: 예약의 마지막 상태를 3가지로 나타낸다.
Check-Out: 고객이 실제 투숙 후 체크아웃을 함
Canceled: 고객이 예약을 취소함
No-Show: 노쇼. 고객이 체크인을 하지 않았고 해당 이유를 알 수 없음
market_segment: 예약이 들어온 채널을 구분한다.
Online TA(Online Travel Agent): Expedia, Booking.com, Agoda 등 온라인 여행사를 통해 들어온 예약으로 고객이 직접 예약을 진행
Offline TA(Offline Travel Agent): 전통적인 오프라인 여행사, 패키지여행 운영사를 통해 들어온 예약
Groups: 단체 예약으로 컨퍼런스, 결혼식, 워크숍, 단체 관광 등과 관련된 집단 고객
Direct: 호텔에 직접 전화하거나 웹사이트를 통해 예약한 경우로, 수수료가 들지 않아 호텔측이 선호
Corporate: 회사나 기업을 통한 예약으로 출장 등 비즈니스 목적이 많음
Complementary: 무료로 제공된 객실로 이벤트, 직원용, VIP 초대, 프로모션 등 수익 목적은 아님
Aviation: 항공사 고객으로 비행기 지연으로 항공사에 호텔을 제공하는 경우 등
Undefined: 누락 또는 분류되지 않은 경우
visitor_type: 분석자가 정의한 변수로, 예약에 포함된 인원 구성을 기반으로 8가지 유형으로 구분한다.
adults only
adults + children
adults + babies
adults + children + babies
children only
children + babies
babies only
unknown
(2) 데이터 전처리
reservation_status에서 No-Show는 전체 예약 정보 119,390 건 중 1,207건으로 약 1%에 해당한다. 이번 분석에서는 이를 제외한 118,183건의 데이터만 다룬다.
(3) 전체 취소율 및 호텔별 비교
이번 분석에서 다루는 118,183건의 예약 중 43,017건이 취소되었으며, 전체 취소율은 약 36.4%이다. 호텔 유형별로 살펴보면,
Resort Hotel의 취소율은 27.2%,
City Hotel의 취소율은 41.0%로,
City Hotel이 Resort Hotel보다 취소율이 약 13.8%p 더 높다.
3. 데이터 분석
(1) market_segment에 따른 취소율 분석
카이제곱 독립성 검정
귀무가설 H_0: 예약 경로와 취소 여부는 서로 독립적이다.
대립가설 H_1: 예약 경로와 취소 여부는 서로 독립적이지 않다 (즉, 연관이 있다).
카이제곱 검정량 8946.23, 자유도 7에 따라 p-value < 0.0001로, 대립가설 채택 즉, market_segment에 따른 취소율 차이가 유의미하다.
예약 경로별 예약 및 취소 비율
Online TA, Offline TA/TO는 비율 차이가 거의 없으며 전체 트렌드를 그대로 반영한다.
Groups(단체 예약)은 전체 예약의 16.7%만 차지하지만, 전체 취소의 27.9%를 차지하는 상대적으로 취소율이 매우 높은 시장이다.
Direct(직접 예약)은 전체 예약의 10.5%를 차지하지만, 취소는 4.0% 뿐으로 가장 충성도 높은 예약 방식이라고 볼 수 있다.
Corporate(기업 고객)은 비율이 낮지만 취소는 거의 없어, 예약 안정성이 높은 고객군이라 할 수 있다.
City Hotel과 Resort Hotel의 예약 경로별 예약 및 취소 비율 비교
Online TA의 예약과 취소 비율은 유사하거나 큰 차이가 없다. 다만 Resort Hotel은 취소 비중이 조금 더 높다.
Offline TA/TO의 예약 취소율은 City Hotel에서는 전체적인 경향과 유사하지만, Resort Hotel에서 확연히 감소한다.
두 호텔 모두 Group의 취소율 비중이 더 높다. 하지만 City Hotel에서의 비중 차이가 더 크게 나타난다
제언
Online TA와 Offline TA/TO 중심의 전략은 유지하되, 취소율 요인 분석이 추가로 필요하다. 특히 Resort Hotel에서 유독 취소율이 줄어드는 이유를 분석하여 City Hotel에 적용하는 것이 도움이 될 것이다.
Groups의 경우 계약금, 리마인더 시스템 등을 통해 사전 확정률을 높이는 정책이 필요하다. 특히 City Hotel의 취소율을 줄이는데에 효과가 있을 것으로 예상된다.
Direct 및 Corporate의 경우 혜택 강화, 마일리지 제공 등의 정책으로 더욱 적극적으로 유치하는 정책이 필요하다.
(2) visitor_type에 따른 취소율 분석
카이제곱 독립성 검정
귀무가설 H_0: 고객 구성과 취소 여부는 서로 독립적이다.
대립가설 H_1: 고객 구성과 취소 여부는 서로 독립적이지 않다 (즉, 연관이 있다).
카이제곱 검정량 178.77, 자유도 6에 따라 p-value < 0.0001로, 대립가설 채택 즉, visitor_type에 따른 취소율 차이가 유의미하다.
고객 구성별 예약 및 취소 비율
호텔 예약의 고객 구성은 adults only가 대부분으로, 전체 예약의 92%를 차지한다. 예약 취소도 92.6%를 차지하며 비율이 유지되어 해당 고객 구성은 취소율이 전체 평균과 유사하다.
adults + children 유형은 6.9%로 호텔 예약 고객 구성에서 두 번째로 많은 유형이다. 취소율은 6.8%로 특별히 더 취소되거나 덜 취소되지 않는다.
그 밖에 다른 구성의 예약은 거의 없으며, 데이터상 차지하는 비중이 작아 파이차트에서 눈에 띄지 않는 수준이다.
어른의 동행 없이 어린이 또는 아기만 호텔을 이용하는 경우가 드물 것이고, 오히려 이런 경우가 많다면 데이터의 신뢰성이 의심된다고 할 수 있다.
City Hotel과 Resort Hotel의 예약 경로별 예약 및 취소 비율 비교
City Hotel의 경우 가족 단위 고객 비중은 적지만, 예약을 하면 잘 취소하지 않는다.
반면 Resort Hotel은 가족 단위 고객의 비중이 더 높고, 예약 취소율도 높다.
도시형 호텔(City Hotel)은 여행보다는 출장/도심 방문을 위한 예약이 많아 일정이 확정된 경우가 많을 것이다.
리조트형 호텔(Resort Hotel)은 계절, 날씨를 비롯하여 아이들 컨디션, 부모 휴가 일정 등 복합적인 이유로 취소율이 더 높게 나타날 것으로 추정된다.
제언
전체 예약 중 고객 구성에 따른 취소 비율에서는 특이 사항이 발견되지 않았다. 하지만 호텔 종류에서는 가족 단위 고객이 Resort Hotel에서 더 큰 비중을 차지함을 확인했다.
Resort Hotel의 경우 아이 동반 혜택을 포함하거나 가족형 객실 구성을 강조하는 등 가족 단위 고객을 타게팅할 수 있다. 또한 날씨나 컨디션에 민감한 가족 여행의 특성을 반영하여 날짜 변경 무료 정책을 시행하여 불확실성에 대한 심리적 부담을 경감하는 방안도 고려할 수 있다.
4. 결론
전체 예약 중 약 36.4%가 취소되었으며, City Hotel의 취소율(41.0%)이 Resort Hotel(22.7%)보다 13.8%p 더 높게 나타났다.
예약 경로와 취소 여부는 통계적으로 유의미하게 관련이 있다. 특히 Group의 경우 전체 예약 16.7% 대비 취소 비중 27.9%로 취소율이 매우 높게 나타났다.
Direct와 Corporate은 취소율이 낮아 신뢰할 수 있는 고객군으로 판단할 수 있다. 이러한 고객군의 예약을 늘리는 방향으로 호텔의 예약 취소율을 낮추는 방법을 모색할 수 있다.
고객 구성과 취소 여부 또한 유의미하게 관련이 있다.
전체 예약의 대부분은 adults only 고객으로 취소율도 평균과 유사하다.
adults + children은 전체 비중은 낮지만, 호텔 유형에 따라 의미 있는 취소율 차이를 보인다.
특히 Resort Hotel의 경우 가족 고객 비중이 더 높고, 취소율도 함께 증가한다.
따라서 Resort Hotel에서 가족 고객의 특성을 반영한 정책을 시행하여 예약 취소율을 낮출 수 있다.
5. 태블로 시각화 대시보드