Top

R 시뮬레이션 [빅데이터와 샘플 데이터를 연결하다]

  • 원서명Simulation for Data Science with R: Harness actionable insights from your data with computational statistics and simulations using R (ISBN: 9781785881169)
  • 지은이마티아스 템플(Matthias Templ)
  • 옮긴이김재민
  • ISBN : 9791161753362
  • 35,000원
  • 2019년 09월 30일 펴냄
  • 페이퍼백 | 492쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 데이터 과학

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으실 수 있습니다.
요약

석사 또는 박사 과정에서 공부한 경험이 있다면 대게 샘플 데이터를 이용해서 모집단을 추정하고 예측하는 전통적 연구 방법에 익숙할 것이다. 샘플 데이터로 분석한다는 것은 많은 가정이 요구되는 작업이기도 하며 샘플 데이터의 질에 따라 예측 결과가 달라지기도 하지만, 시간과 돈이라는 현실적인 한계 앞에서 계속해서 데이터만 모을 수도 없는 노릇이다. 전통적 샘플링-추론 방식에 익숙한 분들에게 시뮬레이션이라는 용어는 어쩌면 항공기 모의실험실이나 기상관측 연구소에서나 사용되는 것으로 자신과는 동떨어진 작업이라고 생각할 수도 있다. 하지만 학위과정에서 해결해야 하는 연구과제, 시장분석이나 정치환경과 같은 사회조사, 그리고 샘플이 부족한 연구 환경에서 시뮬레이션 기법은 훌륭한 해결책이 될 수 있다. 이 책은 수학공식을 최소화해서 시뮬레이션 기초 이론을 설명하고 다양한 시뮬레이션 방법을 책에서 제시된 R 코딩을 따라 하면서 이해할 수 있도록 구성됐다. 책을 다 읽고 난 후에는 여러분이 진행하는 프로젝트에서 높은 신뢰성을 가진 결과를 제시하도록 어떻게 시뮬레이션을 적용할 것인지 흥미롭게 고민하고 R에서 과감히 실현해 볼 수 있을 것이다.

이 책에서 다루는 내용

■ 데이터에서 통찰력을 이끌어 내기 위한 데이터 시뮬레이션과 리샘플링
■ 고성능 컴퓨팅과 고도의 데이터 처리 방법 등 R의 고급 기능
■ 분포, 데이터, 집단 시뮬레이션에 사용하는 난수 시뮬레이션
■ 에이전트 기반 마이크로시뮬레이션과 모델 및 디자인 기반 시뮬레이션을 기준으로 현실과 가까운 데이터 시뮬레이션
■ 과학적이며 현실적인 문제를 해결할 수 있도록 R을 사용한 통계 솔루션
■ boot, simPop, VIM, data.table, dplyr, cvTools, deSolve 등 다양한 R 패키지 이해
■ R만을 사용한 난수 생성 방법 및 시뮬레이션 예제와 실행 방법

이 책의 대상 독자

전산 방법론과 R에 익숙한 사용자를 위한 책이다. 컴퓨터 기반 몬테카를로 방법과 통계 시뮬레이션 도구로 R의 고급 기능을 배워보고 싶다면 이 책은 여러분의 것이다.

이 책의 구성

