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장 ‘시스템 다이내믹스와 에이전트 기반 모델’에서는 에이전트 기반 마이크로시뮬레이션 모델을 논의하고 복잡한 변화 시스템을 공부하기 위해 시스템 다이내믹스에서 사용되는 기본 모델을 제시한다.
목차
목차
- 1장. 서론
- 시뮬레이션이란 무엇이며, 어디에 적용되는가?
- 왜 시뮬레이션을 사용하는가?
- 시뮬레이션과 빅데이터
- 올바른 시뮬레이션 방법 선택하기
- 요약
- 참고문헌
- 2장. R과 고성능 컴퓨팅
- R 통계 환경
- R 기초
- R에 대한 아주 기본적인 내용들
- 설치 및 업데이트
- help
- R 작업공간 및 작업 디렉토리
- 데이터 유형
- 누락값
- 일반 함수, 메소드, 클래스
- R에서의 데이터 전처리
- apply와 기본 R의 친구들
- 패키지 dplyr로 하는 기본 데이터 전처리
- 패키지 data.table을 이용한 데이터 전처리
- 고성능 컴퓨팅
- 코딩에서 계산 속도가 느린 함수를 찾기 위한 분석법
- 병렬 컴퓨팅
- C++ 인터페이스
- 정보 시각화
- R의 그래픽 시스템
- graphics 패키지
- ggplot2 패키지
- 참고문헌
- R 통계 환경
- 3장. 연필 기반 이론과 데이터 기반 전산 솔루션의 불일치
- 기계 수 반올림 문제
- 예제: 수를 64비트 형식으로 나타내기
- 결정론적 케이스에서 수렴
- 예제: 수렴
- 문제의 상태
- 요약
- 참고문헌
- 기계 수 반올림 문제
- 4장. 난수 시뮬레이션
- 진성난수
- 의사난수 시뮬레이션
- 합동 생성기
- 선형 합동 생성기 및 승산 합동 생성기
- 지연 피보나치 수열 생성기
- 그 밖의 의사난수 생성기
- 비균등하게 분포되는 임의 변수 시뮬레이션
- 역함수 변환 방법
- 에일리어스 방법 또는 대체법
- 로그 선형 모델을 이용한 테이블상의 빈도수 추정
- 기각 샘플링
- 절단 분포
- 메트로폴리스-헤이스팅스 알고리즘
- 깁스 샘플링
- MCMC 샘플 진단
- 난수 테스트
- 난수 평가: 테스트 예제
- 요약
- 참고문헌
- 5장. 최적화 문제를 위한 몬테카를로 기법
- 수치 최적화
- 경사 상승/하강 탐색 방법
- 뉴턴-라프슨 방법
- 범용성을 가진 최적화 방법들
- 확률적 최적화 다루기
- 간편한 절차(스타트렉, 스페이스볼, 스페이스볼 프린세스)
- 메트로폴리스-헤이스팅스 분석 기법 다시 보기
- 경사 기반 확률 최적화
- 요약
- 참고문헌
- 수치 최적화
- 6장. 시뮬레이션으로 보는 확률 이론
- 확률 이론에 대한 기본 내용
- 확률 분포
- 이산 확률 분포
- 연속 확률 분포
- 복권 당첨
- 대수의 약법칙
- 황제펭귄과 여러분의 상사
- 중심극한정리
- 추정량의 속성
- 추정량의 속성
- 신뢰구간
- 강건 추정량에 대한 고찰
- 요약
- 참고문헌
- 7장. 리샘플링 방법
- 부트스트랩
- 오즈비에 대한 흥미로운 예제
- 부트스트랩이 작동하는 이유
- 부트스트랩 자세히 살펴보기
- 플러그인 원칙
- 부트스트랩으로 표준오차 추정
- 부트스트랩을 이용한 복잡 추정의 예
- 모수 부트스트랩
- 부트스트랩으로 편향 추정하기
- 부트스트랩으로 구하는 신뢰구간
- 잭나이프
- 잭나이프의 단점
- 관측치 d개가 제거된 잭나이프
- 부트스트랩 후 잭나이프
- 교차 검증
- 고전 선형 회귀 모델
- 교차 검증의 기본 개념
- 고전적 교차 검증: 70/30 방법
- LOO 교차 검증
- k배 교차 검증
- 요약
- 참고문헌
- 부트스트랩
- 8장. 리샘플링 방법과 몬테카를로 테스트의 적용
- 회귀 분석에서의 부트스트랩
- 부트스트랩을 사용해야 하는 동기
- 누락값을 포함한 적절한 분산 추정
- 시계열 분석에서 부트스트랩하기
- 복합 샘플링 디자인에서 사용되는 부트스트랩
- 몬테카를로 테스트
- 흥미로운 예제
- 몬테카를로 테스트의 특별한 종류인 순열 테스트
- 복수의 그룹에 대한 몬테카를로 테스트
- 부트스트랩을 사용한 가설 테스트
- 다변량 정규성 테스트
- 몬테카를로 테스트 크기의 적합성
- 검증력 비교
- 요약
- 참고문헌
- 회귀 분석에서의 부트스트랩
- 9장. EM 알고리즘
- 기본 EM 알고리즘
- 전제 조건
- EM 알고리즘의 공식적 정의
- EM 알고리즘을 이해하기 위한 간단한 예
- k 평균 클러스터링 예로 보는 EM 알고리즘
- 누락값 대체를 위한 EM 알고리즘
- 요약
- 참고문헌
- 기본 EM 알고리즘
- 10장. 복합 데이터로 하는 시뮬레이션
- 다양한 종류의 시뮬레이션 및 소프트웨어
- 복합 모델을 사용해 데이터 시뮬레이션하기
- 모델 기반의 간단한 예제
- 혼합 데이터를 가진 모델 기반 예제
- 데이터를 시뮬레이션하기 위한 모델 기반 접근법
- 고차원 데이터를 시뮬레이션하는 예제
- 클러스터 또는 계층구조의 유한 모집단 시뮬레이션하기
- 모델 기반 시뮬레이션 연구
- 잠재 모델 예제
- 모델 기반 시뮬레이션의 간단한 예제
- 모델 기반 시뮬레이션 연구
- 디자인 기반 시뮬레이션
- 복합 설문조사 데이터의 예
- 합성 모집단 시뮬레이션
- 관심 있는 추정량
- 샘플링 디자인 정의하기
- 층화 샘플링 사용하기
- 오염 추가
- 다른 영역에 대해 별도의 시뮬레이션 실행
- 누락값 삽입
- 요약
- 참고문헌
- 11장. 시스템 다이내믹스와 에이전트 기반 모델
- 에이전트 기반 모델
- 사랑과 증오의 역동성
- 생태 모델링의 다이내믹 시스템
- 요약