본문 바로가기
CS/Python&R

데이터 드리븐 리포트

by Diligejy 2023. 11. 15.

 

 

 

 

밑줄긋기

p.27

파는 것이 인간이다(To sell is Human) - 다니엘 핑크

 

p.36

엄청난 주장에는 엄청난 근거가 필요하다 - 칼 세이건

 

p.48

"통계로 거짓말하기는 쉬워도, 통계 없이 진실을 말하기는 어렵다." - 안드레예스 둥켈스

 

p.54~55

사내 데이터 분석 관련 보고서를 작성하는 동료 혹은 상사로부터 가끔씩 이런 메시지를 받을 때가 있다. 

 

"예전에 썼던 분석 보고서 포맷 좀 보내줘."

"데이터는 있는데 어떻게 분석해야 할지 모르겠다. 분석 좀 해줘."

"예쁜 그래프를 그리려면 어떻게 해야 하지?"

 

이런 연락에는 대부분 다음과 같은 질문만 역으로 던져도 한동안 정적이 흐르며 그들이 본질적인 고민을 하도록 돕는다.

"분석 보고서의 목표(목적)가 무엇인가요? 증명하고자 하는 가설이 존재하나요?"

우리는 '문제해결'을 위해 보고한다는 사실을 잊어서는 안 된다. 문제를 해결하려면 문제를 정의할 수 있어야 한다. 미국의 사회학자 피터 드러커는 '측정할 수 없다면 관리할 수 없다'고 했다. 즉 데이터 드리븐 보고는 측정하고자 하는 것이 명확해야 한다.

 

만약 당신이 사장이고 어떤 부서가 가장 훌륭한지 성과를 평가하여 급여를 차등해서 주려고 한다면 어떻게 할 것인가? 우선 지표가 필요한데, 사내 평가를 위한 가장 대표적인 지표는 KPI다. '훌륭한 부서를 어떻게 정의할 것인가?'에 대한 질문에는 숫자로 답할 수 있어야 한다. 만약 당신이 '고생 많이 하잖아'에 대한 가치가 높다면 컴퓨터가 켜져 있는 평균 시간을 지표로 삼을 수도 있고, '매출을 많이 올린 팀이 훌륭한 팀이지'라고 생각한다면 매출 실적을 지표로 삼을 수도 있다.

 

인사 담당자인 당신이 훌륭한 부서의 특징을 세 가지로 분석해서 사장에게 보고한다고 가정해보자. 매출 실적을 훌륭한 부서의 지표로 삼고 데이터로 증명을 한 것을 멋지게 들고 사장에게 간다.

 

나 : 사장님, 데이터 기반으로 훌륭한 부서 특징에 대해 분석해봤는데, 총 세 가지 특징이 있었습니다.

사장 : 말 끊어서 미안한데 '훌륭한 부서'는 어떻게 정한 것이죠?

나 : 훌륭한 부서는 '매출 실적'을 기준으로 정했습니다. 회사의 가장 큰 이익을 주는 부서가 훌륭한 부서라 생각했습니다.

사장 : 그건 '이익을 주는' 부서이지 '훌륭한' 부서는 아니지 않나요? 훌륭한 부서는 매출 실적도 좋고, 조직 문화도 좋아야 훌륭한 부서 아닐까요? 매일 야근하면서 이익을 내는 부서라면 지속 가능하지 않을 거라 생각합니다.

나 : 아, 그건 미처 고려하지 못했습니다. 다시 검토하겠습니다.

 

물론 사장이 말한 '좋은 조직 문화'의 지표를 어떻게 정할 것인가 역시 어느 회사나 고민할 문제다. 하지만 여기서 말하고 싶은 것은 사람마다 설정하는 지표가 다르기 때문에 문제 해결을 요청한 의사결정자의 의중도 중요하다는 점이다. 정의가 모호하다면 논리적인 근거로 지표를 설정하는 것 또한 중요하다. 데이터 드리븐 보고는 '문제 해결'을 위해 한다는 사실을 잊어서는 안 된다.

 

p.56

문제를 해결할 떄는 대부분 큰 부분이 먼저 던져지고 작은 부분은 실무자가 찾아가야 한다. 예를 들어 '우리 회사 광고 비용으로 매년 10억 원을 지출하는데 과연 효과가 있는가?'에 대한 문제를 해결할 때 '광고 지출'이라는 것은 큰 개념이므로 쪼갤 필요가 있다. 광고는 상품별로 분류할 수도 있고 유튜브, TV, 웹 배너 등의 채널 별로 분류할 수도 있다. 광고 지출에 대한 정의를 세웠다면 해당 광고의 효과를 매출 실적으로 정할 것인지 혹은 광고 채널에 따른 전환율로 정할 것인지도 결정해야 한다. 상사와 커뮤니케이션하는 과정 중 문제 해결의 단서가 될 것으로 판단되는 논리적인 기준을 한 가지 정한 다음 그 주제를 MVP로 먼저 분석해본다. 

 

이 사례에서 MVP는 유튜브 광고 지출에 대한 전환율을 먼저 보고하는 일이다. 보고를 하고 나면 의사결정자가 보고 싶어 하는 주제와 방향성을 구체화할 수 있다. MVP를 선보고한 다음 최종 목적지인 광고 지출이라는 큰 그림을 향해 나아가면 업무 효율은 높이고 시행착오는 줄여줄 것이다.

 

p.73

"잘못된 문제를 정확하게 푸는 것보다 정확하게 정의된 문제를 대략 풀어내는 것이 낫다." - 존 튜키

 

p.76-77

분석 목표가 정해졌으면 분석 계획서를 작성한다. 분석 계획서를 작성하는 가장 중요한 첫 번째 이유는 의사결정자와의 합의다. 해결하고자 하는 문제에 대한 접근 방식과 보는 관점, 그에 따른 해결 방식은 다양할 수밖에 없다. 분석 계획서에 명확하게 문제를 정의하고, 어떤 데이터를 수집할지, 일정은 언제가 될지 등 분석의 범위를 명시하고 의사결정자에게 합의를 받아두어야 분석 과제가 끝난 후 계획서와 비교해 분석 목적을 달성했는지 평가도 가능한 것이다.

 

두 번째 이유는 데이터 수집에 대한 명분 확보다. 데이터는 다양한 연관 분서에서 가져와야 하는 정보이고, 그것은 곧 각 부서의 협의를 받아야 한다는 뜻이다. 대부분의 부서는 데이터 공유를 꺼려한다. 이유로는 첫째, 그 데이터가 어떤 새로운 문제를 야기해서 우리 부서에 새로운 과제를 던질지 모르기 때문이고, 둘째, 데이터 정제가 제대로 되어있지 않고, 셋째, 그냥 찜찜하기 때문이다(이게 가장 크게 작용하기도 한다). 어차피 진행할 일이라면 수평적인 입장에서의 요청보다는 의사결정자의 동의를 보여주어 탑다운식으로 진행하는 편이 수월하다.

 

다시 말해 분석 계획서는 분석의 전체 뼈대를 구성하고 상사와의 커뮤니케이션이 원활하게 됐는지, 최종 결과물은 어떠한지에 대한 상사의 동의를 얻는 과정이다. 뿐만 아니라 협업이 필요한 부서에 데이터 공유를 요청할 때 이 분석 계획서가 결정적인 역할을 하기 때문에 매우 중요하다. 어느 정도 높은 레벨의 상사에게 결재를 받았는지에 따라 협업의 속도가 결정되기도 한다.

 

데이터 분석 과제 계획서
1 과제명 연구의 최종 목표와 연구 내용을 알 수 있도록 함축적으로 기재
2 과제 목표 과제의 필요성, 개발 방법, 목표, 기대 성과를 하나의 문장으로 요약
3  KPI(성과물) 정량적, 객관적으로 측정 가능하고 연구 핵심 성과 및 질적 요소를 최대한 반영한 활용 관점의 정량 지표로 설정
4 과제 분야 경영/ICT/안전/신사업 등 회사의 상황에 맞춰 작성
5 수행 기간 과제 수행 기간 기재
6 수행 예산 과제 진행 위한 총 예산에 대한 항목 구분하여 기재
7 키워드 과제와 관련된 키워드 세 개 이상 기재
8 분석 필요성 데이터 분석 과제 관련 현황(문제점)과 필요성 기술
9 주요 내용 데이터 분석 과제의 주요 연구 낸용을 기술. 과제 흐름을 나타내는 분석 개념도도 가능하면 표시
10 주요 분석 데이터 NO, 데이터 이름, 추출 기간, 데이터 수집량(건), 출처
11 기대 성과 과제의 성공적 수행에 따른 기대 성과를 정량적/정성적 성과로 구분하여 기술
12  과제 책임자  
13  보안성 검토 보안 필요: 유/무        공개범위 : 공개/제한 공개/비공개
14 관련 부서 합의 수행 부서:                  부서장: 

 

p.91

결측치가 속한 행을 어떻게 처리할 것인지는 데이터를 가장 잘 이해하는 실무자의 도메인 지식과 경험에 따라 결정하는 것이 가장 좋지만, 일반적으로 다음과 같은 방법을 사용한다.

 

- 해당 행 삭제 : 결측치를 포함하는 열이 데이터를 이해하는 데 결정적인 영향을 주기 때문에 결측이 있을 경우 해당 행을 삭제할 수 있다. 표본이 줄어드는 문제가 발생할 수 있기 때문에 데이터가 충분히 많을 경우를 고려한다.

 

- 해당 열 삭제 : 결측치가 특정 열에 너무 많이 발생할 경우에는 해당 열을 삭제할 수 있다.

 

- 단순대치법 : 수치형인 경우 0 혹은 평균이나 중앙값으로 대체하고, 범주형인 경우 그룹별 최빈값을 사용한다. 결측치가 포함된 데이터를 분석할 때 결측치를 제거하지 않고 사용할 수 있기 때문에 가장 많이 사용하는 방법이다. 반대로 데이터의 정확도가 떨어질 수 있다는 단점도 있다.

 

- 하나의 행 중 결측치가 여러 개인 경우: 결측치가 한 행에서 n개 이상이면 삭제하는 기준을 만들 수 있다.

 

- KNN 보간법 : 결측치가 있는 데이터 포인트와 가장 가까운 이웃들을 사용하여 결측치를 추정한다.

 

p.96

종속변수의 분포를 확인하는 것은 EDA의 기본이다. 특히 예측모델을 만들 때는 종속변수 분포를 보고 몇 가지 조치가 필요할 수 있다.

 

- 변환(transformation) : 종속변수에 로그, 제곱근 등의 변환을 적용하여 분포를 정규 분포에 가깝게 만들 수 있다. 이 방식을 통해 모델의 예측력을 높일 수 있다.

 

- 적절한 모델 선택 : 종속변수의 분포가 비대칭이면 일반적인 선형회귀모델보다는 로지스틱회귀 모델, 의사결정나무 등의 비선형 모델을 고려할 수 있다. 비선형 모델들은 종속변수의 비대칭성을 처리할 수 있으며, 모델의 예측력을 향상시킬 수 있다.

 

- 샘플링 방법 변경 : 종속변수가 이진변수(binary), 즉 두 가지 종류(예. 합격/불합격, 남자/여자)로 나뉘는 상황에서 어느 한쪽의 변수만 일방적으로 많은 경우가 종종 발생한다. 이를 해결하기 위해서는 데이터를 추가 수집하거나 불균형 데이터 문제를 처리할 수 있는 언더샘플링 또는 오버샘플링 기법을 적용할 수 있다.

 

p.100-101

'최근 의대를 지망하는 고3 수험생들이 늘어나고 있고, 강남 8학군 학생들의 의대 합격 비율이 높다'라는 신문 기사를 접했다고 가정하자. 당신은 '강남 8학군 학생들의 수능 점수가 다른 지역 학생들의 점수보다 뛰어난 이유는 학원을 많이 다녀서일까?'라는 질문을 가지고 데이터 분석을 시작한다. 먼저 강남 8학군 학생들과 다른 지역 학생들의 수능 점수와 평균 학원 개수에 대한 기초 통계를 봤더니, 강남 8학군 학생들의 평균 점수가 다른 지역 학생들의 점수보다 높아 보인다(기술통계). 하지만 여기서 또 질문이 생긴다. 과연 학원 개수가 증가하면 수능 점수도 향상하는가(상관관계 분석)? 분석 결과 상관관계가 크진 않았지만, 2022년도 이전과 이후 두 그룹으로 나누면 2022년도 이전까지는 강남 8학군 학생들의 학원 개수가 증가할수록 수능 점수도 증가하는 것을 보였다(EDA). 2022년도 이전과 이후 그룹을 나눠서 강남 8학군 학생과 다른 지역 학생들의 수능점수를 차트로 보여주었다(시각화). 하지만 우연히 나타난 결과일 수 있으므로 가설검정을 통해 '학원 개수가 증가할수록 수능 점수가 높아진다'라는 가설의 진위를 테스트했다(가설검정). 가설검정을 통해 우연히 발생한 것이 아니라는 결과를 얻었고, 그렇다면 학원 개수가 한 개 더 증가할수록 대체 수능 점수에 얼마나 영향을 줬는지 궁금해졌다(단순회귀분석). 또한 학원 개수뿐 아니라 당연히 다른 요소도 수능 점수에 영향을 줄 것 같았고, 그 중 하나로 수면 시간을 떠올려 학원 개수와 함께 수면 시간의 영향력도 분석해보았다(다중회귀분석). 꼬리에 꼬리를 무는 추가 질문은 '결국 학원 개수와 수면 시간이 어느 정도 되어야 의대에 합격할 수 있는가'다. 합격 여부를 예측하는 모델을 만들어보았다(예측모델). 마지막으로 강남 8학군 학생들이 공부하면서 어떤 것에 가장 관심이 많고, 의대를 목표로 하는 이유가 무엇인지에 대한 설문조사 결과를 주제별로 자동 분류해보았다(토픽 모델링)

 

p.110

 

 

p.111

 

 

p.112

 

 

p.113

 

 

p.121-122

 

 

p.126-127

 

 

p.137-138

 

 

댓글