1장 ‘서론’에서는 데이터 과학과 통계 분야에서 사용되는 시뮬레이션 실험의 일반적인 목적인 “시뮬레이션은 왜 필요하며, 어디에 적용되는가?”라는 질문에 답을 하고, 빅데이터를 다루는 특별한 케이스를 논의한다.
2장 ‘R과 고성능 컴퓨팅’에서는 R을 이용해 할 수 있는 고급 컴퓨팅, 데이터 전처리, 시각화 작업을 종합적으로 다룬다.
3장 ‘연필 기반 이론과 데이터 기반 전산 솔루션의 불일치’에서는 결정론적 환경에서 발생할 수 있는 수치 정확성, 반올림, 수렴과 관련된 이슈를 다룬다.
4장 ‘난수 시뮬레이션’에서는 균등 난수 시뮬레이션과 여러 종류의 분산으로 전환하기 위한 변형 방법으로 시작해 다양한 종류의 마르코프 체인 몬테카를로 난수 생성 방법을 논의한다.
5장 ‘최적화 문제를 위한 몬테카를로 기법’에서는 결정론적 최적화 방법과 확률론적 최적화 방법을 소개한다.
6장 ‘시뮬레이션으로 보는 확률 이론’에서는 통계학에서 필요한 기본 이론에 집중한다. 예로는 대수의 법칙 그리고 중심극한정리가 시뮬레이션을 통해 소개된다.
7장 ‘리샘플링 방법’에서는 부트스트랩, 잭나이프, 교차 타당성 검증을 종합적으로 설명한다.
8장 ‘리샘플링 방법과 몬테카를로 테스트의 적용’에서는 회귀 분석, 대체(imputation), 시계열 분석 등 다양한 분야에서 사용할 수 있는 적용 방법을 제시한다. 추가로, 몬테카를로 테스트와 함께 순열 테스트 및 부트스트랩 같은 변형된 형태를 소개한다.
9장 ‘EM 알고리즘’에서는 반복을 통해 최적값을 얻는 기대 극대화법을 소개한다. 누락값을 묶고 대체하는 애플리케이션을 제시한다.
10장 ‘복합 데이터로 하는 시뮬레이션’에서는 일반적으로 방법 간 비교를 위해 사용되고 에이전트 기반 마이크로시뮬레이션의 투입 데이터로 활용될 인구 데이터와 합성 데이터를 시뮬레이션하는 방법을 소개한다.
11장 ‘시스템 다이내믹스와 에이전트 기반 모델’에서는 에이전트 기반 마이크로시뮬레이션 모델을 논의하고 복잡한 변화 시스템을 공부하기 위해 시스템 다이내믹스에서 사용되는 기본 모델을 제시한다.

저자/역자 소개

지은이의 말

시뮬레이션은 데이터 과학과 통계학에서 필수 분야가 됐으며, 여러 분야에서 발생하는 많은 실무적 문제를 해결하는 데이터 기반 해법으로 자리 잡고 있다.
이 책에서는 분석 프로그램 플랫폼인 R을 기반으로 현실적인 예제를 통해 관련된 이론들을 설명하고 데이터를 고급스럽게 처리하는 방법을 소개한다. 이 책은 전산통계와 데이터 과학 관련 지식을 어느 정도 갖춘 독자들에게 통계 시뮬레이션용 전산 및 방법론적 프레임워크를 제공하겠다는 목표를 갖고 있다.
구체적으로 말하자면 책을 통해 독자에게 시뮬레이션 활용법과 필요한 조언을 전하고, 통계 시뮬레이션과 컴퓨터 기반 분석 방법에서 흔히 발생할 수 있는 문제를 해결하는 도구를 제공하기 위해 이 책을 썼다.
핵심 내용은 데이터 시뮬레이션과 분포, 추정 통계, 마이크로시뮬레이션, 동적 시스템을 위한 몬테카를로 방법, 컴퓨터 방법을 활용한 솔루션 제공이다. 현장에서 나온 실제 데이터를 이용해 문제를 다루기 때문에 앞에서 제시한 내용들을 좀 더 잘 이해하게 될 뿐만 아니라 R을 활용해 적용하는 방법에 대해 다양한 경험을 쌓을 수 있을 것이다.
여러분의 흥미를 높일 수 있도록 여러 장에서 기억에 오래 남을 수 있는 재미있는 예제를 만들고자 노력했다. 어렵고 심각한 내용 다음에는 ‘나의 사망 가능성’과 같은 내용처럼 호기심을 줄 만한 예제가 제공되는데, 비슷한 예제로 해리 왕자와 그의 여자 친구 첼시 데이비 사이에서 나타나는 사랑과 증오라는 시스템 다이내믹스(system dynamics), 최적화를 통해 오스트리아에서 가장 높은 산을 찾으려는 호주 사람, 복권 당첨의 약법칙(weak law) 등을 다룬다.

지은이 소개

마티아스 템플(Matthias Templ)

