brunch

You can make anything
by writing

C.S.Lewis

by 마경근 Dec 27. 2019

데이터 분석을 위한 5단계 절차

Part1. 공공데이터 분석의 개념

이번 글에서는 공공분야 데이터 분석 절차를 설명한다.


필자의 경험상, 공공데이터 분석은 통상 5가지 단계에 의하여 이루어진다. 이 단계는 폭포수 모델 처럼 순차적으로만 이루어지는 것 같지만, 실제로는 앞 단계를 반복하는 경우가 많다. 예컨대, 문제를 정의하였으나 원하는 데이터를 수집할 수 없다면 문제를 수정해야 한다. 또한, 수집한 데이터에 오류가 많아서 전처리가 불가능하다면 다시 데이터를 수집하여야 하기 때문이다.

아래 소개하는 분석 절차는 지난 글(데이터 분석으로 통찰을 얻는다)에서 소개하였던 확증적 분석 기법과 탐색적 분석 기법의 장점을 취하여 만들었다. 전반적으로 탐색적 데이터 분석 기법을 취하였지만, 명확한 분석 목표를 초기에 설정하기 위하여 일부 확증적 데이터 분석 기법을 차용하였다.

각 단계에서 수행해야 할 일은 다음과 같다.

문제 정의 단계 : 분석하고자 하는 분야를 이해하고, 해결해야 할 문제를 객관적이고 구체적으로 정의한다.

데이터 수집 단계 : 분석에 필요한 데이터 요건을 정의하고, 데이터를 확보한다.

데이터 전처리 단계 : 수집한 데이터에 존재하는 결측값이나 오류를 수정/보완한다. 경우에 따라서 데이터 구조나 특성을 변경한다.

데이터 모델링 단계: 하나의 테이블(데이터셋)이 아닌 다수의 테이블을 이용하여 분석을 하는 경우가 있다. 이러한 경우, 데이터 모델링이 필요하다.

시각화 및 탐색 단계 :  다양한 도구를 이용하여 데이터를 시각화하고, 탐색을 통하여 문제를 해결한다.

공공데이터 분석 절차


1. 문제 정의 단계 : 가장 중요하지만 가장 어려운 단계

문제는 분석의 대상이면서 분석의 목적이기도 하다. 따라서 문제가 제대로 설정되지 않으면 분석 목표가 불분명해진다. 이런 경우, 분석 과정 내내 방황하다가 성과없이 끝나기 쉽다. 나침반 없이 바다를 항해하는 것과 같기 때문이다. 데이터 분석에서 문제정의가 중요한 이유이다.

공공 분야에서 문제 정의가 어려운 이유는 다음과 같다.

많은 사람들이 공감할 만한 가치가 있는 문제를 찾아야 한다.

향후 정의된 문제 해결을 위한 구체적인 행동이 수반되어야 한다.

데이터의 제약사항(데이터 확보 가능성 등)을 극복해야 한다.

분석을 위한 전문가와 분석 기간을 확보하여야 한다.

문제 정의를 잘 하려면, 무엇보다 잘 알거나 관심이 많은 분야를 선택해야 한다(예컨대 교통, 주택 등 도메인 지식). 그리고 모든 사람들이 명료하게 이해할 수 있도록 구체적이어야 한다.

예) 서울의 교통문제는 심각한가? → 서울시민의 평균 출퇴근 시간은?

아인시타인은 이렇게 말했다.


2. 데이터 수집 단계 : 주변에서부터 온라인, 오프라인까지

주변에서부터 분석에 필요한 데이터를 찾는다. 우선 나의 PC에서부터 내가 속한 조직에서 데이터를 수집한다. 때로는 내가 가지고 있는 스몰데이터가 남이 가지고 있는 빅데이터보다 가치있는 경우가 있다.  

최근에 공공기관을 중심으로 데이터를 공개하는 곳이 많이 있다. 온라인에서 데이터 수집이 가능한 곳을 분야별로 소개한다.

[전체]

공공데이터 포털 : https://www.data.go.kr/

서울시 열린데이터 광장 : http://data.seoul.go.kr/

[행정]

주민등록 인구통계 : http://27.101.213.4/

지방행정 데이터 : http://localdata.kr/

[지도]

국가 공간정보 포털 : http://www.nsdi.go.kr/

[건축]

건축데이터 민간 개방 시스템 : http://open.eais.go.kr/

국가공간정보포털 : http://data.nsdi.go.kr/dataset

등기정보광장 : https://data.iros.go.kr/

[기상]

기상 자료 개방 포털 : https://data.kma.go.kr/

[관광]

TourAPI : http://api.visitkorea.or.kr

[농림]

농림축산부 : http://www.mafra.go.kr/mafra/322/subview.do

[금융]

금융빅데이터 개방 시스템 : https://credb.kcredit.or.kr/

금융데이터 거래소 : https://www.findatamall.or.kr/

[치안]

경찰청 공공 데이터 개방 : https://www.police.go.kr/portal/main/contents.do?menuNo=200527

[문화]

문화 데이터 광장 : https://www.culture.go.kr/data/

[복지]

보건복지 데이터 포털 : https://data.kihasa.re.kr

[교통]

국가 교통 DB : https://www.ktdb.go.k

교통사고 분석 시스템 : http://taas.koroad.or.kr/

[전기]

전력데이터 개발 포털시스템 : https://bigdata.kepco.co.kr/

[기타]

데이터 스토어 : https://www.datastore.or.kr/

SKT 빅데이터 허브 : https://www.bigdatahub.co.kr/


