티스토리 뷰

앞에서 신나게 까댔는데. 그러면 이 ‘데이터’는 그저 무쓸모한, 심지어 현상을 호도하는 숫자놀음인가. 그건 다시금, 우리가 이 데이터의 해상도에 어느 정도 기대를 거느냐에 따라 그럴 수도 아닐 수도 있다.

가령 이런 접근은 확실히 문제가 있다는 생각이다: 서울시는 예비창업주들을 위해 이 내국인 생활인구 모델링 데이터를 토대로 서울 전역의 도로별 유동인구 정보를 고해상도로 제공하고 있다. 그러니까 신촌역 남쪽 골목상권인 서강로20길의 주중 14-16시 20대 유동인구가 600-750명이라고 알려주는 식이다. 물론 창업자가 이것만 보고서 결정을 내리지는 않으리라 믿지만, 가게 앞 유동인구는 입지 선정의 핵심 고려사항이고 개인이 객관적으로 파악하기 어렵기 때문에 눈길이 갈 수밖에 없다. 그런 자료가 이렇게까지나 높은 해상도로 시각화되면, 방법론을 뜯어보지 않은 사람들, 자기가 잘 아는 지역의 경험적 현실과 면밀히 대조해보고 신뢰도를 조정하지 않은 사람들에게는 오해를 줄 수도 있다. “상기 정보는 실제와 다를 수 있으므로 참고정보로만 활용하시기 바랍니다.”라는 팝업 문구가 있기는 한데, 이 정도로 우려를 불식시킬 수 있는지 나는 잘 모르겠다.


그렇다면 내국인 데이터보다도 신뢰하기 어려운 이 외국인 데이터를 어느 정도로 떨어져서 보아야 안전하게 쓸 수 있을지.. 생각해 본다면, 이런 경우에 어떨까 싶다.


모바일 구글맵 덕분에 중요성이 예전같지는 않지만, 관광객에게 인쇄된 지도, 특히 도시에서 무료 배포하는 공식 안내지도는 여전히 영향력 있는 아이템이다. 서울시도 다른 관광도시처럼 7개국어로 작성된 관광자용 지도를 온/오프라인으로 배포하고 있다. 그런데 이 지도는 관광도시로서의 서울을 잘 반영하고 있는 지도인가?

외국인 배포용으로서 서울만한 대도시를 커버하면서도 핸디한 지도를 만들기 위해서는 전도 외 대축척의 부분도로 다룰 관심지역의 개수와 범위를 정해야 한다. 그런데 어떤 기준에서? 그에 대한 답은 다양할 수 있지만, 적어도 요즘 외국인들이 가장 많이 찾아가는 지역을 포함해야 한다는 것은 분명하다. 다만 지금까지는 그것을 객관화할 자료가 부족했기 때문에 내부자의 경험에 의한 관념이 작용할 여지가 많다.

2018년 서울시의 답은 다음과 같이 사대문(인사동, 명동, 북촌), 홍대앞, 이태원, 압구정-청담동이다.


서울시 공식 관광정보 사이트에서 제공하는 관광지도 (중국어 버전)


이 지도에서 설정한 지역과 범위가 적당한지, 우리가 가진 외국인 분포 데이터와 비교해 나름의 평가를 할 수 있을 것 같다.

우선 매시 단위로 생성된 집계구별 숫자의 대표값을 찾기 위해, 2018년 4월 한달 분 csv를 모아 산술평균하였다. 이때 주간(9-21시)와 야간(22-8시)을 구분하고, 제공 데이터에 구분된 대로 중국인, 비중국인, 합계를 각각 평균하였다. 

이때 문제가 되는 것은 3명 이하여서 마스킹(‘*’) 처리한 셀들이다.


기준일ID,시간대구분,행정동코드,집계구코드,총생활인구수,중국인체류인구수,중국외외국인체류인구수
"20180430","00","11110515","1101072010016","1","*","*"
"20180430","00","11110515","1101072010017","10","7","*"
"20180430","00","11110515","1101072010018","8","6","*"
"20180430","00","11110515","1101072010019","9","6","*"
"20180430","00","11110515","1101072010020","13","8","4"