오스트리아 비엔나 공과대학교 경제학과 소속 통계수학 방법론 연구소 부교수로 재직 중이다. 오스트리아 통계국의 방법론 학자로 활동하고 있으며, 두 명의 동료 연구자와 함께 파트너십 형태로 데이터 분석data-analysis OG를 운영 중이다. 주요 연구 분야는 대체(imputation), 응답자 정보의 통계적 노출 통제, 시각화, 구성 데이터 분석, 전산통계, 통계적 강건성, 다변량 방법론 등이다. 유명 과학저널에 45편 이상의 논문을 게재했으며, 누락값 시각화와 대체를 위한 패키지인 VIM, 합성 집단 시뮬레이션 패키지 simPop, 구성 데이터 강건 분석 패키지 robCompositions 등 여러 패키지의 저자이자 관리자로도 활동하고 있다. 대중들이 무료로 볼 수 있는 「Austrian Journal of Statistics」의 편집장이기도 하다. 여가시간에는 산 정상에서 그를 만날 가능성이 매우 크다.

옮긴이의 말

이 책을 번역하면서 머릿속에서 뚜렷해지는 생각이 있었다. ‘고정된 것은 변하는 것보다 항상 좋은 것 같아. 세상이 변하지만 않는다면 말이지.’ 경영 전략을 연구하는 나에게 의사결정자의 제한적 이성(bounded rationality)은 항상 흥미로운 주제다. 사람들이 모든 요인을 고려해서 미래 지향적으로 최적의 의사결정을 하기보다는 과거의 경험, 노하우, 그리고 현장에서 얻은 지식(idiosyncratic knowledge) 등 과거 지향적으로 의사결정을 하기 때문에 예상하지 못했던 나쁜 결과가 종종 발생한다. 과거의 성공 공식을 의사결정에 계속해서 적용하는 것을 결정론적 접근법이라고 하면, 현실에서 벌어지고 있는 사건을 토대로 미래를 예측해서 확률적으로 따져서 결정하는 방식을 확률론적 접근법이라 할 수 있다. 큰 변화가 없는 영역에서 살아가고 있다면 동네에서 가장 경험치가 높은 최고령의 어른께서 정답을 결정해주실지도 모르겠다. 불행히도 대부분의 우리는 어제의 성공이 또 다른 성공을 보장하지 않는 변화 속에 살고 있고, 불확실 속에서 성공 확률이 높은 쪽으로 결정을 해야 한다.
이 책은 확률론적 접근법이 필요한 대부분의 사람들에게 불필요한 가정을 내려놓고 현실에서 온 데이터로 결정 모델을 만드는 ‘시뮬레이션’을 소개한다. 시뮬레이션은 사건 사고에 관심이 있는 분들이라면 들어봤을 단어이고, 데이터를 거침없이 돌려서 기존의 지식으로는 생각하지 못했던 새로운 결과를 찾아내는 마법 정도의 개념으로 이해하고 있을 것이다. 내 경우는 박사 과정에서 연역적 방식으로 연구를 수행하는 방법을 배우다 보니, 데이터를 돌려서 아이디어를 얻고 주장을 하는 귀납적 방식은 많이 어색하다. 데이터라는 ‘현실 관찰’이 주도해서 지식을 일반화하기에는 ‘관찰한 양이 충분해서 예외는 없는가’라는 질문에 답할 자신이 없기 때문이다. 반면에 이론이 주도하면서 데이터의 역할은 ‘가설 검증’ 정도로 전환되고 확률 이론에 따라 가설이 참일 확률적 가능성에 초점을 두는 연역적 방식에 편안함을 느낀다. 그래서 귀납적 방식이라고 생각했던 시뮬레이션은 어색한 영역이었다.
그러면 시뮬레이션은 귀납적 분석 도구인가? 결론부터 말하자면 시뮬레이션은 사용 목적에 따라 두 가지 패러다임에 모두 적용될 수 있다. 학계는 연역적 방식이 정상적인 지식 형성 과정이지만, 시장을 전략적으로 접근해야 하는 산업계는 다른 이야기다. 남들과 다르게 해서 살아남아야 하는 회사 입장에서 데이터는 경쟁자들이 보지 못하는 새로운 변화와 패턴을 찾아낼 수 있도록 하는 거의 유일한 도구다. 거대한 데이터를 모으고, 저장하고, 분석하는 기술이 발전하면서 얻게 된 도구의 예측 정확성 덕분에 ‘예외’가 발생시킬 수 있는 리스크 수준을 감당해낼 수 있는 환경이 됐다. 이 책은 학계 및 산업계와 같이 의사 결정 패러다임이 다른 환경에서도 ‘시뮬레이션’은 훌륭한 영감과 아이디어를 줄 수 있음을 분석 플랫폼 R로 직접 구현하면서 보여준다.
이 책은 총 11개 장으로 구성돼 있다. 각 장이 별도의 이야기인 것 같지만, 절묘하게 연결되어 있는 것이 매력이다. 1장 ‘서론’은 시뮬레이션은 무엇인가에 대한 답을 빅데이터와 연계해서 설명한다. 2장 ‘R과 고성능 컴퓨팅’은 시뮬레이션을 R에서 구현하기 위해 필요한 전처리 방법과 시각화 처리 방법을 소개한다. 3장 ‘연필 기반 이론과 데이터 기반 전산 솔루션의 불일치’에서는 이론값과 데이터 분석값이 차이 나는 원인을 살펴보고 결정론적 수렴과 확률론적 수렴의 차이를 이해해본다. 4장 ‘난수 시뮬레이션’은 목적에 맞는 다양한 난수 생성기를 소개한다. 또한 몬테카를로 시뮬레이션이 왜 필요한지 이해할 수 있다. 이 장은 추후에 소개될 시뮬레이션 적용 부분에서 필요한 내용으로 반드시 R을 직접 실행하면서 이해해야 하는 장이다. 5장 ‘최적화 문제를 위한 몬테카를로 기법’에서는 3장에서 소개한 결정론적 수렴과 확률적 수렴을 몬테카를로 기법을 통해 시뮬레이션 최적화를 배우게 된다. 6장 ‘시뮬레이션으로 보는 확률 이론’에서는 임의로 추출된 수들을 반복적으로 시뮬레이션하는 과정은 대수의 법칙 및 중심극한정리 등 확률 개념과 일치하기 때문에 확률적 관점에서 시뮬레이션을 살펴본다. 7장 ‘리샘플링 방법’은 앞 장에서 소개한 방식인 가정된 분포로부터 추출된 난수를 시뮬레이션하는 것이 아니라, 현실에서 수집한 샘플 데이터로 편향과 오류가 적은 예측을 위해 적용할 수 있는 시뮬레이션 방법을 소개한다. 8장 ‘리샘플링 방법과 몬테카를로 테스트의 적용’에서는 일반 회귀 분석 알고리즘을 적용할 수 있는 조건에 부합하지 않고 누락값도 있는 가장 현실적인 데이터에 부트스트래핑과 몬테카를로 시뮬레이션을 적용해 가설을 검증하는 방법을 소개한다. 9장 ‘EM 알고리즘’은 누락값이 있는 데이터를 간단하게 생략하거나 단순한 기준으로 누락값을 대체하는 것이 아니라, 누락의 패턴을 찾아 데이터 전반적인 관점에서 누락값을 대체할 수 있는 시뮬레이션 방법을 설명한다. 10장 ‘복합 데이터로 하는 시뮬레이션’은 데이터의 구조가 여러 계층 수준으로 나뉘면서 복잡한 모델링이 필요한 경우 사용할 수 있는 모델 기반 시뮬레이션과 디자인 기반 시뮬레이션을 소개한다. 마지막 11장 ‘시스템 다이내믹스와 에이전트 기반 모델’은 시간의 흐름과 함께 관측 대상이 변해가는 패턴을 시뮬레이션으로 모형화하고 미래 예측에 사용할 수 있는 방안을 논의한다.
이 책을 번역하는 데 적지 않은 시간이 걸렸다. 에이콘 편집 팀에서도 많은 수학적 표기를 정확히 전달하기 위해 많은 시간을 들여서 정성을 다했으며, 나 또한 원서를 정확히 전달하기 위해 부족한 분야는 열심히 공부하면서 정확하게 번역하는 데 최선을 다했다. 오랜 시간 정성을 들인 번역이 여러분들의 학문, 경력, 사업 성과에 조금이나마 보탬이 된다면 그보다 큰 기쁨은 없을 것 같다.

