brunch

You can make anything
by writing

C.S.Lewis

by Peter Jun 07. 2018

데이터 분석의 기초

누구든 데이터 기반의 사고를 하는 방법

이제 '데이터 분석'이란 말은 참 진부한 이야기가 되어가고 있습니다. 이미 '빅데이터'라는 이름으로, '인공지능'이란 말로 변화의 속도는 저만치 가 있는 것처럼 보이기 때문입니다. 몇 년 전에도 몇십 년 전에도 존재한 데이터 분석은 그런 점에서 과거의 유산 같은 느낌입니다.



하지만 이런 데이터 분석도 제대로 못하는 기업은 많습니다. 물론 데이터 기반의 사고를 하는 방법을 아는 것이 결여되었고 그것이 중요한지조차 모르고 경영을 하는 기업인이 아직 존재하는 놀라운 일 덕분이겠죠. 과거에 프로그래머라면 대단히 새로운 직업이었지만 이제는 취미로도 한 두 가지 프로그래밍 언어는 직업과 별개로 하는 사람이 많아지고 있습니다. 그중 Python이나 R 등 오픈소스를 이용해 데이터 분석을 하는 직장인이 많아지고 있다는 것도 별로 놀라운 일이 아닙니다. 유수의 통계 솔루션은 이제 'Self BI'를 앞에 두고 GUI 기반의 쉬운 활용법을 판매 전략으로 전면에 내세우고 있습니다. 예전보다 기본적인 수준은 누구나 쉽게 도달할 수 있는 여건이 된 셈이죠. 이런 점에서 데이터 분석의 방법론을 아는 것은 이제 특별한 것이 아닌, 데이터로 둘러싸인 세상에서 알아야 할 필수적인 어떤 것이 되어가고 있습니다.



물론 분석 방법론에 왕도가 따로 존재할 수 없습니다. 통계 솔루션 업체에서는 저마다의 방법론을 약어로 정리해서 왕도인 것처럼 이야기 하지만 비교해 보면 결국 비슷한 흐름을 가지고 있는 것을 알 수 있습니다. 고전적인 통계 분석의 방법은 어떤 기술이라기보다는 하나의 사고 흐름인 것이죠. 그 점에서 전문적인 데이터 분석가가 아니더라도 기업의 마케터나 기획자들은 이런 데이터 분석의 방법론을 데이터를 대하는 사고 체계로 보유하고 있어야 합니다. 쉽게 제공되는 BI 데이터부터 엑셀에 수작업으로 만들어 둔 데이터에 이르기까지 그것을 다룰 때 몸이 먼저 반응하는 것처럼 일련의 프로세스를 체득하고 있어야 합니다.







1. 데이터가 어떻게 생성되었는지 알아야 합니다

모든 분석 여정을 출발하기 전에 내가 갖고 있는 재료가 어디서 어떻게 만들어졌는지 아는 것은 근본적으로 중요한 일입니다. 실무 프로세스 상에 어느 시점에 누가 어떤 행위를 하면서 테이블에 적재되고 있는 것인지 아는 것은 흔히 말하는 비즈니스 도메인을 잘 아는 것에 가깝습니다. 데이터가 실무의 어느 시점에 발생하는지, 어떤 기준을 가지고 어떤 것이 적재되는지의 미묘한 차이가 실제 의미를 전혀 다르게 만들 수 있기 때문입니다. 얻고자 하는 분석 주제에 적합하게 데이터가 쌓이고 있는지를 아는 것은 핵심입니다. 보통 분석을 하는 기획자, 마케터, 분석가가 데이터 생성 과정 자체의 엔지니어적인 지식이 부족한 경우가 많기에 기간계 시스템을 운영하는 IT부서의 도움을 얻어 최초 설계 당시의 의도를 아는 것도 좋은 방법일 것입니다. 의도에 따라 제약 조건을 나중에 어떻게 필터를 만들어서 볼 것인지도 결정됩니다.



2. 분석에 적합한 기간을 정해야 합니다

