대외활동/Brightics 서포터즈

[Brightics | 실습] 서울시 공유 자전거 이용자 & 이용시간 분석:: EDA, Chart 생성, 레포트 작성

케이와이엠 2021. 6. 22. 22:54

2021.06.15 - [삼성 Brightics] - [Brightics | 실습] 브라이틱스로 본 서울시 공유 자전거 현황 :: 데이터 전처리편

개인미션 2주차 !

저번 시간까지 데이터 전처리와 업로드 단계를 모두 마쳤습니다.

이젠 데이터를 샅샅이 따져보는 EDA시간 가져볼까해요. 그리고 알아낸 통계값들은 보기 좋게 차트로 정리해서 Brightics 만의 레포트 기능까지 완성해보려고 합니다. 오늘도 얼른 시작해보겠습니다.

 

혹시 잊으신 분들을 위해, 다시 한번 더 말씀드리자면 !

저는 서울시 공공자전거인 따릉이의 현황을 데이터로 분석해보고자 해요.

이를 통해서 시간, 요일별 이용량 그리고 성별 연령별 비교를 통한 따릉이 유저들을 알아내보고자 합니다 :)

지난 시간까지의 내용은 아래에서 확인하실 수 있어요

 

2021.06.15 - [삼성 Brightics] - [Brightics | 실습] 브라이틱스로 본 서울시 공유 자전거 현황 :: 데이터 전처리편

 

[Brightics | 실습] 브라이틱스로 본 서울시 공유 자전거 현황 :: 데이터 전처리편

​ 안녕하세요 ! 이번주를 시작으로 약 3주간 개인분석 프로젝트가 진행될 예정인데요 , 첫 개인 분석인 만큼 정말 설렙니다 ٩(๑>∀<๑)۶ Brightics를 활용하여 흥미있는, 또 때로는 심도깊은 주제

uumini.tistory.com

 

 


 

여기서 퀴즈 !

따릉이를 주로 타는 사람은 남자일까요, 여자일까요?

과연 우리의 예상대로 젋은 1-20대 연령층들이 많은 비중을 차지하고 있을까요?

저는 개인적으로 4-50대분들도 자주 타시는 모습을 목격한 적이 많은데 말이죠!

또, 따릉이를 오랜 시간 이용하는 분들은 누구이며, 장거리로 주행하는 분들은 누구인지 !

다들 궁금하시지 않으셨나요 !!! 오늘 제가 유저들에 대해 꼼꼼히 분석해보겠씁니다

이용량은 어떻게 될까 ?

따릉이 유저 분석 - 남녀 이용량

먼저, 이용량 데이터(use_ifo_oct.csv)를 이용하여 남녀별 차이를 확인해볼게요.

지난 시간, 제 전처리를 마친 제 모형들이

로 벌써 .. 모양이 길어졌더라구요 ! 분석 결과를 마무리했을 때, 한 눈에 들어왔으면 좋겠다 싶어서

unload 함수를 통해 사용자의 Local PC에 새로운 CSV 파일로 만들어주었어요 .

 

그렇게 해서 일단 new_use_ifo_oct.csv 가 새롭게 탄생하였답니다.

이 데이터를 이용해서 성별에 대한 데이터들을 모두 뽑아보겠습니다.

이용건수 별 남녀의 비율을 <파이차트>를 통해 구해보았어요.

그 결과 !! 성비로 보면 남성이 여성보다 이용률이 많았네요. 총 이용건수 중에 남성이 차지하는 비율이 55%를 차지하였습니다.


다음으론 남녀별 이용시간과 주행거리 차이를 비교해보았어요.

 

step1. 이상치 제거

 

차트를 그리기 전 잠깐 ....!!!! 이용시간의 평균이 약 1500분(=25시간) ... 주행거리 평균이 25000M ... 뭐 말이 안되는 값 아닌지요 ..?????

하루동안 사람이 25시간을 달리고 25KM를 밟는다는게 ㅠ 상식적으로 불가능한지라 이상치가 분명 존재하는 것 같아요 

그렇다면 boxplot을 통해 이상치 존재 여부를 확인 -> 이상치 제거 (outlier detection함수) 작업을 실행합시다.

이용시간 이상치

주행거리 이상치

한 눈에 보아도 1.5* IQR 범위를 넘어선 OUTLIER들이 보이시죠 ㅠㅠㅠㅠㅠㅠㅠㅠ

이제 Outlier detection 함수를 불러와줍니다.

이상치를 찾는 방법에는 1) 통계적 접근 2) 머신러닝을 통한 기계적 접근이 있는데요

못하는게 없는 우리의 Brightics !! 두 가지 방법 모두 제공하고 있습니다 :)

바로 Outlier Dtection(Tukey/Carling)와 Outlier Detection(Local Outlier Factor) 함수입니다.