옮긴이 소개

김재민

2014년도 미국 미시시피 대학교에서 경영학 박사를 마치고 뉴저지에 있는 스탁턴 대학교 조교수를 거쳐, 현재 미시간에 있는 오클랜드 대학교 비즈니스 스쿨에서 경영 전략을 가르치면서 연구하고 있다. 강의와 연구를 통해 경영 전략에 사용되는 데이터를 직접 만들고 분석하는 데 관심을 갖게 돼, ‘Statistics & Sports(통계와 스포츠)’라는 과목을 강의하고 ‘IOT & Data Science(사물인터넷과 데이터 과학)’를 개설했다. 2018년에는 140년 이상 축적된 메이저리그 야구 데이터로 회귀 분석, 연관성 분석, 판별 분석, 네트워크 분석, 군집 분석, 딥러닝을 통한 분류 및 패널 분석을 소개하는 『메이저리그 야구 통계학』(에이콘, 2018)을 출판했으며, 2018년 세종도서 학술부문 도서로 선정됐다. 현재는 경영자들의 관심(managerial attention)을 연구하면서 그들이 작성한 글과 문서에서 경영 전략에 대한 많은 힌트를 얻기 위해 노력하고 있으며, 이를 위해 숫자가 아닌 자연어(natural language)를 이용한 지도 학습 기반 내용 분석과 감성 분석 연구 방법에 집중하고 있다. 데이터 분석과 관련해서 10년 이상 포스팅하고 있는 블로그 ibuyworld.blog.me에서 역자를 만날 수 있다.