데이터의 저작권과 개인정보 이슈 때문에 온라인상 데이터 제공에 한계가 있는 경우가 있다. 이러한 이유로 일부 기관에서는 오프라인상에서 데이터를 제공하기도 한다. 이런 경우, 분석가는 그 기관을 직접 방문하여 데이터를 열람할 수 있으며 분석결과만 가지고 나올 수 있다. 원본 데이터는 반출이 금지된다.

서울시 빅데이터캠퍼스(https://bigdata.seoul.go.kr)

서울시 빅데이터 캠퍼스

통계 빅데이터센터(https://data.kostat.go.kr/)

통계 빅데이터센터


3. 데이터 전처리 단계  : 가장 많은 수고가 필요한 단계

"데이터 과학의 80%는 데이터 클리닝에 소비되고, 나머지 20%는 데이터 클리닝하는 시간을 불평하는데 쓰인다"  - Kaggle 창림자 Anthony Goldbloom
데이터 전처리는 힘든 과정이다

분석을 위하여 수집한 데이터가 바로 분석에 쓰이는 경우는 거의 없다. 누락된 항목이 있거나 분석에 부적합한 구조이거나..  전처리가 필요한 경우가 대부분이다. 이는 데이터 생성시에 분석을 전제하지 않았기 때문으로, 데이터 전처리는 데이터 분석 과정에서 가장 많은 노력이 투입되는 단계이다.

아래는 몇가지의 전처리 사례이다.

중복값 제거

결측값 보정

데이터 연계/통합

데이터 구조 변경 : tidy data  참조


4. 데이터 모델링 단계 : 관점별로 나누고 쪼개어 보기

분석의 규모가 커지게 되면 여러개의 데이터 테이블을 이용하게 된다(하나의 테이블에 모든 데이터를 기록하는 것은 데이터 무결성 유지와 저장 공간 확보 차원에서도 바람직하지 않다)

다수의 테이블을 연계하는 행위를 관계 설정이라고 하고 모델링이라고도 부른다. 모델링 기법으로 많이 알려진 방법중 하나는 스타 스키마이다. 스타 스키마라는 이름은 스키마 다이어그램이 별(star) 모양이라 해서 붙여진 이름으로, 한 개의 사실(fact) 테이블 여러개의 차원(dimension)로 구성되어 있다. 사실 테이블은 핵심적인 사실(사건, 거래 등의 관측값)의 기록으로 이루어지며, 차원 테이블은 추가적인 사실(일시, 장소 등)의 기록으로 이루어지는게 보통이다. 각 테이블은 공통의 키 컬럼을 이용하여 연결된다.

앞서 분석은 나누고 쪼개는 과정이라고 하였다. 데이터 분석 과정에서 분석 대상을 나누고 쪼개면서 그 결과를 사실 테이블과 차원 테이블로 구성하는 것이 모델링의 핵심이다.

아래 그림은 교통사고를 분석하기 위한 데이터 모델링 예시이다.교통사고 사건 데이터를 사실 테이블로 배치하고 사고일시, 사고장소, 사고차량 등 추가적 관점은 차원 테이블로 배치하였다.

스타스키마 모델링 기법



5. 시각화 및 탐색 단계 : 패턴을 찾고 인사이트를 얻기

구슬이 서밀이라도 꿰어야 보배 - 한국속담

시각화 및 탐색 단계는 문제 정의 단계에서 정의한 문제에 대한 답을 찾는 단계이다.

대부분의 데이터는 숫자와 문자로 이루어져 있다.

사람의 인지 능력은 한계가 있기 때문에, 한번에 많은 양의 데이터(숫자와 문자)를 받아들이고 해석할 수 없다.

데이터 시각화는 대량의 데이터를 요약하고 사람이 판단하기 쉬운 형태의 이미지로 표현함하여 데이터 안에 숨겨진 유의미한 인사이트를 발견할 수 있도록 도와준다.

아래 그림은 '서울의 미세먼지 농도 변화 추이'를 시각화한 결과이다.

변화 추이를 확인하기 위하여 10년간의 데이터를 수집하여 전처리 한 결과, 파일 사이즈는 73MByte에 달하고 이를 A4용지로 출력하면 61,428매가 필요한 규모이다(왼쪽의 그림). 아무리 인지능력과 기억력이 뛰어난 사람이더라도 이 텍스트 데이터만 가지고 변화추이를 파악하는건 불가능하다.

하지만 오른쪽 그림처럼 데이터를 요약하여 그래프로 표시하면 이야기가 달라진다. 방대한 양의 데이터가 한장의 차트로 요약되어 단번에 파악 가능하게 된다(미세먼지는 감소 추세이며, 초미세먼지는 증가 추세이다)

서울의 10년간(2009년~2018년) 미세먼지 농도 변화 추이

데이터 시각화 및 탐색 단계에서 데이터를 요약하고 설명하는 방법으로 기술 통계(Descriptive statistics)를 많이 사용한다. 기술 통계는 수집한 데이터를 요약, 묘사, 설명하는 통계 기법으로 데이터의 대표값(평균, 중위값, 최빈값 등.. 중심 경향이라고도 한다) 및 분포 등을 이용한다.

아래의 그림은 서울의 과거 10년간(2009년~2018년) 미세먼지 농도 분포를 박스플롯으로 시각화한 그림이다. 위의 그림과 동일한 데이터를 이용했지만, 다른 방법으로 시각화/탐색을 하였기에 새로운 인사이트를 얻을 수 있다(2015년의 미세먼지 분포를 확인해 보라)

서울의 연도별 미세먼지 분포


작가의 이전글 4개의 데이터 분석 유형
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari