자전거 데이터가 말해주는 두 도시의 차이
한국인이라면 비교하기를 좋아하는 것이 인지상정이다.
비교를 해야한다면, 역시 세계에서 가장 유명한 공원인 센트럴 파크와 하는 것이 좋지 않을까?라는 생각이 들었다. 그래서 이번에는 뉴욕 센트럴 파크와 여의도 한강 공원의 자전거 이용자 분석을 통해 두 공원의 방문자 비교를 프록시 데이터를 통해 분석해보도록 할 것이다.
자전거 이용자를 분석하는 이유는 지극히 개인적이다.
나 스스로가 따릉이 진성 이용자이기 때문이다. 퇴근시마다 따릉이를 이용하는데, 올해 11~12월은 거리가 조금 미진하기는 하나 월별 평균 200km 정도 따릉이를 이용하여 퇴근을 한다. 매일 퇴근과 함께 자연스런게 한강 공원들과 마주치는 따릉이 애용자 중 한 사람이다.
데이터에 대한 주제를 떠올릴 때는 자연스럽게 내가 자주 접하는 한강에 대한 주제를 떠올릴 수밖에 없었고, 그에 대한 세부적인 데이터를 떠올릴 때도 퇴근 길마다 나의 두 다리가 되어주는 자전거가 떠오른다. 결국, 데이터 분석이라는 것도 지극히 개인적 영역에서 출발하기 때문에 이 부분을 AI가 대체하기는 어렵다. 물론 데이터 분석이나 스킬적인 부분들은 도움이 매우 된다는 사실은 잊지 말도록 하자.
조금 더 구체적으로 이야기하면 우리가 이번에 사용할 데이터는 뉴욕과 서울의 공유자전거 데이터를 이용할 것이며, 이를 프록시 데이터의 형태로 사용할 것이다.
프록시 데이터(Proxy Data)에 대해 한번 이야기해 보도록 하자.
프록시(Proxy)라는 단어가 가지는 뜻은 바로 "대리, 대리권" 등을 뜻한다.
프록시 서버라는 것을 많이 들어봤을텐데, 윈도우에서 인터넷 접속이 안 될 때 인터넷 설정에 들어가게 되면 프록시 설정에 대한 부분을 건드릴 수 있다.
프록시 서버는 컴퓨터 네트워크 용어로, 클라이언트와 서버 사이에서 대리인 혹은 중계 역할을 하는 서버를 의미한다. 이 프록시 서버를 사용하는 이유는 보안, 캐싱, 그리고 접근 제한 등을 위해 사용하는데, 사용자와 서버 사이에서 적절한 권한을 대행하는 역할을 한다고 알아두면 좋을 것 같다.
이렇듯 어떤 단어 앞에 프록시라는 단어가 붙으면, 무언가를 대리해주는 역할을 한다고 할 수 있다. 우리는 이것을 데이터 앞에 붙여 프록시 데이터(Proxy Data)라는 것에 대해서 한번 알아보기로 하고, 이 프록시 데이터를 활용하여 여의도 한강 공원과 뉴욕 센트럴 파크를 비교해보도록 하겠다.
어떤 현상을 이해하기 위해서는 관측값이 필요하다.
가장 이상적인 방식은 우리가 알고 싶은 값을 직접 측정하는 방식이다.
예를 들어 "여의도 한강공원의 11월 방문자수를 시간대별로 알고 싶다면, 다음과 같은 방법을 떠올릴 수 있다.
1) 현장 수기 관측
가장 원초적인 측정 방식이다. 사람이 특정 장소에 서서 일정 시간 동안 들어오고 나가는 수를 직접 세고 일일이 기록하는 것이다. 기술이 발달하기 전 교통 조사, 상권 분석 등에서 오랫동안 사용되어온 방식이며 현재도 일부는 사용된다. 가장 대표적인 예는 인구 조사이다. 최근에는 모바일을 통해서도 조사에 참여할 수 있지만, 직접 방문을 통해 조사를 진행하는 전통이 현재까지도 이어지고 있다.
하지만 현장 수기 관측은 한계가 뚜렷하다. 인구 조사를 현장 수기 관측으로 한다면 모든 집을 방문해야 하고, 그에 따라 엄청난 규모의 인력을 필요로 하다. 그렇기 때문에 인력과 시간에 대한 비용이 매우 크며, 장기 관측은 사실상 불가능 하다. 또한 여의도 한강공원을 생각해보면 출입구가 한 곳만 있는게 아니라 사방이 출입구 이기 때문에 이런 공간에는 적용이 어렵다는 단점이 있다.
2) 자동 관측
카메라와 소프트웨어가 발전함에 따라, 수기로 직접 세지 않아도 관측할 수 있는 방법들이 계속해서 생겨나고 있다. AI 영상 인식을 통해서 영상에 나오는 객체를 인식하는 방법은 이미 나온지 오래이며, 각종 로그 기록, GPS 기반 통행 패턴 및 기타 관측 센서 등을 활용한다면 우리가 생각하지 못했던 부분을 수치화하여 관측할 수 있다.
이전에 필자가 일했던 푸드테크 기업에서는 고기의 숙성도를 카메라 관측을 통한 색 배열을 통해 고기 숙성 AI 기술을 통한 숙성 고기 품질 표준화라는 목표를 세우기도 하였다. 인간의 드립 커피 추출 패턴을 모방하여 인간과 동등한 수준의 드립 커피를 뽑아내는 커피 드립용 로봇팔 역시 자동 관측을 통해 패턴을 분석하여 이를 실전에 활용한 예라고 볼 수 있다.
하지만 이 역시 현실에는 제약이 많다. 왜냐하면 모든 공원과 도시 공간에 센서를 설치할 수 없으며, 프라이버시 문제도 결부되어 있기 때문이다.(물론 이곳이 중국이라면 가능하겠지만 말이다.) 또한 인적 자원이 들지 않는 대신 기술 자원이 많이 드는 문제도 있으며, 설령 관련 데이터를 얻는다 하더라도 데이터를 측정하는 기관에서만 데이터를 들고 있기 때문에 우리 같은 일반인들은 그런 데이터를 접근할 수 없다는 단점이 있다.
즉, 어떤 현상을 이해하기 위해서는 직접 관측이 가장 이상적인 방법이지만 현실적으로는 불가능하다는 단점이 존재한다.
이 지점에서 등장하는 것이 바로 프록시 데이터(Proxy Data) 개념이다.
프록시 데이터: 직접 관측할 수 없는 현상을 대신 설명하거나 추정하기 위해 사용되는 간접 데이터
즉, 완전한 관측값은 아니지만, 현상과의 밀접한 연관성을 지니기 때문에 이를 활용해 원래 알고 싶었던 값을 추론(Inference)하는 방식이다.
프록시 데이터가 성립되기 위해서는 두 가지 조건이 중요하다.
첫 번째는, 상관성(Correlation)과 구조적 연관성(Structural Relationship)으로 프록시 데이터가 실제 현상을 일정한 방향으로 반영해야 한다는 것이다.
두 번째는 일관성(Consistency)으로 측정 방식이 일정하고, 시간˙공간적으로 비교 가능해야 한다는 것이다.
프록시 데이터는 100% 정확한 값을 제공하지는 않는다. 하지만 패턴, 변화, 상대적 비교, 추세를 읽는 데는 도움이 된다.
우리가 지금까지 여의도 한강 공원에서 쓴 대부분의 데이터 역시 프록시 데이터라고 보면 될 것이고, 이번에 분석하려는 것 역시 프록시 데이터다.
이제 서로 다른 두 공간에 있는 뉴욕과 서울의 공유 자전거 이용이 빈도에 대해 살펴보도록 하자. 그리고 이 프록시 데이터를 통해서 어떤 결론을 낼 수 있을지 같이 고민해보도록 하자.
우리가 사용할 원시데이터는 서울시 열린데이터와 뉴욕시 공공데이터셋 사이트에서 구할 수 있었다. 그곳에서 서울 따릉이 이용 기록과 뉴욕 공공자전거 이용 기록을 다운 받을 수 있다. 모두 CSV 형태로 다운 받을 수 있는데, 용량이 큰 관계로 월별로 다운 받아야 한다. 다운 받은 파일을 데이터 클렌징과 정규화를 통해 데이터 정합성을 맞추고, 하나의 파일에 두 개의 테이블을 조인하여 합쳤다.
Colab을 활용하여 파이썬으로 데이터를 가공한 후 한 개의 파일로 합치면 998MB, 즉 1GB에 육박하는 CSV 파일로 재탄생한다. 이런 대용량 파일은 일반적인 시스템에서는 작동시키면 작업 시간도 매우 많이 걸리고, 작업 하는 도중 흔히 말해서 뻑이 나는 경우가 많기 때문에 처리가 가능한 곳에서 작업하도록 하자. 아래에서 천천히 설명하도록 하겠다.
참고로 아래 데이터도 서울과 뉴욕 전체 데이터를 가져온 게 아닌, 뉴욕은 센트럴파크 주위만 위도야 경도로 짤라서 가져왔으며, 서울은 여의도 근처만 위도야 경도로 잘라서 가져온 데이터이다. 만약 뉴욕과 서울 전체로 데이터를 범위를 확장했다면 이보다 훨씬 더 큰 데이터 용량을 차지했을 것이다.
1) 월별 대여 기록
이 그림은 막대 그래프를 활용하여 NYC(뉴욕)과 Seoul(서울)의 공유 자전거 대여 기록이 얼마나 존재하는지 살펴본 그래프이다. 나는 이를 'Monthly_sum'이라고 부른다. 월별 합계인 셈이다. 또한 앞으로 자전거 사용 1건당 기록은 '트립'으로 부르도록 하겠다. 조금 더 예쁜 그래프를 꾸미기 위해 여러가지 시도 해봤지만, 비교를 위해 가장 직관적인 그래프는 막대그래프라는 결론이 났다. 두 개의 지표가 서로의 높낮이를 통해서 명확하게 비교되기 때문이다.
이 데이터는 월별로 그래프를 나눠놨기 때문에, 계절이나 날씨 데이터와 결합하여 분석하는 것도 가능하다. 데이터를 실제로 모두 살펴보면 일별로도 나뉘어져 있기 때문에, 일별 날씨 관측치와 결합하여 분석할 수도 있다. 하지만 이미 뉴욕과 서울의 자전거 대여 트립 수를 합친 것만으로도 1기가에 육박하는 데이터가 생성되었다. 행만 천만개가 넘기 때문에, 클라우드 형태의 저장소에 넣어 놓으면 돈이 많이 들 것이 우려되어, 구글의 빅쿼리에 저장한 후 쿼리 분석하였다. (Google Cloud Console을 활용할 경우 매월 1TB 빅쿼리 사용이 무료이다.)
서로 다른 두 공간이지만, 월별 자전거 트립수는 비슷한 추세를 보인다. 바로 1~2월, 즉 겨울에는 날씨가 추운 탓인지 이용자수가 급감했다가, 3월 봄부터 올라가 여름, 가을에 피크를 찍고 날씨가 추워지는 10월부터 점차 줄어드는 추세이다. 이는 뉴욕과 서울의 온도와 날씨가 유사하기 때문이다. 나의 비서 제미나이에게 서울과 뉴욕 평균 기온 분석을 시켜보았더니, 두 도시의 평균 기온은 유사했다. 다만 서울이 더울 때는 서울이 더 덥고, 추울 때는 더 추운 경향을 보이는 것을 확인할 수 있었다.
서울은 이처럼 더울 때는 덥고, 추울 때는 추운 날씨를 보여주는데 이러한 날씨 때문에 한국인들이 극과극의 성향을 많이 보인는게 아닌지 추측한다.
내 경험에 의하면, 베트남 같이 월교차가 적은 기후에 사는 사람들은 전체적으로 온화한 느낌인데 반해, 한국처럼 월교차가 큰 지역에 사는 사람들은 성미가 오락가락 하는 경우가 많은 것 같다. 물론 이것은 지극히 개인적인 뇌피셜임을 잊지 말자.
2) 시간대별 트립 수
여기에 더해 시간대별 트립수 그래프를 추세로 확인하기 위해 선으로 그려보았다. 이전 월별 트립수 비교를 통해서 뉴욕과 서울의 기후적 공통점을 확인할 수 있었다면, 두 도시의 차이점을 보여주는 그래프는 바로 이 시간대별 추세선이다.
전반적인 추세는 비슷하다. 새벽에는 이용자수가 급감했다가, 출퇴근 시간쯤인 오전 7시부터 그래프가 치솟기 시작한다. 그리고 점심~오후 시간대에는 그 이용자가 낮아졌다가, 오후 6시 퇴근시간에 다시 급상승, 마지막으로 퇴근시간이 지난 8시쯤부터 다시 낮아지는 추세이다.
주목할만한 부분은 그래프 기울기이다. 전체 트립수를 보면 뉴욕 약 550만, 그리고 서울 약 500만으로 큰 차이를 나타내지는 않는다. 하지만 뉴욕시의 10~16시 방문자수가 완만한 기울기로 증가한다는 점을 살펴보면 센트럴 파크 주변의 이용자들은 조금 더 여유롭게 피크닉 같은 것을 즐기기 위해 센트럴 파크를 이용할 수 있지 않나라는 추축을 해볼 수 있다.
즉, 여의도 부근에는 출퇴근을 위해서 사람들이 훨씬 더 많이 몰리는 경향성이 존재하고, 뉴욕 센트럴파크 주변은 휴식이나 피크닉 등 레져를 위해서 사람들이 방문하는 경향이 더 크다는 경향성이 존재한다라고 우리는 이 프록시 데이터를 통해서 결론 내릴 수 있을 것이다. 이를 증명하는 것은 바로 시간대별 추세선의 기울기를 통해서, 서울 여의도 부근의 출퇴근 시간대의 기울기가 뉴욕시 센트럴 파크 주변의 기울기보다 더 큰 것을 확인함으로써 결론 내릴 수 있을 것이다.
두 개의 그래프를 보고 우리는 이렇게 결론 내릴 수 있을 것이다.
뉴욕 센트럴 파크: 여유와 휴식을 취하기 위해 사람들이 방문하는 공간
여의도 한강 공원: 출퇴근을 위해 거치는 공간
뉴욕 센트럴 파크를 가본적이 있다. 사실 너무 오래되서 기억은 안 나지만, 미국의 공원들은 대부분 여유로운 곳이었던 걸로 기억한다. 그것이 평일이든, 주말이든 간에. 대신 서울의 공원들은 출퇴근을 하는 서울 시민들이 잠시 거쳐가는 공간일 경우가 꽤 많이 있다. 나 역시 매일 여러 한강 공원을 출퇴근을 위해 들리는만큼 내 케이스에 정확히 들어맞는다.
나에게 여의도 한강공원은 집 근처라는 친근함과 더불어 서울에 처음 왔을 때 불꽃놀이를 보러 왔던 공간이기도 하고, 처음으로 벚꽃 구경을 갔던 추억이 깃든 공간이다. 약 15년이 지난 지금 추억의 공간을 데이터로 분석해보는 것은 개인적으로도 뜻 깊지만, 데이터 분석적으로도 뜻깊은 시간이었다.
아래는 대여 포인트와 반납 포인트를 KeplerGL을 통해 동영상으로 시각화한 자료이다.
여의도 한강공원 챕터는 이렇게 마무리하고, 다음 연재부터는 망원 한강공원 분석에 들어가보도록 하겠다.
많은 구독 부탁 드린다.
Pattern Studio (data processing & analysis) — https://patternst.com/en
Seoul Open Data Plaza — https://data.seoul.go.kr/
New York City Data - https://citibikenyc.com/
English Ver - https://medium.com/@chunja07
Tools: Python (GeoPandas, Matplotlib, Contextily)