Part3. 알짜 공공데이터 활용 01 - 서울시 생활인구 데이터
공공기관에서 제공하는 데이터중 가장 쓸모있다고 생각하는 알짜 데이터를 골라서 활용 방법을 공유한다.
데이터 활용을 설명하기 위하여 Python, QGIS, PowerBI 등 상황에 적합한 도구를 사용한다. 하지만, 공유하고자 하는 핵심은 분석 도구가 아닌 데이터의 활용이다.
알짜 데이터의 선택 기준은 아래와 같다(순전히 저자의 주관적 기준이다)
가치성 : 데이터는 유의미한 분석 소스로 사용만할만 가치를 가져야 한다(단순 집계성 데이터 배제)
신뢰성 : 데이터의 생성 과정을 논리적으로 이해할 수 있어야 하며 흠결이 없어야 한다.
완전성 : 데이터를 이루는 속성과 값은 누락과 중복이 없어야 한다.
지속성 : 데이터는 일정 주기에 따라 지속적으로 갱신되어야 한다(1회성 데이터 배제)
뉴스래빗은 한국경제신문의 데이터 저널리즘 콘텐츠이다. 신종 코로나바이러스 감염증(코로나19)으로 온나라가 시끄럽던 시기에 뉴스래빗은 아래의 기사를 게재한다.
"유동인구가 곧 자영업의 근간인 현실에서, 코로나19가 발생한 후 서울 중심가 유동인구가 평균 20% 줄면서 자영업이 큰 위기를 맞을 것으로 보인다"는 내용이다.
여기서 유동인구 산정의 근거로 사용한 데이터가 이번 글의 주제인 '생활인구 데이터'이다.
생활인구 데이터는 상권 분석, 축제 효과 분석, 입지 분석 등에 활용될 수 있다. 구체적인 예를들자면,
성별, 연령층 등 유동 인구의 세부적인 특성을 파악하여 적합한 매장 선택과 광고 타케팅에 활용한다.
지역 축제에 관광객이 어디서 얼마나 많이 왔는지를 파악하고 다음 행사에 활용한다.
사회복지 시설 건립, 무료 와이파이 AP 설치, 교통안전 시설 설치에 유동인구를 반영한다.
유동인구 데이터는 상권 분석, 입지 분석 등 다양한 분야에 폭넓게 활용된다. 예전에는 유동인구를 파악하기 위하여 많은 사람을 동원하여 직접 주요 장소를 오가는 사람을 직접 세었다. 많은 시간과 노력이 필요한 일이었음에도 정확도를 담보하기 어려웠다.
최근에는 통신사에서 제공하는 휴대전화와 기지국간의 신호를 베이스로 만들어지는 데이터를 많이 사용한다. 휴대전화 보급률이 100%에 육박하는 상황에서 이는 매우 합리적인 선택으로 여겨진다. 통신 데이터를 이용하면 적은 비용으로 빠른 시기에 유동인구를 파악할 수 있다.
하지만, 통신사에서 개발한 유동인구 데이터는 꽤 비싼 가격으로 판매되고 있다. 개인이나 소규모 기업, 연구기관에서는 필요해도 쉽게 엄두를 내기 어려운 실정이다.
서울시에서 공개하는 생활인구 데이터는 이러한 유동인구 데이터를 대체하기 위하여 만들어진 데이터이다.
서울시와 KT는 업무 협약을 통하여 생활인구 데이터를 개발하여 제공하고 있으며 매일 업데이트하고 있다.
서울시의 열린데이터광장에서 데이터를 제공한다.
데이터는 서울시 열린데이터광장 > 통계 > 서울생활인구 에서 다운로드할 수 있다.
- 대상 범위
내국인 : '서울에서 생활한 서울 內 지역인구'와 '서울에서 생활한 서울 外지역 인구'로 구분한다.
장기체류 외국인 : 90일 이상의 체류를 목적으로 입국한 외국인으로 외국인 등록증을 보유한다.
단기체류 외국인 : 90일 미만의 체류를 목적으로 입국한 외국인으로, 해외 로밍 데이터를 활용한다.
- 시간 범위
2017년 1월 1일부터 현재까지 공개되고 있으며, 특별한 사정이 없는 한 앞으로도 계속 공개할 예정이다. 데이터는 매 시간 단위로 집계하며, 5일이 경과한 후에 공개한다(예컨대, 오늘이 3월30일이라면 3월25일 데이터를 다운로드할 수 있다)
- 공간 범위
데이터가 커버하는 공간적 범위는 서울시이다. 즉 경기도나 강원도 등 다른 광역 지자체의 생활인구 데이터는 제공하지 않는다.
공간 집계 단위는 집계구, 행정동, 자치구이며 각각 별도의 파일로 제공한다. 집계구는 해당 행정동에 포함되고, 행정동은 해당 자치구에 포함된다.
자치구, 행정동, 집계구에 대한 보다 상세한 설명은 공간 데이터_2를 참조한다.
텍스트의 일종인 CSV(Comma Separated Values) 포맷을 기본으로한다. 집계구를 나타내는 통계지역경계 파일은 Shape 포맷이고, 행정구역 코드 정보는 xlsx 포맷이다.
생활인구 데이터는 '집계구 단위', '행정동 단위', '자치구 단위'로 구분하여 공개하며, 각 단위별로 데이터의 구성이 다르다. 사용 용도에 적절한 파일을 다운로드 받아 활용하면 된다('집계구 단위'는 생소하고 다루기에도 쉽지 않다. 초보자라면, '자치구'나 '행정동' 데이터를 추천한다)
서울을 19,153개의 집계구 공간으로 나누어서 집계하므로, 가장 세밀하게 생활인구를 파악할 수 있는 단위이다. 하지만 집계구 코드는 숫자로만 이루어져 있어서 그 코드만으로 해당 위치를 이해하기 어려운 한계가 있다.
① 서울 생활인구(내국인)
특정 시점에 서울의 각 집계구 단위에 존재하는 대한민국의 국적의 인구 수를 집계한 테이블 형태의 데이터이다.
각 컬럼(속성)의 내용은 아래와 같다.
일자 : 생활인구 측정일로, 8자리(연도+월+일)로 구성된다.
시각 : 생활인구 측정 시간이다. 2자리로(00~23)로 구성된다.
행정동 코드 : 생활인구 측정 지역으로, '명동', '서교동' 등 행정동을 나타내는 코드이다. 8자리로 구성되며, 행정안전부의 코드를 이용한다. 코드와 매칭되는 행정동 명칭은 자치구 단위 > 행정구역 코드정보에서 다운로드할 수 있다.
집계구 코드 : 생활인구 집계단위인 집계구를 나타내는 코드이다. 13자리로 구성되며, 2016년 기준 통계청 집계구 코드를 이용한다. 집계구의 중심 좌표와 집계구 속하는 행정동 목록은 첨부된 '집계구.csv' 파일을 참조하면 된다.
생활인구 : 측정 일시, 측정 집계구 단위에서의 총 생활인구 수이다.
연령/성별 인구 : 측정 일시, 측정 집계구에서의 연령/성별 생활인구 수이다. K-익명성처리지침에 따라. 데이터의 값이 3이하인 경우 마스크(*) 처리한다.
일자, 시각, 행정동코드, 집계구코드 컬럼의 값은 범주형 데이터로 시간과 장소, 대상을 구분하기 위하여 사용되는 변수이다. 반면, 생활인구와 연령/성별 인구 컬럼의 값은 집계형 데이터로 관측값의 값이다. 자세한 내용은 앞서 포스트한 '데이터 유형은 시각화를 결정한다'를 참고한다.
② 서울 생활인구(장기체류 외국인) : 특정 시점에 각 집계구 단위에 존재하는, 국내에서 90일 이상의 체류를 목적으로 입국한 외국인의 수를 집계한 테이블 형태의 데이터이다.
각 컬럼(속성)의 내용은 아래와 같다.
일자, 시각, 행정동코드, 집계구코드 : 서울 생활인구(내국인) 컬럼의 내용과 동일하다.
생활인구 : 측정 일시, 측정 집계구 단위에서의 총 장기체류 외국인 인구 수이다.
중국인 : 측정 일시, 측정 집계구 단위에서의 장기체류 중국인 인구 수이다.
비중국인 : 측정 일시, 측정 집계구 단위에서의 중국인을 제외한 장기체류 외국인 인구 수이다.
③ 서울 생활인구(단기체류 외국인) : 특정 시점에 각 집계구 단위에 존재하는, 국내에서 90일 미만 체류를 목적으로 입국한 외국인의 수를 집계한 테이블 형태의 데이터이다.
각 컬럼(속성)의 내용은 아래와 같다.
일자, 시각, 행정동코드, 집계구코드 : 서울 생활인구(내국인) 컬럼의 내용과 동일하다.
생활인구 : 측정 일시, 측정 집계구 단위에서의 총 단기체류 외국인 인구 수이다.
중국인 : 측정 일시, 측정 집계구 단위에서의 단기체류 중국인 인구 수이다.
비중국인 : 측정 일시, 측정 집계구 단위에서의 중국인을 제외한 단기체류 외국인 인구 수이다.
④ 통계지역경계 (집계구.shp, 2016)
통계청에서 제공하는 집계구와 행정동 경계 Shape 파일이다(Shape 파일에 대해서는 앞서 포스팅한 5. 공간 데이터 파일의 유형 을 참조하도록 한다)
압축 파일을 해제하면, 집계구와 행정동을 나타내는 Shape 파일을 확인할 수 있다. 아래 그림에서 왼쪽은 집계구(집계구.shp)이며, 오른쪽은 행정동(행정구역.shp)파일을 QGIS로 불러온 모습이다.
통계지역 경계 데이터의 좌표계는 UTM-K (GRS80), EPSG:5179이다. 좌표계에 대해서는 공간데이터_3에서 설명하였다.
서울을 424개의 행정동 공간으로 나누어서 집계한다. 집계구에 비하여 공간이 크므로 상세한 분석은 어렵지만, 익숙한 명칭을 사용하기 때문에 분석 과정이 간단하고 결과를 공유하기 쉽다.
① 서울 생활인구(내국인)
특정 시점에 서울의 각 행정동 단위에 존재하는 대한민국의 국적의 인구 수를 집계한 테이블 형태의 데이터이다.
집계구 단위 데이터에서 '집계구 코드' 컬럼만 빠진 구조이다. 데이터는 10,176행으로(424개 행정동 * 24시간)으로 이루어져 있다.
컬럼(속성)은 집계구 단위와 동일하므로 설명을 생략한다.
② 서울 생활인구(장기체류 외국인)
설명 생략
③ 서울 생활인구(단기체류 외국인)
설명 생략
④ 서울에서 생활한 서울 外지역 인구
서울 外 지역에서 거주하며, 통근/통학, 쇼핑, 관광 등 특정 시점에 서울의 특정 지역에 존재하는 내국인과 장기 체류 외국인 수를 집계한 테이블 형태의 데이터이다.
행정동코드 : 생활인구 측정 지역으로, '명동', '서교동' 등 행정동을 나타내는 코드이다.
거주지 코드 : 경기도와 인천 지역은 시/군(52개)의 코드이고, 그 외 지역은 광역시도(14개) 코드이다.
순위 : 해당 행정동에서 많이 생활한 서울 外지역(거주지)의 순서이다.
위의 그림을 예로 설명을 하면, "2017년10월 16일 14시 종로구 청운효자동에는 고양시 덕양구 주민이 411명으로 가장 많았으며, 그 다음으로는 부천시 주민이 187명으로 많았다."
⑤ 서울에서 생활한 서울 內지역 인구
서울 內 지역에서 거주하며, 통근/통학, 쇼핑, 관광 등 특정시점에 서울의 특정 지역에 존재하는 내국인과 장기 체류 외국인 수를 집계한 테이블 형태의 데이터이다.
거주지 자치구 코드 : 서울의 각 자치구(25개)의 코드이다.
위의 그림을 예로 설명 하면, "2017년10월 16일 14시 종로구 청운효자동에는 서울시 종로구 주민이 411명며, 서울시 중구 주민이 187명, 서울시 용산구 주민이 주민이 179명이 있었다."
생활인구 데이터의 구체적인 활용 방법은 다음 글('논란의 집회 인원, 빅데이터는 알고있다_2')에서 다루기로 한다.
서울시에서는 빅데이터 캠퍼스(서울시 마포구 상암동 소재)를 운영하고 있다.
이 곳에서 '3명 이하의 인구 수'와 '중국인 외 외국인의 인구 수'를 분석할 수 있다.
빅데이터캠퍼스의 데이터는 분석만 가능하며 외부 반출은 불가능하다. 데이터 분석 결과는 심사후 반출 가능하다.
빅데이터 캠퍼스에는 온라인에서 구하기 어려운 유용한 데이터들이 많이 있다. 향후 소개할 예정이다.