과거의 패턴을 통해 일어난 일을 일정 기준으로 정리하는 일이든지 미래의 일을 예측하는 일을 하기 위해서는 산업의 특성, 구하고자 하는 일이 변해가는 기간의 길이에 맞게 분석 데이터의 기간도 정리되어야 합니다. 고객의 취향이 자주 바뀌지 않는 KPI도 있지만 수시로 변하는 것도 있기에 데이터의 주기, 보통 배치 작업이 일어나는 고전적인 기간의 길이를 실무에 맞게 정하는 것이 적합한 관성을 만들어 줍니다.



3. 결측치와 이상치 활용 여부에 대해 정합니다

그렇지 않은 경우도 있지만 많은 데이터에는 일부 속성이 비어 있거나 평균보다 많이 크거나 작은 값이 있게 마련입니다. 실무진에서 만약 매출이 비어 있거나 이상치가 있으면 뭔가 특수한 일이 벌어졌거나 프로세스를 악용한 일이 벌어지는 이상 징후를 포착할 수 있습니다. 하지만 데이터만 주로 보고 있는 분석가는 이런 내막까지 알기 힘듭니다. 때로는 이런 이상치에 대해서만 집중해야 하는 경우도 있으며 이런 것을 일정 범위에서 제거하고 보편적인 큰 기준을 세워야 할 때도 있습니다. 분포가 정규적인 모습을 따르지 않는다면 어떻게 정규화시켜서 분석을 쉽게 만들 것인지도 고민이 필요할 수 있습니다. 결측은 어떻게 변환할 것인지 혹은 그대로 둘 것인지 아예 제외할 것인지에 대해서도 논의가 필요합니다. 보통 데이터적인 사고가 둔감한 기업은 이런 부분에 무신경합니다. 이런 논의를 개인에게 맡겨두거나 이런 것을 뭐하러 논의하느냐고 관심이 없기도 합니다. 하지만 이런 작은 차이는 결국 전체 분석의 인사이트를 다르게 만들 수 있습니다.



4. 기초적인 데이터 분포들을 탐색합니다

각 변수들의 분포를 빈도나 분위수 분포를 통해 확인합니다. 이상치 분포를 이것으로 알 수 있지만 각 속성의 값들이 얼마나 있고 어느 것에 어떻게 편중되어 있는지 수준을 아는 것이 대부분의 분석 문제를 해결하는데 도움을 줍니다. 데이터 활용 수준이 낮은 기업은 사실 이 정도만 알아도 이야기하는 데 부족함이 없는 경우도 많습니다. 분포를 통해 이 속성을 활용할 수 있는지 어떤 필터로 관측치의 어디를 제외할 것인지를 정할 수 있습니다.



5. 불필요한 차원을 제거합니다

어떻게 보면 가장 중요한 일입니다. 많은 변수들이 어떤 종속변수를 향하고 있다면 그중 정말 종속변수에 영향을 주는 독립변수가 무엇인지 선별하는 과정입니다. 우리는 사실 너무 많은 데이터에 포위당하고 있습니다. 기업에서 흔히 하는 예측의 정확도가 떨어지는 원인은 이 과정을 검증하지 않고 연역적인 수준의 사고로 정해버리기 때문입니다. 과거에 하던 고려 변수들, 흔히 하던 관성으로 인과관계를 정해버립니다. 사실 간단한 데이터는 엑셀로도 할 수 있는 이 작업은 분석을 더욱 엣지 있게 만들어 주는 과정입니다. 굳이 어려운 차원 축소 방법을 거치지 않아도 상관성을 본다든지 회귀식에서 얼마만큼의 영향력을 주는지를 보는 것도 적지 않게 도움이 됩니다. 중요한 것은 무엇이 필요 없는지를 밝혀서 포커스를 좁히는 것입니다.



6. 범위를 정합니다