대략적으로 설명해드리자면, Outlier Dtection(Tukey/Carling) 은 사분위수와 중위수와 같은 통계 계산 방식을 이용합니다.

가장 일반적인 방법으로 박스 플롯에서도 이러한 방법을 채택하고 있어요. 반대로 Local Outlier Factor(LOF)는 밀도를 활용하여 이상치를 찾아냅니다. 예를 들어 산점도를 찍었을 때 주변보다 밀도가 상대적으로 낮은 점들을 제거하는 것이죠 !

이번 분석에서는 박스 플롯을 활용한 Outlier Dtection(Tukey/Carling) 방법을 사용하겠습니다 !!

그 결과 3천개 가량의 이상치들이 삭제되었어요 !

너 이녀석들 ........ 정상 값들을 방해하다니 !

step2. 이용횟수 변수 고려하기

다시 이용시간과 주행거리를 비교하려고 했지만 ! 여전히 ! 아직도 큰 값이 나와서 골머리를 앓던 찰나 ...

이용횟수 usenum 변수가 영향을 주고 있는 것을 깨달았어요 ㅠㅠ!!! 따라서 새로운 변수들로 새로 생성해주었습니다.

Add Function Column으로 usetime/usenum & move_distance/usenum 을 해주었습니다.

 

만들어진 데이터셋을 Statistic Summary 함수를 이용해 이용시간의 평균과 미디언 값을 계산하여 column형태의 표로 그려보았어요.

그 결과 !! 평균 값을 비교해보면 다음과 같은 수치가 나옵니다.

여자 : 이용시간 37.7분, 주행거리 960.9m

남자 : 이용시간 32.3분, 주행거리 810.1m

=> 여성이 남성보다 이용시간과 주행거리가 많았습니다.

따라서 ! 종합적으로 다음과 같은 결론을 내릴 수 있어요 !

 

이용 건수는 남자가 더 많지만, 한 번 빌릴 때면 여자가 더 오래, 더 멀리 달린다.


 

연령대별 이용량은 어떻게 될까 ?

따릉이 유저 분석 - 연령대 이용량

그렇다면, 연령대별로 비교한 따릉이 사용자는 어떻게 될까요?

체력이 좋고 대중교통을 자주 이용해야하는 젊은 연령층들이 많이 사용할 것으로 예상이 가는데요,

한 번 확인해봅시다 !

연령대 코드는 AGE_001는 10대를 나타내며, AGE_002는 20대, AGE_003은 30대이며 AGE_008은 비회원, 외국인, 그 이상 등을 나타냅니다.

따라서 차트를 통해 20대>30대>40대>50대 순으로 이용자가 많은 것으로 보입니다.

특히 2-30대 이용자는 전체의 45%나 차지하고 있고, 이용 비율은 나이가 증가할 수록 감소하는 모습입니다.

체력과 운동에 관한 관심 뿐만 아니라, 따릉이의 특성 상

앱을 설치하고, 가입하고, 전자상으로 결제를 진행하기까지의 과정이 복잡한 것도 한 몫 하는 것으로 보입니다

 

나이가 어릴 수록 따릉이를 더 자주 이용한다.




 

또한, 연령대별 성별 (연령대 x 성별) 데이터로 더 자세히 들여다보자면,

전반적으로 남성의 비율이 전 연령대에서 많이 차지하고 있지만, 2-30대와 70대의 경우엔 여성의 비중이 커지고 있다.

남성비율이 50-68%로 여성보다 높지만,

주 이용고객인 2-30대에선 비슷비슷하다 .


 

어느 시간대에 주로 이용할까?

따릉이 사용 시간 분석 - 시간대 별 이용량

다음으론 ! 따릉이 이용자들이 어느 시간대에 자주 이용하는지를 파악해보았습니다.

이를 위해서 rent.info.csv 데이터를 datetime formatter함수와 decompose datetime 함수로 재설정해주었어요.

Datetime Formatter 함수

yyyy-MM-dd H:mm 형식으로 저장된 rent_time 데이터를 yyyyMMddHHmmss 형태로 변경해줍니다.

**Brightics의 시계열 함수는 시간 데이터의 형식을 'yyyyMMddHHmmss'로 가정하고 있으므로 함수 사용 전 해당 양식으로 변환하는 작업을 꼭 수행해주어야 해요 !!!

Datetime Formatter

parameter

Input Columns : rent_time 선택

Display Mode : Append 선택

In Format : yyyy-MM-dd H:mm 타입 선택

Out Format : yyyyMMddHHmmss 선택

In Language, Out Language : English 선택

Decompose Datetime 함수

간 계열 컬럼을 이용하여 파생변수를 생성합니다.

