본문 바로가기
Data/Data Analystics

[2023 빅콘테스트] 클래식 공연 활성화를 위한 효과적 가격 모델 수립

by DenverAlmighty 2024. 5. 1.

처음 데이터 분석을 배울 때 2018년도에는 문제가 인덱스 개발, 값 예측 정도였는데 문제가 많이 다양해졌다.

선택한 주제는 정형데이터 분석 분야  - 어드밴스드 리그 "클래식 공연 활성화를 위한 효과적 가격 모델 수립" 이다.


배경 + 분석 목적

2022 국민문화예술활동조사 보고서에 따르면, 가구 소득이 높을수록 문화예술행사 관람이 증가하고, 가장 많이 지출하는 분야는 영화였다. 아무래도 접근성이 좋고, 장르도 다양하고, 가격이 저렴안 영화가 1위였고 클래식은 중간정도 위치였다.

목적이 "클래식 공연 활성화"이니 접근성이나 관심은 내가 해결할 수 있는 분야가 아니었고,
나처럼 크게 관심 없는 사람이 어떻게 하면 클래식 공연을 보러갈까 라고생각해보니 가격으로 진입장벽을 낮추는 것이었다.
러시아에있을 때 학생증만 있으면 당일 공연표를 2,3층/구석이지만 영화표 가격에(1~2만원)에 구매할 수 있어서 종종 발레, 오페라 공연을 보러다녔다. 영화관이 우리나라처럼 많지 않고 오히려 극장이 시내에있어서 접근성이 더 좋았다. 

우리 팀은 이미 클래식 분야에 관심 많은 고객의 관람 횟수를 늘리고, 관심이 적은 고객에게는 클래식을 접할 수 있는 가격 모델을 수립해 총 클래식 공연 관람 경험 증가시키는 것을 분석의 목적으로 정했다.

 


분석

사용 툴 : csv파일로 데이터를 제공해줘서  python을 사용할 때는 colab, SQL을 사용할 땐 snowflake를 사용했다.
코로나 시기에는 좌석 띄어앉기를 시행해서 따로 분리해서 사용하였다.

 

가설

우리가 세운 가설은 아래이다. 

  1. 홀별로 가격 차이가 있을 것이다.
    홀별로 크기(층, 좌석 수 등)가 다르므로 가격도 차이가 있을 것이라고 생각했다.
  2. 사전 예매가 많이된 좌석일 수록 선호도가 높다.
    관람하기 좋은 자리이기때문에 사전 예약 때 예매되었거나 티켓 오픈 후 먼저 예매됐을 것이다.

EDA

2. 사전 예매가 많이된 좌석일 수록 선호도가 높다.

-> 티켓 가격도 고려했지만 비슷한 자리여도 차이가 많이났고, 가격 0원이 꽤 많았다. 0원 자리가 64%이고, 할인 유형 47%가 초대권이었다. 

티켓 가격 분포. 0원이 매우 많다.

 

티켓 가격 분포. 0원이 64%로 매우 많다.
할인 유형 비율. 초대권이 47%이다.

 

 

  • 좌석 관련하여 파생 변수 생성
    • floor, block, col, row 생성
    • 합창석 → 0층으로 변환
    • BOX1 → 블록 이름을 BOX1로
    • 블록 없는 좌석 → -로
  • 사전 예매 좌석 변수 생성
    • tran_date(예매 날짜) - open_date(티켓 오픈 날짜) > 0 이면 1, 아니면 0

 

우선 분석을해서 어떻게 시각화할까 고민했는데 좌석을 "층+구역이름+row(좌석)" 으로 변환했다.

 

좌석 선호도. 보라색 -> x축 : 좌석, y축 : 예매 수 / 분홍색 -> x축 : 좌석, y축 : (공연 날짜-예매 날짜) 총합

 

생성한 전 예매 좌석 변수별로, 홀 별로 선호 좌석을 살펴봤다. 

보라색 차트들은 사전 예매좌석, 분홍색 차트들은 사전 예약이 아닌 좌석이다. (노란 선은 손으로 그린거다..)

사전 예매 좌석 선호도 : x축 : 좌석, y축 : 예매 수이다. 코로나, 비코로나 시기 모두 좌석별로 사전 예매 수 가 비슷한 모양이다. 

비사전 예매 좌석 선호도 : x축 : 좌석, y축 : (공연 날짜-예매 날짜) 총합이다. (공연 날짜 - 예매날짜) 가 클수록 예매가 빨리되었음을 의미한다. 예매가 빨리되었다는 것은 선호도가 높다는 것으로 가정했다. 이 역시 보라색 차트와 모양이 비슷하다.

+ 추가로 비선호 좌석도 있지 않을까해서 찾기 위해 취소 티켓으로도 봤는데 선호 좌석과 비슷하게 나왔다. 아마 예매 수도 많아서 그만큼 취소도 많을 것이고, 비선호 좌석은 아예 예매를 안하지 않았을까

 

그 다음으로 블록별로 열, row 카운트를했더니 확실하게 차이가있었다.

현행 방식은 크게는 층/구간별로 가격이 동일하므로 같은 가격이니 앞자리가 선호도가 높다.

row별
col별

 

* 티켓 가격과 구분은 정액제가 아니라 판매자가 정하는 방식인 것같다. 블록별 가격도 대체적으로 비슷하지만 공연별로 다른 경우도 있었다.
(ex 어떤 공연은 층별로, 어떤 공연은 1층에 앞부분, 뒷부분 다른 가격으로 등)

 


결론

위에 좌석동가 있는 리사이트홀의 경우 box별로 가격이 동일했는데 box1의 stage쪽과, 반대편 자리는 뷰가 많이 차이날 것같은데 현행 방식에는 동일한 가격이다. 다른 홀도 마찬가지로 특히 맨 끝자리일수록 뷰가 차이가날텐데 블록/층이 같으면 같은 가격이다. 

+ 좌석별 예매 가격을 보니 예매날짜로 본 선호도와 비슷했다. 

그래서 블록별로가 아닌 선호도(공연 날짜-예매 날짜), 가격으로 kmeans, k=3으로 좌석 등급을 나눴다.