이렇게 되어 있는데 가령 4월 30일 하루 데이터를 구성하는 총 798,969개의 셀 중 절반이 넘는 435,846개의 셀이 숫자가 아니라 ‘*’로 채워져 있다. 그만큼 이 문제는 데이터의 쓸모를 떨어뜨리는 심각한 사안이다. 개인정보 보호 차원이라는 말도 안 되는 이유를 댄 것에 처음에는 분개했는데, 실제로는 앞서 말한 오차한계의 문제가 더 크게 작용한 것이 아닐까 생각이 든다.

아무튼 지도에 별을 그릴 수는 없는 노릇이어서 남은 값을 바탕으로 삭제된 값을 판단하는 함수를 적용하였다.

def estimate_it(ins):
    if '*' in ins.values:
        if ins.value_counts()['*'] > 1:
            ins['cn'] = int(ins['total'])//2
            ins['noncn'] = int(ins['total']) - int(ins['cn'])
        else:
            if ins['cn'] == '*':
                ins['cn'] = int(ins['total']) - int(ins['noncn'])
            elif ins['noncn'] == '*':
                ins['noncn'] = int(ins['total']) - int(ins['cn'])
    return ins

(여기서 ins는 Python pandas의 DataFrame의 각 행에 해당하는 Series 개체)


이렇게 만들어낸 값으로 한달치를 평균해서 지도에 뿌려보았다.





2018년 4월 평균 단기체류 외국인 밀도. 위쪽은 주간(9-21시), 아래쪽 야간(22-8시).


전체적으로는 주·야간 공히 사대문안과 홍대앞, 강남대로-테헤란로, 이태원 지역의 밀도가 두드러진다. 이들 지역마다 주간과 야간 밀집지역이 약간씩 달라지는 패턴도 존재한다. 가령 야간에는 동대문시장, 강남역 주변 밀도가 높아진다.

중국인과 비중국인 사이의 차이도 보았다.



2018년 4월 주간 평균 중국인(왼쪽)과 비중국인(오른쪽) 밀도.


2018년 4월 야간 평균 중국인과 비중국인 밀도.


전체적으로 비중국인의 수가 중국인의 2배 이상이라 중국인 밀집도는 상대적으로 낮다는 걸 감안해도, 비중국인의 분포 패턴과 구분되는 면이 드러난다. 중국인의 경우 역시 구로구 인근이 상대적으로 돋보이고, 비중국인은 홍대앞에 더 몰린다.


이렇게만 보면 우리가 경험적으로 아는 사실을 재확인하는 수준에서 크게 다르지 않다. 이제 위에서 제기한 질문에 답하기 위해 지도 위 숫자를 좀 다른 관점에서 보기로 한다.

공간통계학(spatial statistics)은 비공간 데이터와 구별되는 공간 데이터의 특성을 끌어내어 분석에 활용하는 여러 기법을 아우른다. 이제 사용할 hot spot analysis, cluster and outlier analysis를 비롯해 대부분의 기법이 1990년대 이후에 개발되었을 만큼 새로운 방법론이다. 그래서 전통적 통계기법만큼 실증적 기반이 탄탄하지는 않지만, 공간데이터에 대한 새로운 해석의 여지를 제공하기 때문에 급속히 용례를 늘려가는 중이다.

그 중 hot spot analysisclustering and outlier analysis는 말그대로 일정한 지역 범위에서 측정된 현상에 대해 통계적으로 유의한 핫스팟이 어딘지 분리해내기 위해 가장 자주 사용되는 기법이다. 언뜻 유사한 듯 보이지만 ‘통계적으로 유의한 핫스팟’이 무엇인지에 대한 약간 다른 정의와 그에 따른 산식 구성 때문에 결과적으로 식별되는 영역도 다르다. 많은 경우 두 결과를 함께 놓고 풀이한다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday