엑셀을 활용한 데이터 사이언스의 이해

데이터 분석 전처리 실무 - 파워쿼리 강좌의 맛보기 강의입니다.

강의 대본 보기

데이터 사이언스의 일반적인 분석 절차와 단계별로 주로 활용되는 엑셀 기능은 무엇인지 살펴보도록 하겠습니다. 데이터 분석이란 현실의 다양한 특성을 나타내는 샘플 데이터를 수집하여 그 안에 담긴 특징을 파악함으로써 일반적으로 어떤 결과가 기대되는지 판단하는 과정입니다. 이러한 작업은 분석하는 사람의 기분에 따라서 내키는 대로 이루어지지는 않습니다. 데이터 분석 역시 일종의 과학, 사이언스이기 때문에 정해진 표준 절차가 있습니다. 다음은 데이터 사이언스의 표준적인 프로세스를 간단하게 도식으로 표현한 그림입니다. 데이터 분석의 첫 번째 단계는 우리가 풀고자 하는 현실의 문제에 대해서 적절한 가설을 수립하는 것입니다. 예를 들어, 이렇게 되면 저렇게 될 것 같아. A라는 상황이 벌어지면 B라는 결과가 예상돼. 라고 하는 어떠한 우리가 알고자 하는 사실에 대한 일반적인 추정을 하게 되는 거죠. 그래서 이 추정을 토대로 해서 이 추정이 실제로 그러한지 또는 어떠한 결과가 예상되는지를 알아낼 수 있는 다양한 목적에 맞는 데이터를 취합하게 됩니다. 예를 들어서 우리가 다음 달에 A라고 하는 제품의 판매량이 얼마나 될까 라고 하는 문제에 대해서 해결하고 싶다고 쳐봐요. 그러면 A라는 제품을 판매하는 데 우리 회사 직원들의 부모님의 이름이 무엇인가? 우리 회사 직원들이 어느 동네에 살고 있는가? 라고 하는 이런 문제들은 해당하는 문제를 해결하는 A라는 제품의 다음 달 판매량을 예측하는 데에 전혀 관련이 없을 겁니다. 그래서 우리가 풀고자 하는 문제를 정확하게 설명해 줄 수 있는, 그것을 예측하는 데에 도움이 될 수 있는 적절한 데이터를 정의하고 이것에 맞는 데이터를 수집하는 작업이 제일 먼저 필요하게 됩니다. 그러면 실제로 필요한 데이터는 뭐가 될까요? 예를 들어 우리가 다음 달에 A라고 하는 제품의 판매량을 예측하고 싶다 라고 한다면 여러 가지 데이터가 필요할 수 있을 겁니다. 예를 들어 필요한 자원에 대해서 우리가 확보한 건 얼마가 되고 우리가 소비할 홍보 마케팅 비용은 얼마나 되는가 지난달까지 판매했던 지난달까지의 판매량이 얼마가 되는가, 계절적인 어떤 요인을 볼 때 특정 계절에는 이런 정도 더 많이 팔렸다 라던가 아니면 시장의 트렌드라던가 하는 다양한 요소들이 A라고 하는 제품의 다음 달 판매량을 예측하는 데 필요할 겁니다. 이처럼 우리가 데이터를 통해서 어떤 문제를 해결하고자 할 때는 제일 먼저 우리가 풀고자 하는 문제에 필요한 데이터가 무엇인가, 이런 종류의 데이터가 필요하다 라고 하는 어떤 데이터를 정의하는 과정이 필요하게 됩니다. 첫 번째 단계에는 데이터 정의 그리고 가설의 수립이 필요합니다. 가설을 수립하고 데이터를 정의하면 이 문제를 해결하기 위해서 가설을 검증하기 위해서 필요한 데이터를 취합하게 되는데요. 데이터를 취합하는 방법은 여러 가지가 있습니다. 대표적으로는 4가지 정도의 방법이 있는데요. 가장 처음으로 사용되는 것은 우리가 직접 실험 관찰 같은 걸 한다거나 아니면 소비자에게 설문을 돌리는 등으로 직접적으로 데이터를 만들어 내는 겁니다. 우리가 이것을 1차 자료, 프라이머리 데이터를 만들어 내는, 1차 자료를 만들어 내는 과정이다 라고 하고요. 가장 많이 사용되는 것은 서베이라던가 실험 관찰, 이런 방법이 가장 흔히 사용되는 데이터 취합의 방법입니다. 이렇게 누군가가 데이터를 만들어두면 우리가 타인이 만들어둔 데이터를 가져다가 쓸 수도 있습니다. 데이터를 가져다가 쓸 수도 있는데요. 다른 곳에 있는 데이터를 우리가 긁어와서 쓰는 행동, 이것을 다른 말로 데이터를 긁어온다 라는 의미에서 크롤링이라고 합니다. 이거 외에도 사람이 직접 실험이나 설문을 하지 않고 소프트웨어적으로 어떤 웹사이트에 방문자라던가 서버에 있는 DB에 자동으로 축적되는 다양한 로그 데이터를 가져다가 분석을 할 수도 있습니다. 로깅이라고 하는 방법도 있고요. 또 어떤 데이터가 있을 때 이 데이터는 이러한 성격을 띠고 있다 라고 하는 메타 정보를 데이터는 이러이러하다라고 하는 부가 정보를 태그, 꼬리표를 달아주는 방법으로 새로운 2차 정보를 만들어 낼 수도 있습니다. 이런 방법을 우리가 다른 말로 태깅이라고 합니다. 크롤링이라던가 서베이, 태깅, 로깅 같은 다양한 방법을 통해서 우리가 해결하고자 하는 가설을 검증할 수 있는 데이터를 수집하게 되고요. 이런 데이터를 수집하게 되었을 때 수집된 데이터를 다른 말로 표본 데이터, 샘플 데이터라고 말을 합니다. 우리는 우리가 현실에서 풀고자 하는 문제를 적절한 가설로 수립하고 이 가설을 검증하기 위한 데이터를 정의합니다. 그런 다음 이 정의된 데이터를 실제로 수집하기 위한 샘플 데이터를 수집하기 위한 작업을 하게 됩니다. 이렇게 수집한 데이터를 가지고 바로 데이터가 분석되는 건 아닙니다. 데이터를 바로 분석을 하기에는 대개 우리가 수집한 데이터는 굉장히 품질이 떨어집니다. 예를 들어서 여러분께서 월요일 데이터를 엑셀에 담아온다고 할 때 누군가는 월요일을 월요일이라고 적을 겁니다. 또 다른 사람은 이것을 mon 이렇게 적을 수도 있고요. 또 다른 사람은 이것을 월 이라고 한자로 적을 수도 있을 겁니다. 분명히 우리가 알고 있기로는 동일하게 월요일이라고 하는 하나의 같은 데이터를 말하고 있지만 작성하는 사람마다 전혀 다른 형식을 띠게 되고요. 월요일이라고 적힌 것과 mon이라고 적힌 것 그리고 한자로 월이라고 쓰인 것은 모두 우리가 분석하고자 하는 분석 도구, 엑셀이라던가 R이라던가 파이썬이라던가 이런 다양한 분석 도구가 인식할 때는 서로 전혀 다른 데이터로 인식을 하게 되기 때문에 이것을 통합해서 하나로 동일한 월요일로 생각해서 분석을 할 수는 없습니다. 이런 것처럼 우리가 여러 곳으로부터 데이터를 수집하게 되면 우리가 생각하지 못한 다양한 이유로 같은 데이터가 지금 월요일을 예로 하는 것처럼 이런 사례에서 보는 것처럼 전혀 다른 형식으로 정리되지 않게 들어올 수도 있고 결측이 발생할 수도 있습니다. 또 사람이 입력을 하는 거다 보니까 굉장히 엉뚱한 실수가 발생할 수가 있어요. 그래서 A라고 써져 있는 것과 A라고 하는 것 뒤에 띄어쓰기 한 칸을 하는 것은 전혀 다른 데이터가 되거든요. 이런 방식으로 전혀 다른 엉뚱한 상황이 벌어질 수 있기 때문에 우리는 우리가 수집한 샘플 데이터를 가지고 바로 데이터를 분석할 수는 없고 이 표본 데이터를 어느 정도 정리, 정돈하는 작업을 거치게 됩니다. 월요일이라고 써 있는 것과 mon이라고 써 있는 것과 월이라고 써 있는 것을 모두 다 이걸 월요일로 동일한 표기로 바꿔 라고 하는 이런 어떤 작업을 거치게 되는 거죠. 우리가 이런 작업을 다른 말로 데이터 전처리라고 합니다. 전처리된 데이터, 우리가 여러 데이터 샘플 데이터를 모으고 이 샘플 데이터를 분석에 용이한 형태로 정리정돈해서 전처리를 하게 되면 이 데이터를 실질적으로 이제 분석이 가능한 형태로 준비된 데이터, 마스터 데이터셋으로 만들어 낼 수가 있습니다. 그런데 분석 도구의 성능에 따라서 모든 데이터를 하나의 워크시트에 하나의 표로 만들어 내는 것은 굉장히 어떤 속도라던가 데이터를 담을 수 있는 양에서 문제가 날 수 있기 때문에 우리가 여러 데이터를 여러 위치에 분산해서 나눈 상태로 다루기도 합니다. 그래서 어떤 분석의 효율성을 위해서 데이터를 분산한다거나 적절히 나눈다거나 하는 이런 작업을 통해서 우리가 마스터 데이터셋을 정리를 하게 됩니다. 이렇게 정리된 마스터 데이터셋을 가지고 데이터 분석을 하게 되는데요. 데이터 분석을 한다는 것도 크게 보면 두 단계로 이루어집니다. 첫 번째는 뭐냐면 우리가 수집한 표본 데이터가 어떤 특징을 가지고 있는가 라고 하는 것을 살펴보는 겁니다. 우리가 수집한 표본 데이터가 가지고 있는 특징을 살펴보는 것, 표본 데이터의 특성을 살펴보는 작업을 첫 번째 하게 됩니다. 이것을 다른 말로 탐색적 데이터 분석, 약자로 EDA라는 표현도 많이 사용합니다. 탐색적 데이터 분석이라고 하는 작업을 하게 됩니다. 어떤 선입견이 없이 내가 표본을 관찰해 보니까 표본의 개수는 몇 개고 평균은 얼마고 표준편차는 얼마고 등등, 이 표본 데이터가 가지고 있는 특징을 다양한 값과 그림으로 요약해서 샘플을 들여다 보니까 샘플이 이러한 특징을 가지고 있다 라고 하는 샘플 안에서의 특징을 찾아내는 것이 바로 탐색적 데이터 분석입니다. 그러면 이러한 표본을 내가 관찰을 했을 때 이러이러한 특징이 있다 라고 하는 것을 파악하게 되면 그것을 가지고 우리가 내가 관찰한 표본에서는 이러한 특징이 파악되는데 그 특징이 일반적으로 적용될 수 있는 건가? 내가 관찰하지 않은, 관찰하지 않은 다른 데이터, 우리가 이것을 모집단이라 합니다. 일반적인 데이터 모집단에도 적용될 수 있는 건가 라고 하는 것을 파악을 하게 됩니다. 그래서 실질적으로 적용이 되는지, 적용된다고 가정할 때 추정되는 값은 얼마인가 라고 하는 것을 우리가 파악하고자 하는 다양한 분야의 다양한 방법론을 통해서 여러 가지 분석 모델이라던가 알고리즘을 적용해서 파악을 하게 됩니다. 그래서 도출되는 추정되는 결과, 어떤 문제가 있을 때 이 문제에 대해서 이러이러한 샘플 데이터를 수집해서 샘플 데이터를 관찰하고 이것으로부터 일반적인 어떤 결론을 추정을 했을 때 이러이러한 결과가 추정된다 라고 하는 결과를 우리가 이 분석에 참여하지 않은 다른 사람들도 쉽게 이해할 수 있도록 시각화하여 결과 보고서를 타인과 공유하게 되고요 이렇게 여러 사람이 데이터 분석의 결과를 공유함으로써 우리 조직 전체적으로 이익이 되는 비즈니스적인 의사결정을 하게 됩니다. 때로는 이런 어떤 의사결정 자체, 데이터 분석의 일련의 과정 자체가 굉장히 비즈니스적인 유용함을 갖고 있을 때 전체적으로 패키지화해서 상품이 되는 경우도 있는데요. 예를 들어 주가 예측 프로그램, 로보 어드바이저라던가 이런 것들 데이터를 정의하고 수집하고 전처리하고 마스터 데이터셋을 만든 다음에 표본 데이터를 요약하는 EDA와 이것을 통해서 추정을 하고 추정된 결과를 시각화하는 이런 일련의 과정을 자동화한 상품으로서 데이터 프로젝트도 존재하게 됩니다. 이것이 데이터 사이언스의 일반적인 절차입니다. 이러한 절차는 우리가 분석하고자 하는 주제가 의학이건 사회과학이건 자연과학이건 경영학이건 어떤 분야건 막론하고 같은 표준적인 절차를 따르게 되는데요. 이때 이 절차를 따르는 것이 주제와 상관없이 일반적인 것처럼 우리가 흔히 다룰 수 있는 데이터 분석의 도구라는 것들도 특정의 경우에 매치되지 않고 일반적으로 엑셀이라던가 R이라던가 파이썬, SPSS, SAS, MATLAB 이런 모든 도구들도 다루고 있는 데이터가 의학 데이터인가 사회과학 데이터인가 자연과학 데이터인가 라고 하는 것도 분야와 상관없이 중립적으로 도구도 사용할 수 있습니다. 그렇다면 일반적으로 우리가 많이 쉽게 다룰 수 있는 도구가 무엇인가 라고 하면 아무래도 엑셀이겠죠. 우리가 가장 친숙하게 생각하고 가장 친숙하게 생각하고 비즈니스적인 어떤 의사결정을 할 때 기업에서 가장 많이 다루는 도구는 역시 엑셀입니다. 물론 더 복잡하고 어려운 도구를 다루기도 하지만 최종적으로 아무래도 개인 단위로까지 데이터가 이제 정리돼서 내려올 때는 엑셀 파일로 여러분이 많이 접하시게 될 겁니다. 그렇다면 이런 어떤 현실 세계에서 데이터 가설을 수립하고 데이터를 정의하고 데이터를 수집하고 전처리하고 마스터 데이터셋을 만들어서 EDA를 하고 분석 모델과 알고리즘을 적용하여 시각화하는 이런 일련의 과정을 우리가 만약에 엑셀로 하게 된다면 엑셀의 어떤 기능을 이용해서 이 과정을 하게 되는가 라고 하는 의문이 생기게 되죠. 이때 주로 되는 각각의 단계에서 우리가 주로 사용하는 엑셀의 기능은 우리가 데이터에 대해서 가설을 수립하고 정의하는 것은 사람이 엑셀 워크시트에 작성을 한다 하여도 이것은 명제로 서술되는 것이기 때문에 일반적인 어떤 문서화 되는 경우가 많이 있구요. 데이터를 수집한다 라고 할 때 데이터를 수집한다 특히 그 중에서도 어떤 파워쿼리의 커넥터 이렇게 수집한 데이터는 일반적으로 우리가 그대로 사용할 수 없고 전처리를 거치게 되는데요. 데이터를 전처리, 정리, 정돈, 편집하는 작업에 가장 많이 사용되는 엑셀의 기능은 파워쿼리의 편집기입니다. 커넥터나 편집기를 통해서 다양한 원본 데이터와 연결해서 데이터를 수집하고 정돈하게 되면, 실질적으로 데이터를 분석하는데 이 분석의 효율성을 높이기 위해서 다양한 분산된 마스터 데이터셋을 만들게 되는데요. 이때 주로 사용되는 엑셀의 기능은 파워피벗입니다. 마스터 데이터셋 우리가 데이터 분석을 위해서 준비한 마스터 데이터셋이 어떠한 특징을 가지고 있는가 우리가 수집한 샘플 데이터가 어떠한 특징을 가지고 있는가를 값과 그림으로 요약하는데 사용되는 주된 기능은 엑셀의 피벗 테이블입니다. 피벗 테이블로 요약된 샘플 데이터의 특성을 토대로 우리가 일반적인 상황, 모집단에서의 데이터는 어떠한 것인가 어떠한 값이 예측되는가 라고 하는 다양한 추정을 하게 되는데요. 다양한 분석 모델과 알고리즘을 적용할 수 있는 엑셀의 기능은 가장 대표적인 기능으로는 데이터 분석 도구가 있습니다. 또 매크로를 기반으로 동작하게 되는 XLSTAT라고 하는 도구도 있고요. 이거 외에도 다양한 해찾기라던가 예측 시트라던가 시나리오 관리자라던가 등등 데이터표 등 엑셀이 굉장히 많은 기능을 사용하셔서 여러분은 다양한 분석 모델과 알고리즘을 상황에 맞게 적용하실 수 있습니다. 이런 분석의 결과를 다른 사람도 쉽게 알아볼 수 있도록 다양한 그림으로 특히 차트를 이용해서 결과를 시각화 해주게 되는데요. 이때 주로 사용하는 기능은 엑셀의 차트 기능이라던가 조건부 서식이라던가 이런 일반적인 기능도 있지만 이거 외에도 파워뷰 파워맵 그리고 파워뷰와 파워맵 그 외에도 다양한 엑셀 BI 기능이 독립해서 만들어진 별도의 프로그램인 파워 BI 이런 도구를 이용해서 우리는 데이터 분석의 결과를 시각화하고 타인과 공유할 수 있습니다. 이 동영상 강좌에서는 엑셀을 이용한 일련의 데이터 사이언스 과정에서 특히 데이터를 수집하고 전처리하는데 가장 강력한 기능을 보여주게 되는 파워쿼리의 커넥터 그리고 데이터 전처리에 강력한 기능을 가지고 있는 파워쿼리 편집기에 대해서 집중적으로 여러분과 함께 살펴볼 예정입니다.

이 강좌의 맛보기 강의

데이터 분석 전처리 실무 - 파워쿼리
데이터 분석 전처리 실무 - 파워쿼리강좌 자세히 보기