초보 데이터 분석가(Data scientist)가 자주 하는 네 가지 실수들

동시대를 사는 직장인이라면 누구나 한번쯤은 엑셀을 만져본 경험이 있을 것입니다. 엑셀 기능에 익숙해 지고, 점점 다양한 함수를 배워서 숫자를 좀 만지다 보면, 왠지 의미있는 무언가를 분석할 수 있을 것 같아 설레기도 하죠.

9d0e5d32dd9f6bfec02d76f59e49df0e

오늘은 이렇게 데이터 분석을 시작하시는 분들이 많이 하는 실수들, 그리고 이러한 실수를 피하는 법에 대해 이야기 해보려고 합니다.

1. 상관관계는 인과관계가 아니다.

엑셀로 분석을 하다 보면 상관관계 분석을 해야 할 경우가 종종 생깁니다.
보통 아래와 비슷하게 생긴 Scatter plot을 작성하고 R2 값을 확인하는 작업이죠.

엑셀 상관관계 분석
양의 상관관계

위의 그래프와 같이 아름다운 R2가 보이면,  대부분의 사람들은 X는 Y에 많은 영향을 끼친다라는 결론을 내리고 싶은 욕구가 마구 샘솟을 것입니다.

하지만 높은 상관관계가 있다고 해서 반드시 “인과관계”가 있는 것은 아닙니다.
예를 들어, 아래와 같은 상관관계가 관측되었다고 합시다.

“아버지의 나이와 아들의 키 사이에는 0.7의 상관관계가 있다.”

아버지의 나이와 아들의 키 사이에는 인과관계가 존재하는 것일까요? (=아버지의 나이가 아들의 키에 영향을 미치는 것일까요?)

당연히 아닙니다. 아버지의 나이가 높을 수록 아들의 나이도 높아지고, 그래서 발육 상태가 좋아지기에 아들의 키가 큰 것입니다. 이럴 때 아들의 나이를 Confounding variable 이라고 하는데요, 쉽게 설명하면 X, Y 변수 모두와 상관관계가 있는 제 3의 변수를 말합니다.

소스: Wikipedia

두개의 변수 사이의 상관관계를 밝혀내는 것 만으로도 충분히 의미가 있는 일이고, 이러한 발견은 많은 분석의 첫 걸음이 됩니다. 하지만 인과관계를 증명해 내기 위해서는 통제된 조건 하의 실험을 통한 검증을 거쳐야 합니다. 단순한 상관관계 만으로 인과관계를 단정짓는 오류를 피하시기 바랍니다.

2. 성급한 일반화의 오류 – 검증을 통해 과적합화를 피하자.

예측 모델에 대한 수요가 많아지면서 “과적합화”를 피하는 것도 점점 중요해 지고 있습니다.

과적합화(Overfitting)란 training 데이터 셋에 대한 설명력/예측력이 높은 모델이 일반 데이터 셋을 잘 설명/예측하지 못하는 문제를 말합니다. 쉽게 말하면 A에는 잘 들어맞았던 규칙인데 B나 C, D, E…에게는 잘 들어맞지 않은 규칙인 것이죠.

내가 가지고 있는 20명의 고객 데이터로 누가 카드를 연체할 지 예측하는 모델을 만든다고 가정해 봅시다. 데이터의 변수로는 나이, 성별, 직업, 학력, 소득, 거주지, 결혼여부 등등이 포함되어 있습니다. 다양한 변수를 써서 예측 정확성을 높일 수록 모델이 복잡해 지겠죠? (ex – 대방동에 사는 40세 이상 여성 주부의 연체 확률은 80%이다)

모델을 세울 때는 보통 샘플 데이터를 활용하기 때문에, 모델이 복잡해 질 수록 일반 데이터에 적용했을 때의 정확도는 샘플 데이터에 대한 정확도 보다 떨어지기 마련입니다. 일정 수준 이상 복잡한 모델은 샘플 데이터에 대한 정확도가 매우 낮아지구요.

머신러닝을 통한 예측 모델이 많아지면서 과적합화를 피하기 위한 많은 방법들(교차 검증, Regularization, model comparison, pruning 등)이 있습니다. 어떤 예측 모델을 사용했느냐에 따라 검증하는 방법도 다 달라지지만, 어떤 방법을 사용하든 내가 세운 모델을 검증하는 단계는 잊지 말아야 할 것입니다.

3. 명확한 목적, 계획없이 데이터에 빠져들지 말자.

Right question을 해야 right answer를 얻을 수 있다고 하죠? 데이터 분석에도 적용되는 이야기 입니다.

데이터 분석은 목적에 따라 여섯 가지의 유형으로 구분할 수 있습니다.  데이터 분석의 유형에 따라 분석 방법 및 결과물도 달라집니다.

분석의 목적을 구체적으로 정의하지 않고 숫자에 “뛰어들게” 되면 수많은 중간 그래프, 피벗 테이블을 거치고 거쳐 처음 목적한 바를 굉장히 비효율적으로 달성하게 되거나, 아니면 그것마저도 달성하지 못하게 됩니다. (목표가 없었기 때문에…)

분석을 통해 좋은 대답을 찾기 위해서는 사전에 분석을 통해 알고자 하는 것, 확인해야 하는 변수들, 결과물로 나와야 하는 그래프 혹은 모델이 어떤 것인지를 머릿속에 그리고 분석을 시작해야 합니다.

4. 산업, 고객에 대한 관심을 놓지 말자.

소스: capillarytech.com
소스: capillarytech.com

대부분의 데이터 분석은 결국 의사 결정을 돕기 위한 것입니다. 현재 많은 기업들이 의사 결정을 할 때 Data-driven decision을 따르고 있죠.

하지만 결국 데이터는 의사결정을 위한 하나의 도구 일 뿐입니다. 어떤 모델이라도 미래에 대한 100% 예측은 불가능 하기에 좋은 의사결정을 하기 위해서는 산업, 고객에 대한 인싸이트도 중요합니다.

데이터 분석가가 산업, 고객에 대한 인싸이트를 가지고 있다면 데이터가 하는 소리를 더 잘 이해할 수 있을 것입니다. 그러한 분석가는 기업 측면에서도 Data-driven이 아니라 Data-informed decision을 할 수 있도록 해주는 귀중한 자산이 될 것이구요.

마치며

엑셀을 사용하는가, Matlab이나 Python을 사용하는가에 관계 없이 데이터 분석가는 기업의 의사 결정에 필요한 “바른” 근거를 제공할 수 있어야 합니다. 이 글을 읽은 당신이 보다 적은 시행착오로 좋은 데이터 분석가로 성장하기를 바랍니다.