Decompose Datetime 함수는 컬럼을 대상으로 연,월,일,주차,요일을 계산하여 새로운 컬럼으로 추가해줍니다.

저는 요일별 이용량을 확인해주기 위해서 이 과정을 거쳤어요.

parameter

Input Columns : reformat_rent_time

③Add Function Column 함수

특정 칼럼을 새로 지정합니다.

저는 시간대별 이용량을 확인해주기 위해서 timeline = substr(reformat_rent_time,9,2) 을 해주었습니다.

Add Function Column

짠 ! 이렇게 새로운 테이블이 또 완성이 되었습니다.

 

출퇴근 시간을 주목하자 !

먼저, 00시 부터 23시까지 시간대를 구분하여 언제 가장 이용 현황이 높은지 살펴보았습니다.

그 결과, 아래와 같은 차트가 완성되었습니다.

이를 해석해보자면, 출근 시간인 7시와 8시에서 소폭 증가하는 것을 발견하였습니다.

출근 시간 이후인 9시에는 훌쩍 감소해버렸네요.

그리고 퇴근시간인 5시와 6시 사이의 이용량이 가장 많은 시간대인 것으로 나타났습니다.

또한 시간적 여유가 생기는 오후시간으로 갈수록 이용시간도 늘어나고 있네요.

출퇴근 시간인 8-9시 , 17시-18시에 이용하는 분들이 많다

이를 통해서, 따릉이의 핵심 유저분들은 아무래도 등하교를 하는 학생들과 출퇴근을 하는 직장인이 아닌가 짐작이 가네요 . 그리고 비교적 시간이 촉박한 출근 시간보다, 퇴근 시간에 여유롭게 따릉이를 오랜 시간 타시는 분들이 늘어 17-18시에 이용량이 가장 많은 것으로 나타나고 있는 것 같아요.

 

 

주말을 주목하자 !

다음으론 요일 별로 이용건수와 이용시간을 비교해보았습니다.

Decompose Datetime 함수를 통해 구한 요일(reformat_rent_time_dayname)을 GROUP BY로 묶어서 요약통계량을 구해주었어요.

그랬더니 !

먼저 대략적인 이용 건수는 일주일의 시작보다는 한 주의 끝으로 갈 수록 늘어나고 있네요.

이용시간 또한, 목요일, 금요일, 토요일, 일요일에서 더 높게 나타나고 있어요 !

( 요일을 순서대로 놓고 싶었는데 ㅠㅠ 아무리 연구를 해봐도 정렬 방법을 모르겠더라구요 ...

이 부분에 대해서 멘토님께 꼭 물어보고 수정해서 가져와보겠습니다 ㅠ!!)

이용량, 이용시간이 많은 만큼 당~~~연히 주행거리도 같은 형태를 보이고 있겠죠 ??

여기서 !!! 그렇다면 단시간 주행을 많이 한 요일이 과연 평일인지 / 장시간 주행을 하는 건 평일보다 주말일지 체크해보고 싶었어요 !

전체 이용 건수에서 특정 이용건수를 나누어 주었답니다. 이는 Add Function Column함수와 JOIN함수를 통해 조작해주었어요

이를 차트로 정리해보자면

 

15분 이하 이용 건수 비율은 월요일, 화요일, 수요일, 목요일, 금요일 ! 즉 평일에 집중되어 있습니다

그리고 60분 이상의 장시간 이용 비율은 주말에 집중되어있습니다.

이로써 평일과 주말의 유저분들의 이용 패턴이 다르다는 점을 확인할 수 있었어요.

단시간 이용은 평일에, 장시간 이용은 주말에 많다.

 

 

Report 리포트로 마무리 정리를 해보자

리포트 작성

이렇게 차트를 통해 시각화작업을 거쳐서 서울시 공공자전거 따릉이 데이터로 eda작업을 해보았습니다 !

이를 Brightics만의 세트 기능인 Report로도 바로 작성할 수 있어요:)

 

모델 옆에 있는 report 버튼을 눌러주시고, + 버튼을 눌려 리포트 이름과 부연설명을 적어주면 리포트가 생성됩니다.

예시로 위에서 사용한 그래프 몇개를 가져와보았어요.

리포트 예시

 

짠 ! 이런식으로 바로 모델과 레포트가 연동됩니다.

모델링 부분 도메인에서 뭐가 뭔지 복잡해서 한 눈에 안들어올 수가 있으니, 리포트 기능을 사용해서 그때 그때 정리해주는 것도 방법이겠네요 :)


이렇게까지 개인 미션 2주차 ! EDA 작업과 차트 시각화 작업도 마무리되었습니다 :)

3주차에는 이를 활용한 T-TEST 와 또 다른 주제로 브라이틱스 실습 내용을 가져와볼까합니다.