모델링에 해당하는 이 과정은 과거의 기록이라면 어디까지를 유효한 범위로 정할 것인지 미래에 대한 예측이라면 알고자 하는 종속변수에 영향을 미치는 변수들이 각각 얼마만큼 영향을 미치는지 정하는 과정입니다. 기업 업무에서 이것이냐 아니냐를 따지는 데 많이 쓰는 의사결정 나무나 로지스틱 회귀분석을 비롯해 고전적인 예측 모델링을 할 때는 통계 솔루션 활용이 필요합니다. 이런 노력은 만든 모델이 얼마나 실제 결과를 잘 맞추는지 미리 분리해 둔 데이터나 그 이후 기간의 결과로 검증합니다. 흔히 말하는 정확도 말이죠. 이것은 분명 연역적인 룰 베이스(rule-based) 로직과는 차이가 있습니다. 보통 기업의 고전적인 SI 작업은 사후 검증이 명확하지 않은 기획실 등의 로직에 의해 많이 작성됩니다. 하지만 많은 양의 데이터를 가지고 비즈니스 성패를 따지는 시대에는 이런 연역적 기반의 복잡한 사람의 로직은 들인 노력에 비해 명쾌한 답을 얻기 어려운 경우가 더 많아졌습니다. 과거에 로직을 만들던 기획, 마케팅 등의 부서가 이제는 스스로 데이터 모델링을 할 줄 아는 주체가 되어야겠습니다. 



7. 예측력이 얼마나 좋은지 평가받아 가장 좋은 모델을 적용합니다

이미 이 이야기까지 앞에서 해 버렸네요. 기본적으로 데이터를 다루는 작업 자체가 하나의 과학 실험이기 때문에 실험처럼 각 케이스별로 평가를 받아 가장 우수한 방법을 채택하는 과정을 따릅니다. 데이터 과학이라고 부르는 자체가 이런 과정, 이런 과정을 상식으로 받아들이는 사고에 기인하는 말이죠. 위에서 누가 이야기했다고 그 방법대로 인사이트를 정하고 로직을 짜는 것이 아니라 모든 것을 후보에 놓고 검증을 통해 정말 고객과 사업의 만족에 도움이 되는 방안을 선택하는 것이 필요합니다. 좋은 모델 역시 사업 환경의 변화에 따라 계속 수정되어야 합니다. 적절한 재검증과 다른 방법론으로 더 우수한 모델로 바꿔 나갑니다.



8. 다시 문제 정의의 단계로

데이터 자체에 매몰되는 것에 대해 저는 과거 아티클을 통해 늘 부정적인 입장을 유지했습니다. 흡사 파도에 집중하느라 파도를 일으키는 바람에 대해 지구와 달의 관계에 대해서는 보지 못하는 일이 기업 내부에 너무 많기 때문이죠. 다시 문제를 정의해야 합니다. 데이터를 수집하는 과정부터 방법론 자체에 이르기까지 새로운 문제에 맞게 전체적으로 바꾸는 과정이 필요합니다. 문제 정의는 사실 많은 기업에서 늘 하고 있는 활동입니다. 다만 이것에 맞게 데이터를 모으고 투자를 하는 과정이 부족할 뿐입니다. 작게 시작하면 됩니다. 다만 이런 사고를 구성원 모두가 갖고 있는가가 더 중요하고 시급합니다.







앞서 순서대로 말씀드린 데이터 분석의 단계는 매우 고전적이고 설명 또한 정답일 수 없습니다. 다만 대부분 이런 방법론과 유사한 경우가 많고 데이터를 가지고 사고하는 방법이 이런 식인 경우가 많아서 말씀드리는 것입니다. 데이터를 통한 열매에 관심이 많지만 실은 지난한 이런 과정이 있기에 열매가 있음을 또한 말씀드리고 싶습니다. 데이터를 분석하기 좋게 전처리하는 과정에 보통 70% 전후의 시간을 쓴다고 합니다. 이런 복잡한 정의와 필터링의 과정을 늘 달고 살면서 실무를 할 수 없다고 생각하실 것입니다. 하지만 그만큼 우리의 사업 구조와 현황이 이렇게 복잡하고 때로는 프로세스가 정리되어 있지 않은 방증이기도 합니다. 다만 이런 과정에 대한 설명이 데이터를 볼 때 어디서라도 관점을 잡는데 도움이 되기를 바랄 뿐입니다.



 

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari