데이터 분석가(Data scientist)에게 꼭 필요한 4가지 역량

Data scientist?

빅데이터의 시대라고들 합니다. 최근 몇 년 간 데이터 저장 및 처리 비용이 엄청나게 낮아지면서 생성되는 데이터의 종류, 양이 무척이나 다양해졌습니다.

데이터 분석가, 혹은 데이터 싸이언티스트라고 불리우는 직업군이 주목을 받게 된 것도 이러한 배경에서 데이터 분석을 통해 무궁무진한 비즈니스 기회를 찾아낼 수 있기 때문일 것입니다.

Job market에서도 Data scientist에 대한 수요가 점점 커짐에 따라 이들의 몸값도 올라가는 추세입니다.  Harvard Business Review에서는 수년 전에 이미 Data scientist를 “The sexist job in the 21st century“로 규정하면서, 2020년대가 되면 특정 영역에서는 Data scientist에 대한 수요가 공급을 훨씬 초과하는 현상이 발생할 것이라고 예측한 바 있습니다.

이렇게 핫한 직업군이기 때문에 종종 저에게 데이터 싸이언티스트가 되려면 어떤 분야의 지식, 기술이 필요한지 물어보시는 분들이 계시는데요, 이 글에서 데이터 분석 분야에 뛰어들기(?)위해서는 어떠한 스킬셋이 필요한지를 정리해 보도록 하겠습니다.

참고로, 데이터 싸이언티스트와 데이터 애널리스트, 데이터 엔지니어, 비즈니스 애널리스트 등 데이터 분석 관련 직업을 상세하게 구분하는 경우도 있지만, 이 글에서는 기업에서 데이터를 분석하는 직업을 가진 사람을 통칭하여 “데이터 분석가”라고 부르겠습니다.

data scientist : before and now
소스: www.techjuice.pk

데이터 분석가, 어떤 일을 하나?

기업 마다 조금씩 다르겠지만, 데이터 분석가의 가장 중요한 역할은 의사결정자가 data-informed decision을 할 수 있도록 적절한 시기에 정보를 제공하는 역할일 것입니다.

여기서의 정보는 기술 통계적인 데이터(평균, 합계 등)에서 부터, 보다 복잡한 현상을 해석하고 예측하는 모델에 이르기 까지 다양합니다. 데이터 분석가의 전문성이 높아질 수록 보다 정교하면서도 설명력/예측력이 높은 모델을 제공할 수 있겠죠.

좀 더 구체적으로 라이엇 게임즈를 기준으로 이야기 해 보겠습니다.

제가 속해 있는 비즈니스 애널리틱스(Business Analytics) 팀의 주요 업무 영역은 회사 내 Key business metrics의 모니터링 및 보고,  ad-hoc 데이터 분석 요청 대응, 주요 이슈에 대한 프로젝트 형 분석의 세가지로 구분할 수 있습니다.

데이터 분석가(Data scientist)에게 꼭 필요한 4가지 역량 더보기

R을 사용한 일원배치 분산분석 (ANOVA in R) – 집단 별 차이가 통계적으로 의미가 있는지 검증해 보자.

10대, 20대, 30대의 평균 소비액, 정말로 유의미한 차이인지 확인하려면?

오늘은 매우 간단하면서도 유용한 분석 방법을 소개해 보려고 합니다.
일원배치 분산분석(One-way ANOVA)이 바로 그것인데요, 이 분석은 독립된 세 집단 이상의 평균을 비교하고자 할 때 사용하는 분석 방법입니다.
(좀 더 자세히는 평균의 차이가 의미가 있는지를 알아보고자 할 때 사용합니다.)

예를 들어서 설명해 볼까요?

연령대 별로 월 평균 게임에 사용하는 금액을 조사했더니, 10대는 18,200원, 20대는 20,500원 30대는 19,300원을 사용한다는 결과가 나왔다고 가정해 봅시다.

이러한 구매 금액이 정말로 유의미 한 차이인지는 어떻게 확인할 수 있을까요?

1,000원 정도씩 차이가 나는데, 이걸 차이가 있다고 보아야 하는 건지, 차이가 매우 근소하기 때문에 차이가 없다고 보아야 할 것 같기도 하고…

이럴 때 일원배치 분산분석을 사용하면 이러한 집단 간 평균 차이가 통계적으로 의미가 있는 숫자인지 아닌지를 판단할 수 있습니다.

일원배치 분산분석
소스: http://www.fomos.kr/esports

일원배치 분산분석은 실무적으로도 자주 사용하는 편입니다. 특히 플레이어 분석을 할때 연령대 별, 게임 이용 기간 대 별 등등 그룹으로 구분해서 보아야 할 때는 거의 필수적으로 사용하기 떄문에 알아두면 쓸모가 많은 분석 방법입니다.

게다가 매우 간단하기까지 한 녀석이죠. 예제로 한번 확인해 볼까요?

일원배치 분산 분석 예제

R에 내장되어 있는 iris 데이터 셋으로 1분만에 일원배치 분산분석을 해 봅시다.

일원배치 분산 분석을 할 때는 aov 함수와 bartlett.test 함수 두가지를 사용합니다.

먼저 aov으로 일원배치 분산분석(ANOVA)을 해 보겠습니다.
기본 적인 문법은 aov(대상변수~그룹변수, data=데이터명)의 순서인데요,
이때 주의해야 할 점은 그룹 변수는 factor 형이어야 한다는 것입니다.
(가지고 계신 데이터 셋으로 분석하실 때는 as.factor함수를 사용해서 변수 유형을 변경해 주세요.)

일원배치 분산분석 결과 P-value 값이 매우 작게 나와 귀무가설이 기각되었네요. (***표시) 이 결과만 보면” iris의 품종(Species) 별로 Sepal.Width 평균은 다르다”라고 판단할 수가 있겠습니다.

단, 일원배치 분산분석이 성립하기 위한 전제 조건이 있는데요, 바로 오차의 등분산성 검정입니다. bartlett.test함수를 사용하면 간단히 확인할 수 있습니다.

p-value가 0.05보다 크므로 귀무가설을 기각할 수가 없겠네요. 오차의 등분산성 가정을 만족한다고 판단할 수가 있겠습니다.

 

 

 

 

참고 자료

1) 위키백과, 분산분석
2) R-bloggers, One-way Analysis of Variance
3) Stat.Columbia.edu, One-way ANOVA

Game & Life balance

I am a “Gamer”

롤에 낭비한 시간 (http://wasted-on-lol.com/)을 알아볼 수 있는 싸이트가 있습니다. 검색을 해보니 저는 거의 123일, 3천 시간을 리그 오브 레전드를 플레이 하는데 사용했네요. 곰이 인간이 되는데 걸린 시간 보다 23일 더 많이 게임을 하는 데 시간을 쓴 셈입니다. 뭔가를 이루고자 했으면 뭐라도 성취했을 길이의 시간입니다.

롤에 낭비한 시간 - dodomira
소스: http://wasted-on-lol.com/

사실 롤을 플레이 하기 전에도 다른 게임(스타크래프트, 워크래프트3, 스타크래프트2, 와우, 테트리스, 포트리스, 카트라이더, 맞고 등등등…)을 많이 했기 때문에 전체 시간을 계산하면 훨씬 더 길어질 것입니다.

다른 업계에 있었다면 자기 계발에 더 시간을 쏟지 못한 스스로에 대한 반성을 하는 게 당연했을 터이나, 게임 회사에서 일하고 있기에 가치 판단에 혼란이 생깁니다. 아마 업계 분들은 공감하실 것이라 생각합니다.

라이엇 게임즈는 B사, N사 보다는 비교적 자유롭게 업무 시간에도 게임을 하는 분위기 이기 때문에, 스스로 적정선을 정하는 것이 더욱 중요한 것 같습니다.

 

게임하는 데 쓰는 시간, 과연 낭비인가?

사람 마다 “시간 낭비”의 정의가 다르겠지만, 저는 아래의 두가지 명제가 충족된다면 A라는 행위를 대략적으로 시간 낭비라고 정의할 수 있을 것 같습니다.

1. A에 시간을 쓰지 않으면 B를 할 수 있다.
2. B는 A보다 효용이 크고, A에는 대체 불가능한 효용이 없다.

바꾸어 말하면,

“게임 하는 데 시간을 쓰지 않았으면 그 시간을 다른 “생산적인” 일에 쓸 수 있었을 것이고, 게임을 하면서 얻는 효용은 동일한 자원을 투입해서 얻을 수 있는 효용 대비 매우 낮고 대체 가능한 효용이다. ” 라는 명제가 성립되어야 하는 것이죠.

1번 명제부터 생각해 보겠습니다.

게임을 하지 않는 시간에 다른 무엇인가를 할 수 있다는 것은 너무나도 분명합니다. 계산해 보면 저는 평균적으로 일주일에 25시간 정도를 게임하는 데 사용하는 데요, 25시간을 고스란히 스터디, 운동 등에 투자하지 않더라도 그 중 일부는 분명 제가 하고자 했던 다른 일에 사용할 수 있었을 겁니다.

올해 초 세웠지만 계획대로 진도가 나가지 못했던 목표들을 생각해 보면 지금까지 게임에 썼던 시간이 더 아까워 지는 느낌이네요.

2번 명제를 고려하면 달라질 수도 있을까요?

제가 게임을 하면서 얻는 효용은 아래 와 같습니다.
A. 스트레스 해소&기분 전환
B. 게임&게이머에 대한 인싸이트
C. 동료들과의 교류
D. 티어부심 

A번 효용은 같은 시간에 다른 생산적인 일을 하면서 얻는 뿌듯함을 생각하면 엄청난 가성비 차이가 나는 항목입니다.
저는 끊임 없이 새로운 것을 배우고, 그런 과정에서 즐거움을 얻는 성향이 있기 때문에, A만 고려하면 의심의 여지 없이 게임은 시간 낭비입니다.
기분 전환 같은 경우도 같은 시간에 잠을 자거나 미드/일드를 보면서 얻을 수 있는 매우 대체 가능한 효용이구요.

 

B번 효용은 롤을 하면서 얻을 수 있는 부분도 있지만, 그것 보다는 다양한 게임을 해보는 것이 B번 효용을 얻는 데 더 좋은 것 같기도 하네요.
하지만 분명 리그 오브 레전드 플레이어들이 가지는 독특한 성향이 있기 때문에 일정 시간 롤을 플레이 하지 않으면 얻을 수 없는 고유한 효용임에는 분명해 보입니다.

저는 내향적인 사람이기 때문에 C번 효용도 저에게는 중요합니다. 쉽게 다가가기 어려웠던 다른 팀 Rioter들과 내전에서 팀으로, 적으로 함께 플레이하면서 좀 더 친해질 수 있었던 것 같습니다.
이 부분은 동호회 활동이나 개인적인 노력으로 어느정도 커버할 수는 있겠지만,  “내전”이 아니면 이렇게 업무적인 교류 기회가 잘 없는 동료들과 친해지기는 어려웠을 겁니다.

게임하는 시간이 낭비는 아니다!

결국 게임을 하면서 얻는 고유한 효용은 “리그 오브 레전드 플레이어에 대한 이해”와 “동료들과의 교류”가 되겠네요.

“리그 오브 레전드 플레이어에 대한 이해”를 위해서는 랭크와 노멀을 계속 플레이 하는 것이 중요합니다. 특히 곧 “클럽” 기능이 도입되기 때문에 일반 플레이어들이 만든 클럽에 가입해서 일반 플레이어들의 Sentiment를 파악하는 것이 더 중요해 질 것입니다.
일반 플레이어들은 저녁 시간 이후/주말에 주로 게임하기 때문에 업무시간 이외 주 최소 5시간은 여기에 투자해야 할 것 같습니다.

“동료들과의 교류”를 위해서는 점심을 먹고나서 1시~2시 사이에 열리는 내전에는 가능한 참석하는 것으로 개인적인 Rule을 세워야 할 것 같네요. 아마도 업무시간 중 주 5시간은 내전에 사용하는 것으로 생각해야 할 것 같네요.

Game & Life Balance

Work & Life balance도 결국 개인이 어떤 가치를 더 중요하게 생각하느냐에 따라 사람마다 다 달라진다고 생각합니다. 일이 중요한 사람에게는 Work와 life가 8:2가 되는 상황이, 가정이 중요한 사람에게는 반대의 상황이 균형잡힌 상태일 수도 있겠죠.

Game은 사실 저에게는 Life의 일부입니다. 저는 기억도 안나던 시절 부터 게이머였습니다. 중학교 때 쯤인가, “파랜드 택틱스”라는 게임을 어느 날 오후에 시작했는데 스토리를 따라가다가 너무 몰입해서인지 그 다음 날 아침에 부모님이 깨울 때 까지 시간 가는 줄도 모르고 플레이했던 기억이 아직도 생생합니다.

파랜드 택틱스
소스: coldricelife.blogspot.com

그 뒤로 계속 게임은 저의 주요 취미 생활 중의 하나였습니다. 나에게 재미있는 게임을 찾는 것도 즐겁고, 잘하게 되어서 이기는 것도 너무 즐거운 일이었고, 지금도 그렇습니다.

하지만 이제부터는 Game에 투자하는 시간을 보다 전략적(?)으로 계획해 보려고 합니다. 게임을 하면서 얻을 수 있는 고유한 효용은 분명하지만, 한계 효용을 고려해서 적절하게 시간 투입을 조절할 생각입니다. 결국 저에게는 Game보다는 Life가 더 중요하니까요!

 

 

 

R을 사용한 K-means 군집분석 (K-means clustering in R)



소셜 커머스 싸이트 C사에서 물건을 구매하는 고객 A와 B가 있다고 가정해 봅시다. A는 물티슈, 기저귀, 레깅스 등을 오후에 방문하여 구매하는 전업주부이며 B는 기능성 화장품, 트렌드 패션의류 등을 주로 점심시간에 방문하여 구매하는 커리어 우먼입니다.

C사는 두 고객을 구분해서 스마트 폰의 앱 알림 시간과 보여주는 품목을 다르게 접근한다면 매출 발생 기회를 높일 수 있을 것입니다.

이렇게 구매 물품, 패턴 등 대상이 가지고 있는 정보의 유사성에 따라 대상을 분류하는 기법을 군집 분석(Cluster analysis)이라고 합니다.

by Andy Wilson
by Andy Wilson

군집분석이란?

군집 분석은 비지도학습(Unsupervised learning) 분석 기법 중 하나입니다. 쉽게 말해서, 사전 정보 없이 자료를 컴퓨터에게 주고, “유사한 대상끼리 묶어보아라!” 라고 명령을 내리는 분석 방법입니다.

R을 사용한 K-means 군집분석 (K-means clustering in R) 더보기

R을 사용한 연관성 분석 (association rules in R)

 

연관성 분석이란?

연관성 분석을 소개하기 전에,  너무 자주 인용되어 식상하기까지 한 월마트의 유명한 빅데이터 분석 결과를 잠깐 살펴 볼까요?

바로 맥주를 사는 사람은 기저귀를 살 확률이 다른 사람 보다 매우 높다는 것인데요,  월마트가 조사해 본 결과 아내의 부탁으로 기저귀를 사러 온 남성들이 맥주도 같이 구매해가기 때문이었다고 하네요.

이렇게 장바구니 분석으로 더 잘 알려져 있는 연관성 분석은 여러 번 발생한 거래, 사건 내에서 일정한 규칙을 찾아내는 분석입니다. 함께 잘 팔리는 상품을 알수 있다면 크로스 셀링(cross-selling)이나 업셀링(up-selling), 혹은 상품 진열 전략을 세우는데 보다 유리하겠죠.

맥주와 기저귀
출처: lifeindigital.org

 

R을 사용한 연관성 분석 예제 (arules in R)

 

연관성 분석을 위해 가상의 리그오브레전드 플레이어의 챔피언 플레이 데이터를 준비했습니다. (다운로드:  sample-data )플레이어들의 어떤 챔피언을 주로 플레이 하는지, 플레이 스타일 간에는 어떤 관계가 있는지 살펴 볼까요?

R을 사용한 연관성 분석 (association rules in R) 더보기