목차

목차
  • 1장. 서론
    • 시뮬레이션이란 무엇이며, 어디에 적용되는가?
    • 왜 시뮬레이션을 사용하는가?
    • 시뮬레이션과 빅데이터
    • 올바른 시뮬레이션 방법 선택하기
    • 요약
    • 참고문헌

  • 2장. R과 고성능 컴퓨팅
    • R 통계 환경
      • R 기초
      • R에 대한 아주 기본적인 내용들
      • 설치 및 업데이트
      • help
      • R 작업공간 및 작업 디렉토리
      • 데이터 유형
      • 누락값
    • 일반 함수, 메소드, 클래스
    • R에서의 데이터 전처리
      • apply와 기본 R의 친구들
      • 패키지 dplyr로 하는 기본 데이터 전처리
      • 패키지 data.table을 이용한 데이터 전처리
    • 고성능 컴퓨팅
      • 코딩에서 계산 속도가 느린 함수를 찾기 위한 분석법
      • 병렬 컴퓨팅
      • C++ 인터페이스
    • 정보 시각화
      • R의 그래픽 시스템
      • graphics 패키지
      • ggplot2 패키지
    • 참고문헌

  • 3장. 연필 기반 이론과 데이터 기반 전산 솔루션의 불일치
    • 기계 수 반올림 문제
      • 예제: 수를 64비트 형식으로 나타내기
      • 결정론적 케이스에서 수렴
      • 예제: 수렴
    • 문제의 상태
    • 요약
    • 참고문헌

  • 4장. 난수 시뮬레이션
    • 진성난수
    • 의사난수 시뮬레이션
      • 합동 생성기
      • 선형 합동 생성기 및 승산 합동 생성기
      • 지연 피보나치 수열 생성기
      • 그 밖의 의사난수 생성기
    • 비균등하게 분포되는 임의 변수 시뮬레이션
      • 역함수 변환 방법
      • 에일리어스 방법 또는 대체법
      • 로그 선형 모델을 이용한 테이블상의 빈도수 추정
      • 기각 샘플링
      • 절단 분포
      • 메트로폴리스-헤이스팅스 알고리즘
      • 깁스 샘플링
      • MCMC 샘플 진단
    • 난수 테스트
      • 난수 평가: 테스트 예제
    • 요약
    • 참고문헌

  • 5장. 최적화 문제를 위한 몬테카를로 기법
    • 수치 최적화
      • 경사 상승/하강 탐색 방법
      • 뉴턴-라프슨 방법
      • 범용성을 가진 최적화 방법들
    • 확률적 최적화 다루기
      • 간편한 절차(스타트렉, 스페이스볼, 스페이스볼 프린세스)
      • 메트로폴리스-헤이스팅스 분석 기법 다시 보기
      • 경사 기반 확률 최적화
    • 요약
    • 참고문헌

  • 6장. 시뮬레이션으로 보는 확률 이론
    • 확률 이론에 대한 기본 내용
    • 확률 분포
      • 이산 확률 분포
      • 연속 확률 분포
    • 복권 당첨
    • 대수의 약법칙
      • 황제펭귄과 여러분의 상사
    • 중심극한정리
    • 추정량의 속성
      • 추정량의 속성
      • 신뢰구간
      • 강건 추정량에 대한 고찰
    • 요약
    • 참고문헌

  • 7장. 리샘플링 방법
    • 부트스트랩
      • 오즈비에 대한 흥미로운 예제
      • 부트스트랩이 작동하는 이유
      • 부트스트랩 자세히 살펴보기
      • 플러그인 원칙
    • 부트스트랩으로 표준오차 추정
      • 부트스트랩을 이용한 복잡 추정의 예
    • 모수 부트스트랩
    • 부트스트랩으로 편향 추정하기
      • 부트스트랩으로 구하는 신뢰구간
    • 잭나이프
      • 잭나이프의 단점
      • 관측치 d개가 제거된 잭나이프
      • 부트스트랩 후 잭나이프
    • 교차 검증
      • 고전 선형 회귀 모델
      • 교차 검증의 기본 개념
      • 고전적 교차 검증: 70/30 방법
      • LOO 교차 검증
      • k배 교차 검증
    • 요약
    • 참고문헌

  • 8장. 리샘플링 방법과 몬테카를로 테스트의 적용
    • 회귀 분석에서의 부트스트랩
      • 부트스트랩을 사용해야 하는 동기
    • 누락값을 포함한 적절한 분산 추정
    • 시계열 분석에서 부트스트랩하기
    • 복합 샘플링 디자인에서 사용되는 부트스트랩
    • 몬테카를로 테스트
      • 흥미로운 예제
      • 몬테카를로 테스트의 특별한 종류인 순열 테스트
      • 복수의 그룹에 대한 몬테카를로 테스트
      • 부트스트랩을 사용한 가설 테스트
      • 다변량 정규성 테스트
      • 몬테카를로 테스트 크기의 적합성
      • 검증력 비교
    • 요약
    • 참고문헌

  • 9장. EM 알고리즘
    • 기본 EM 알고리즘
      • 전제 조건
      • EM 알고리즘의 공식적 정의
      • EM 알고리즘을 이해하기 위한 간단한 예
    • k 평균 클러스터링 예로 보는 EM 알고리즘
    • 누락값 대체를 위한 EM 알고리즘
    • 요약
    • 참고문헌

  • 10장. 복합 데이터로 하는 시뮬레이션
    • 다양한 종류의 시뮬레이션 및 소프트웨어
    • 복합 모델을 사용해 데이터 시뮬레이션하기
      • 모델 기반의 간단한 예제
      • 혼합 데이터를 가진 모델 기반 예제
      • 데이터를 시뮬레이션하기 위한 모델 기반 접근법
      • 고차원 데이터를 시뮬레이션하는 예제
      • 클러스터 또는 계층구조의 유한 모집단 시뮬레이션하기
    • 모델 기반 시뮬레이션 연구
      • 잠재 모델 예제
      • 모델 기반 시뮬레이션의 간단한 예제
      • 모델 기반 시뮬레이션 연구
    • 디자인 기반 시뮬레이션
      • 복합 설문조사 데이터의 예
      • 합성 모집단 시뮬레이션
      • 관심 있는 추정량
      • 샘플링 디자인 정의하기
      • 층화 샘플링 사용하기
      • 오염 추가
      • 다른 영역에 대해 별도의 시뮬레이션 실행
    • 누락값 삽입
    • 요약
    • 참고문헌

  • 11장. 시스템 다이내믹스와 에이전트 기반 모델
    • 에이전트 기반 모델
    • 사랑과 증오의 역동성
    • 생태 모델링의 다이내믹 시스템
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안