요즘 다양한 분야에서 컴퓨터공학과 통계를 접목시켜 재미난 연구결과를 만들어내고 있습니다. 특히 생명공학쪽에서 이러한 부분이 크게 진전되고 있다고 하네요. 통계를 처음 접하려는 분 보다는 이미 통계학과 파이선 지식이 있는 분이라면 좀 더 재밌게 책을 읽을 수 있지 않을까 싶습니다. 이론과 코딩 부분이 조금 더 분리되었더라면 조금 더 매끄럽게 책을 읽을 수 있지 않을까하는 아쉬움도 좀 있네요.
책을 선택하기 며칠 전, 회사 선배가 "빅 데이터에 대해서 좀 알아요?"라는 질문을 했다. 이 질문을 받고 왜 알아볼 생각을 안했을까 라고 스쳐가듯 생각하던 중 "프로그래머를 위한 통계 및 데이터 분석 방법"이라는 책 제목에 이끌려 선택을 하게 되었다.
그리고 왜 프로그래머를 위한 책인지에 대한 궁금증과 함께 책을 읽어나갔다.
이 책은 데이터 분석을 위한 통계 방법들에 대해 자세히 설명되어 있다. 실제 강의에서 필자가 이 책을 교재로 사용했다고 한다. 그래서인지 개념을 설명하는 부분이나 예제를 통해 하나의 문제를 이어서 풀어나가는 점이 좋았다.
책의 구성을 간단히 설명해보면
- 기술 통계 : 평균값과 평균, 분산, 분포, 히스토그램, PMF, 극단값, 상대위험도, 조건부 확률
- 누적 분포 함수 : 백분위수, 누적 분포 함수, CDF 표현, 조건부 분포, 난수
- 연속 분포 : 지수 분포, 파레토 분포, 정규 분포, 로그 정규 분포, 난수 생성
- 확률 : 여러가지 확률 법칙, 이항분포, 스트리크와 핫스팟, 베이즈 정리
- 분포에 대한 연산 : 왜도, 확률변수 및 확률밀도 함수, 합성곱, 중심극한 정리, 분포 프레임 워크
- 가설 검정 : 평균차 검정, 교차 입증, 카이 제곱 검정, 재표집
- 추정 : 추정 게임, 분산 추정, 오차 이해하기, 지수 분포, 신뢰 구간, 베이지안 추정
- 상관 : 표준 점수, 공분산, 상관, 최소제곱법, 상관관계와 인과관계
적고 보니 제대로 이해하고 넘어간 부분이 몇개 없는 것 같다. 그만큼 어려운 책이였다. 매 챕터마다 "용어정리" 부분이 있어서 용어라도 이해하고 넘어갈 수 있었다.
실제 수학과 다니는 사람들은 이 책을 얼만큼 이해할 수 있을까 라는 생각을 하게 되었다.
나도 대학에서 통계학 강의를 들었던 게 생각났다., 제대로 통계학을 배우고 싶다면 이 책을 통해 학습한다면 좋은 교재가 될 거라 생각된다.
한빛미디어 | 한빛리더스 | ebook | Think Stats | 앨런 B. 다우니
이번에 소개할 책은 바로 Think Stats 라는 책이다. 이 책은 프로그래머를 위한 통계 및 데이터 분석 방법을 기초부터 소개하고 있는 책이다. 개인적으로 이런 책은 어려워도 꼭 한번 읽어봐야한다는 생각을 가지고 있었다. 하지만 막상 이 책을 접하고 나서는 처음에는 얼핏보고는 수많은 수학공식을 보고 많이 당황했다. 하지만 차분하게 읽어 내려가다 보니 점점 재미있었고 흥미를 가지고 볼 수 있었다. 어렵기보다는 공식과 이에 관한 여러 내용이 함께 나와 있어서 읽기도 쉬웠다.
이 책의 저자인 앨런 B. 다우니는 MIT를 나온 대표적인 수재중에 한명이고 주로 전산학과와 관련된 강의를 하고 있다. 그는 서문에서 "확률과 통계 입문 수업을 위한 교과서로, 크기가 큰 데이터 세트를 분석하는 데 통계를 어떻게 사용하는지 초점을 맞췄다. 이 책은 또한 컴퓨터를 이용한 접근 방식을 취하고 있다."라고 밝히고 있다. 전자과나 전산과 학생이라면 가장 어려워하고 피하려고 하는 과목이 있다면 대표적인 과목으로 확률과 통계라를 과목일 것이다. 어려운 것도 있고 배운 지식을 어디에 사용할지 몰라서 피하게 되는 과목이라는 인식이 있다. 하지만 이 책에서는 프로젝트를 중심으로 구성이 되어 있어서 책을 읽으면서 직접 통계를 내어 보고 확률을 계산하고 적용을 할 수 있어서 보다 현실감 있게 다가왔다. 그래서 보다 현실적으로 다가왔다. 실제로 책에는 Exercise라는 부분이 있다. 처음에는 이걸 왜 해야될까? 라는 생각을 하면서 막연하게 따라했었다. 그래서 조금은 다른 책들을 읽는 시간보다 더 많은 시간일 걸렸다. 꼭 실습을 권장하지는 않지만 시간이 허락한다면 직접 체험을 하면서 책에서 설명하고 있는 이론들을 적용해보면 좋을 것이다. 처음에 예제 파일과 각각의 코드가 설명이 되어 있어서 보다 쉽게 학습을 할 수 있다.
이 책의 가장 큰 장점은 실습과 용어에 대한 확실한 적립이 함께 이루어져 있다는 것이다. 대부분의 책에서는 개념에 관해서는 주저리주저리 몇 장에 걸쳐서 설명이 되어 있다. 이 책은 용어에 관해서는 간단하게 명료하게 정리가 되어 잇다. 예를 들면 "종단면 연구(경시적 자료 연구, 종단 연구): 같은그룹에서 시간에 따라 반복적으로 데이터를 수집한 모집단을 분석하는 연구." 이런식으로 정리가 되어 있어서 보다 명쾌하게 이해할 수 있도록 서술이 되어 있다. 그리고 나머지 부분에 대해서는 이론에 대한 설명을 공식을 바탕으로 설명을 하고 있어서 이해하는데 있어서 도움이 많이 되었다. 기존의 이론서에서는 길게 이론을 설명하고 있어서 조금은 따문하고 지루하다는 느낌을 받았다면, 이 책에서는 깔끔하고 명료한 설명이 있어서 확률과 통계에 대해서 호기심을 가지고 접근할 수 있었고 책을 계속 읽어 가면서 이 분야에 대한 인식을 바꾸어 놓을 만큼 재미있게 읽어 내려갈 수 있었다. 혹 수학이 막연하게 어려운 사람이라면 이 책을 접해보는것은 어떨까.
저자가 이미 집필 동기에서 밝혔듯이 확률과 통계 입문 수업을 위한 교과서가 이 책을 설명하는 데 가장 적합할 듯 싶다.
학생들에게 확률과 통계의 개념을 설명하기 위한 책이기 때문에 그 개념이나 용어에 대한 정리가 매우 잘 되어있다.
이 책은 각 챕터별로 그 개념을 설명해 주고난 후 예제 코드에 배운 개념을 프로그래밍할 수 있도록 다양한 연습문제를 주고 있다.
이 책에는 파이썬에 대한 설명은 없으니 그에 대한 공부(혹은 이수)는 따로 필요하다.
컴퓨터 공학과에서 배울 수 있는 확률과 통계교재로써 더할나위 없는 좋은 교재라고 생각한다. 다만 개인적으로 학과교재는 책으로 해야한다고 생각을 하기에 eBook으로만 출판된 점이 아쉽다.
프로그래머를 위한 통계 및 데이터 분석 방법이라는 부제를 가진 Think Stats는 번역서로 대학 교재(부교재)로 사용하기 위해 만든 책이며, 저자가 큰 세트의 데이터를 통계를 통해 어떻게 분석/해석할 수 있는지에 초점을 맞췄다. 그리고 학생들이 프로젝트 중심으로 테스트를 진행 할 수 있도록 했으며, 무료로 사용할 수 있도록 많은 배려가 뭍어 있는 책이다.
이 책은 전산학을 공부하는 학생 또는 데이터 분석을 통계를 통해 하려는 프로그래머를 위한 책이다.
한가지 아쉬운 점은 번역서로서 몇 가지 예는 우리 실정에 맞게 수정했으면 좋았을 것 같다. 미국에 상황을 이해해야 하는 부분이 있기 때문이다.
파이썬을 이용하여 샘플을 제작했으며, 그래픽 라이브러리를 추가하면 그래프로 표현됨을 확인할 수 있다. 하지만 테스트에 필요한 과정이 누락되어 알아서 필요한 부분을 설치해야 함이 조금은 불편할 수 있다.
전반적으로 샘플중심이고 강의 부교재로 보이기 때문에 통계에 대한 전반적인 지식은 필요해 보인다. 이론서와 함께 활용서로서는 좋은 교재이며, 테스트를 진행하면서 책을 본다면 내용을 이해하는데는 큰 무리가 없을 것이다.
번역서라 우리나라 실정에는 안맞는 부분도 있지만, 통계관련 책이 나온다는 것 자체가 데이터(빅데이터등..)에 대한 관심이 많아지는 상황에서 긍정적으로 평가한다.