R

Similar documents
확률과통계4

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

OCW_C언어 기초


112초등정답3-수학(01~16)ok

Microsoft PowerPoint Predicates and Quantifiers.ppt

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

PDF

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로

윈도우즈프로그래밍(1)

R

확률과통계6

야쿠르트2010 3월 - 최종

슬라이드 1

그룹웨어와 XXXXX 제목 예제

03_queue

PowerPoint Template

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - 27.pptx

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

퇴좈저널36호-4차-T.ps, page Preflight (2)

Journal of Educational Innovation Research 2018, Vol. 28, No. 1, pp DOI: * A Study on the Pe

Microsoft PowerPoint - C++ 5 .pptx

Java ...

À½¾ÇÁöµµ¼�¥³-14~261S

8장 문자열

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

소식지도 나름대로 정체성을 가지게 되는 시점이 된 거 같네요. 마흔 여덟번이나 계속된 회사 소식지를 가까이 하면서 소통의 좋은 점을 배우기도 했고 해상직원들의 소탈하고 소박한 목소리에 세속에 찌든 내 몸과 마음을 씻기도 했습니다. 참 고마운 일이지요 사람과 마찬가지로

May 2014 BROWN Education Webzine vol.3 감사합니다. 그리고 고맙습니다. 목차 From Editor 당신에게 소중한 사람은 누구인가요? Guidance 우리 아이 좋은 점 칭찬하기 고맙다고 말해주세요 Homeschool [TIP] Famil

가정법( 假 定 法 )이란, 실제로 일어나지 않았거나 앞으로도 일어나지 않을 것 같은 일에 대해 자신의 의견을 밝히거나 소망을 표현하는 어법이다. 가정법은 화자의 심적 태도나 확신의 정도를 나타내는 어법이기 때문 에 조동사가 아주 요긴하게 쓰인다. 조동사가 동사 앞에

<B1B9BEC7BFF8B3EDB9AEC1FD20C1A63331C1FD2DBABBB9AE E687770>

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770>

PowerPoint 프레젠테이션

chap x: G입력

012임수진

300 구보학보 12집. 1),,.,,, TV,,.,,,,,,..,...,....,... (recall). 2) 1) 양웅, 김충현, 김태원, 광고표현 수사법에 따른 이해와 선호 효과: 브랜드 인지도와 의미고정의 영향을 중심으로, 광고학연구 18권 2호, 2007 여름

고등수학(B)_지도서

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<4D F736F F D20B0D4C0CCC6AEBFFEC0CC5FBFB9B9AEC7D8BCAE5FB7B9BDBC33342D36362E646F63>

Web Scraper in 30 Minutes 강철

[동고동락한다] [가슴 아프다] [비서관] 2013년 8월 19일 9.[비서관]덕에 아이가 탄생해서 [미역국] [맛있다] [처음엔 어떤 사연인 줄 몰랐었지만] 마귀와[동고동락한다]하였으니[가슴 아프다]하지만[처음엔 어떤 사연인 줄 몰랐었지만]여러 가지 말 못할 역경을

하나님의 선한 손의 도우심 이세상에서 가장 큰 축복은 하나님이 나와 함께 하시는 것입니다. 그 이 유는 하나님이 모든 축복의 근원이시기 때문입니다. 에스라서에 보면 하나님의 선한 손의 도우심이 함께 했던 사람의 이야기 가 나와 있는데 에스라 7장은 거듭해서 그 비결을

김기남_ATDC2016_160620_[키노트].key

cha4_ocw.hwp

단순 베이즈 분류기

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

PowerPoint 프레젠테이션

Journal of Educational Innovation Research 2018, Vol. 28, No. 4, pp DOI: * A S

Multi Channel Analysis. Multi Channel Analytics :!! - (Ad network ) Report! -! -!. Valuepotion Multi Channel Analytics! (1) Install! (2) 3 (4 ~ 6 Page

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

PowerPoint 프레젠테이션

잡았다. 임진왜란으로 권위가 실추되었던 선조는 명군의 존재를 구세 주 이자 王權을 지켜주는 보호자 로 인식했다. 선조는 그 같은 인 식을 바탕으로 扈聖功臣들을 높이 평가하고 宣武功臣들을 평가 절하함으로써 자신의 권위를 유지하려고 했다. 이제 명에 대한 숭 앙과 충성은

6단계 08권 TG

I&IRC5 TG_08권

Contents 확률분포 (probability distribution) 이항분포 (binomial distribution) 초기하분포 (hypergeometric distribution) 포아송분포 (poisson distribution) 2

Microsoft PowerPoint - gnu-w10-c-chap12

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

슬라이드 1

스마트폰 애플리케이션 시장 동향 및 전망 그림 1. 스마트폰 플랫폼 빅6 스마트폰들이 출시되기 시작하여 현재는 팜의 웹OS를 탑재한 스마트폰을 제외하고는 모두 국내 시장에도 출 시된 상황이다. 이들 스마트폰 플랫폼이 처해있는 상황 과 애플리케이션 시장에 대해 살펴보자.


<C0CFBABBB0FCB1A4BCD2BAF1C0DAC1B6BBE7BAB8B0EDBCAD2E687770>

설계란 무엇인가?

PowerPoint 프레젠테이션

1_2•• pdf(••••).pdf

01

adfasdfasfdasfasfadf

4. 수업의 흐름 차시 창의 인성 수업모형에 따른 단계 수업단계 활동내용 창의 요소 인성 요소 관찰 사전학습: 날짜와 힌트를 보고 기념일 맞춰보기 호기심 논리/ 분석적 사고 유추 5 차시 분석 핵심학습 그림속의 인물이나 사물의 감정을 생각해보고 써보기 타인의 입장 감정

UI TASK & KEY EVENT

설계란 무엇인가?

<C7D1B9CEC1B7BEEEB9AEC7D C3D6C1BE295F31392EB9E8C8A3B3B22E687770>

Microsoft PowerPoint - chap-06.pptx

2 / 26

2007 학년도 하반기 졸업작품 아무도 모른다 (Nobody Knows) 얄리, 보마빼 (AIi, Bomaye) 외계인간 ( 外 界 人 間 ) 한국예술종합학교 연극원 극작과 예술전문사 안 재 승

DBPIA-NURIMEDIA

FGB-P 학번수학과권혁준 2008 년 5 월 19 일 Lemma 1 p 를 C([0, 1]) 에속하는음수가되지않는함수라하자. 이때 y C 2 (0, 1) C([0, 1]) 가미분방정식 y (t) + p(t)y(t) = 0, t (0, 1), y(0)

MySQL-.. 1

UI TASK & KEY EVENT

독립운동사연구제25집-2.PDF

슬라이드 1

Microsoft Word - Lab.4

<C3D6C0E7C3B528BAB8B5B5C0DAB7E1292D322E687770>

< B0B3C0CEC1A4BAB8BAD0C0EFC1B6C1A4BBE7B7CAC1FD2E687770>

Columns 8 through while expression {commands} 예제 1.2 (While 반복문의이용 ) >> num=0

¹Ìµå¹Ì3Â÷Àμâ


1217 WebTrafMon II

328 退溪學과 韓國文化 第43號 다음과 같은 3가지 측면을 주목하여 서술하였다. 우선 정도전은 ꡔ주례ꡕ에서 정치의 공공성 측면을 주목한 것으로 파악하였다. 이는 국가, 정치, 권력과 같은 것이 사적인 소유물이 아니라 공적인 것임을 강조하는 것으로 조선에서 표방하는 유

학습법 2 초등 수학 서술형 평가 대비법 수식을 문장으로, 문장을 수식으로 바꾸는 연습해야 2009 개정교육과정이 도입되면서부터 초등과정 수학이 어려워졌다. 타 교과 간 연계성이 강화되고, 문제 해결 능력과 서술형 답을 요구하는 문제가 늘어나고 있기 때문이다. 특히 서

영어-중2-천재김-07과-어순-B.hwp

Probabilistic graphical models: Assignment 3 Seung-Hoon Na June 7, Gibbs sampler for Beta-Binomial Binomial및 beta분포는 다음과 같이 정의된다. k Bin(n, θ):

Journal of Educational Innovation Research 2019, Vol. 29, No. 1, pp DOI: : * Research Subject

<C6F7C6AEB6F5B1B3C0E72E687770>

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

chap01_time_complexity.key

한국 출산력의 저하 요인에 관한 연구

농심-내지

두산동아-확통 완성본.hwp

BSC Discussion 1

Transcription:

R 을이용한시뮬레이션 Big Data Analytics Short Courses 2 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 1 / 39

랜덤표본 : sample() 1 랜덤표본 : sample() 2 빈도 : table() 3 반복시행 : replicate() 4 논리연산 5 Chevalier de Méré s Problem 6 Birthday Problem Big Data Analytics Short Courses R 을이용한시뮬레이션 2 2 / 39

Topic 랜덤표본 : sample() 1 랜덤표본 : sample() sample() Big Data Analytics Short Courses R 을이용한시뮬레이션 2 2 / 39

sample() 랜덤표본 : sample() sample() sample() 주어진원소목록에서임의의원소를선택하는함수 주어진원소로임의의순열을생성 > sample(1:10) [1] 4 9 5 2 1 8 6 10 7 3 원소목록에서주어진개수만큼비복원추출 > sample(1:10, size = 5) [1] 10 2 3 1 7 원소목록에서주어진개수만큼복원추출 > sample(1:3, size = 10, replace = TRUE) [1] 2 3 3 1 1 3 3 3 3 1 원소들이서로다른확률을가질때 > sample(1:3, size = 10, replace = TRUE, prob = c(1/2, 1/3, 1/6)) [1] 1 2 3 1 2 1 1 2 2 1 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 3 / 39

랜덤표본 : sample() 예제 : 원숭이타이피스트 sample() Monkey Typist 원숭이가키보드를무작위로두드린다. 모든키가입력될확률이동일할때원숭이가두드리는내용을시뮬레이션하면 > sample(letters, 6, replace = TRUE) [1] "e" "a" "d" "l" "t" "b" > sample(letters, 6, replace = TRUE) [1] "i" "p" "i" "j" "f" "e" 원숭이타이피스트가 banana 라고입력할확률은? 셰익스피어의햄릿을정확히타이핑할확률은? ( 참조 : Infinite Monkey Theorem at Wikipedia) Big Data Analytics Short Courses R 을이용한시뮬레이션 2 4 / 39

예제 : 항아리속공 랜덤표본 : sample() sample() 항아리속의공비복원추출 항아리안에까만색 4 개, 흰색 3 개, 초록색 2 개, 빨간색 1 개의공이들어있다. 3 개를비복원추출하는실험을시뮬레이션하면 > (urn <- rep(c("b", "W", "G", "R"), c(4, 3, 2, 1))) [1] "B" "B" "B" "B" "W" "W" "W" "G" "G" "R" > sample(urn, 3) [1] "B" "W" "B" > sample(urn, 3) [1] "B" "R" "B" 항아리속의공복원추출 동일한항아리에서 10 개를복원추출하는실험을시뮬레이션하면 > sample(urn, 10, replace = TRUE) [1] "G" "W" "B" "B" "B" "B" "B" "B" "B" "W" > sample(urn, 10, replace = TRUE) [1] "B" "G" "R" "R" "B" "W" "B" "B" "G" "B" Big Data Analytics Short Courses R 을이용한시뮬레이션 2 5 / 39

예제 : 항아리속공 랜덤표본 : sample() sample() 항아리속의공복원추출 항아리속의공은무한하고까망, 하양, 초록, 빨강의비율이 4:3:2:1 이라고생각하면 > sample(c("b", "W", "G", "R"), 10, replace = TRUE, prob = c(4, 3, 2, 1)) [1] "W" "B" "B" "G" "B" "B" "W" "B" "G" "R" > sample(c("b", "W", "G", "R"), 10, replace = TRUE, prob = c(4, 3, 2, 1)) [1] "W" "B" "B" "G" "W" "B" "B" "B" "G" "G" > sample(c("b", "W", "G", "R"), 10, replace = TRUE, prob = c(4, 3, 2, 1)/10) [1] "G" "R" "R" "R" "B" "R" "W" "G" "G" "B" > sample(c("b", "W", "G", "R"), 10, replace = TRUE, prob = c(4, 3, 2, 1)/10) [1] "R" "B" "W" "G" "R" "G" "B" "R" "W" "R" Big Data Analytics Short Courses R 을이용한시뮬레이션 2 6 / 39

Topic 빈도 : table() 2 빈도 : table() table() Big Data Analytics Short Courses R 을이용한시뮬레이션 2 7 / 39

table() 빈도 : table() table() table() 빈도표를계산하는함수 빈도표를작성 > table(c(1, 2, 2, 3, 2, 3, 3, 2, 2)) 1 2 3 1 5 3 > table(c("b", "B", "C", "C", "A", "B")) A B C 1 3 2 빈도에따라정렬 : sort() 이용 > freq <- table(c("b", "B", "C", "C", "A", "B")) > sort(freq) A C B 1 2 3 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 8 / 39

prop.table() 빈도 : table() table() prop.table() 빈도를비율로변환 > freq <- table(c("b", "B", "C", "C", "A", "B")) > freq/sum(freq) A B C 0.1666667 0.5000000 0.3333333 > prop.table(freq) A B C 0.1666667 0.5000000 0.3333333 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 9 / 39

예제 : 항아리속공 빈도 : table() table() 항아리속공복원추출결과 까망, 하양, 초록, 빨강공이 4:3:2:1 로들어있는항아리에서 1000 개를복원추출한결과의색깔별빈도를계산하면 > x <- sample(c("b", "W", "G", "R"), 1000, replace = TRUE, prob = c(4, 3, 2, 1)) > table(x) x B G R W 402 204 96 298 > plot(table(x)) table(x) 200 300 400 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 10 / 39

예제 : 단어빈도 빈도 : table() table() Google 에서 "Alice In Wonderland Gutenberg" 로검색. Project Gutenberg 의 Alice s Adventures in Wonderland 선택 Plain Text UTF-8 선택 URL 주소를복사 텍스트파일읽기 > alice <- scan("http://www.gutenberg.org/cache/epub/11/pg11.txt", what = "", + quote = "") 단어빈도계산 > freq <- table(alice) 빈도순정렬 > sort(freq, decreasing = TRUE) Big Data Analytics Short Courses R 을이용한시뮬레이션 2 11 / 39

예제 : 단어빈도 빈도 : table() table() 고빈도 50 단어 > head(sort(freq, decreasing = TRUE), 50) alice the and to a of she said in it 1664 780 773 662 596 484 416 401 356 was you I as that Alice with at her 329 301 260 246 226 221 214 211 203 had all be on for or very not this 175 168 154 148 146 137 127 122 122 'I little they but so The out he his 121 117 109 105 104 100 97 96 93 about is what up were went one Project down 91 89 86 83 82 79 78 78 77 have Alice, like if by 77 76 74 73 72 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 12 / 39

예제 : 단어빈도 빈도 : table() table() > top50 <- sort(freq, decreasing = TRUE)[1:50] > plot(top50, xlab = "Rank", ylab = "Frequency") Frequency 500 1000 1500 0 10 20 30 40 50 Rank Big Data Analytics Short Courses R 을이용한시뮬레이션 2 13 / 39

예제 : 단어빈도 빈도 : table() table() 빈도가 5 이상인것은몇단어? 빈도가 1 인단어의갯수는? Big Data Analytics Short Courses R 을이용한시뮬레이션 2 14 / 39

예제 : 단어빈도 빈도 : table() table() 빈도가 5 이상인것은몇단어? > sum(freq >= 5) [1] 791 > length(which(freq >= 5)) [1] 791 빈도가 1 인단어의갯수는? > sum(freq == 1) [1] 3738 > length(which(freq == 1)) [1] 3738 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 15 / 39

Topic 반복시행 : replicate() 3 반복시행 : replicate() replicate() Big Data Analytics Short Courses R 을이용한시뮬레이션 2 16 / 39

replicate() 반복시행 : replicate() replicate() replicate() 함수는시뮬레이션여러번을반복할때사용할수있다. > replicate(5, sample(1:3)) [,1] [,2] [,3] [,4] [,5] [1,] 3 1 1 1 3 [2,] 2 3 3 2 1 [3,] 1 2 2 3 2 > replicate(5, sample(1:3, 5, replace = TRUE)) [,1] [,2] [,3] [,4] [,5] [1,] 1 3 1 1 3 [2,] 2 3 2 3 3 [3,] 3 2 2 3 2 [4,] 2 3 2 3 1 [5,] 2 3 2 2 2 > sample(1:3, 25, replace = TRUE) [1] 1 1 3 1 1 2 2 1 1 3 2 1 3 2 1 2 3 2 3 3 2 1 2 2 2 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 17 / 39

반복시행 : replicate() 예제 : 원숭이타이피스트 replicate() 무작위 6 글자 > sample(letters, 6, replace = TRUE) [1] "q" "v" "d" "z" "m" "u" 한단어로합치기 : paste() 이용 > paste(sample(letters, 6, replace = TRUE), collapse = "") [1] "xkbapz" 반복 > replicate(10, paste(sample(letters, 6, replace = TRUE), collapse = "")) [1] "coeumb" "baguxz" "jnauas" "hqovxj" "ifnphw" "cslimx" "wbidnu" [8] "uvtoub" "pkgait" "zcvxjc" Big Data Analytics Short Courses R 을이용한시뮬레이션 2 18 / 39

Topic 논리연산 4 논리연산논리연산 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 19 / 39

논리연산자 논리연산 논리연산 연산자 의미 예제 값! NOT!TRUE FALSE, OR TRUE FALSE TRUE &, && AND TRUE & FALSE FALSE Big Data Analytics Short Courses R 을이용한시뮬레이션 2 20 / 39

예제 : 단어출현위치 논리연산 논리연산 Alice 라는단어가등장하는위치와 Project 라는단어가등장하는위치 > par(mar = c(2, 2, 0, 0)) > plot(alice == "Alice", type = "h") 0.0 0.8 0 5000 10000 15000 20000 25000 30000 > plot(alice == "Project", type = "h") 0.0 0.8 0 5000 10000 15000 20000 25000 30000 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 21 / 39

예제 : 단어출현위치 Cat, Cheshire 가등장하는위치 논리연산 논리연산 > par(mar = c(2, 2, 0, 0)) > plot(alice == "Cat", type = "h") 0.0 0.8 0 5000 10000 15000 20000 25000 30000 > plot(alice == "Cheshire", type = "h") 0.0 0.8 0 5000 10000 15000 20000 25000 30000 > plot(alice == "Cat" alice == "Cheshire", type = "h") 0.0 0.8 0 5000 10000 15000 20000 25000 30000 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 22 / 39

any(), all() 논리연산 논리연산 any() : 하나라도참이면참, 아니면거짓 > x <- c(1, 1, 2, 3, 5, 8, 13) > x > 10 [1] FALSE FALSE FALSE FALSE FALSE FALSE TRUE > any(x > 10) [1] TRUE > any(x < 0) [1] FALSE all(): 모두참이면참, 아니면거짓 > all(x > 10) [1] FALSE > all(x > 0) [1] TRUE Big Data Analytics Short Courses R 을이용한시뮬레이션 2 23 / 39

예제 : 원숭이타이피스트 논리연산 논리연산 원숭이가엄청나게많이타이핑한다면햄릿을완벽하게쓰는일도생길수있다? ( 참조 : Infinite Monkey Theorem at Wikipedia) 원숭이가 yes 라고타이핑할확률은? 원숭이가 3 글자단어를 100000 번반복타이핑하고그안에 yes 라는단어가들어있는지확인해보자. 3 글자한단어 > paste(sample(letters, 3, replace = TRUE), collapse = "") [1] "dri" 100000 번반복 > words <- replicate(1e+05, paste(sample(letters, 3, replace = TRUE), collapse = "") yes 가있는가? > any(words == "yes") [1] TRUE Big Data Analytics Short Courses R 을이용한시뮬레이션 2 24 / 39

Topic Chevalier de Méré s Problem 5 Chevalier de Méré s Problem Chevalier de Méré s Problem Big Data Analytics Short Courses R 을이용한시뮬레이션 2 25 / 39

Chevalier de Méré Chevalier de Méré s Problem Chevalier de Méré s Problem 17 세기프랑스의작가이자아마추어수학자이자도박사인슈발리에드메레는두가지도박의승률이수학적으로동일하다고생각하였다. ( 게임 1) 동일한주사위를 4 번던져서그중한번이라도 1 의눈이나오면플레이어가이긴다. 그렇지않으면딜러가이긴다. 4 1 6 = 2 3 ( 게임 2) 주사위 2 개를 24 번던져서한번이라도 2 개주사위모두 1 의눈이나오면플레이어가이긴다. 그렇지않으면딜러가이긴다. 24 1 36 = 2 3 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 26 / 39

파스칼과페르마 Chevalier de Méré s Problem Chevalier de Méré s Problem 드메레는경험적으로는게임 1 이플레이어에게더유리하다는의심을가지고있었음에도그이유를설명할수없었다. 드메레는이문제를메르센살롱에공개한다. 당대의유명한수학자파스칼과페르마는편지를주고받으며이문제를연구하고확률론의수학적기초가탄생한다. Big Data Analytics Short Courses R 을이용한시뮬레이션 2 27 / 39

Chevalier de Méré s Problem 파스칼과페르마의설명 Chevalier de Méré s Problem ( 게임1) 동일한주사위를 4번던져서그중한번이라도 1의눈이나오면플레이어가이긴다. 그렇지않으면딜러가이긴다. ( ) 5 4 1 0.5177469 6 > 1 - (5/6)^4 [1] 0.5177469 ( 게임2) 주사위 2개를 24번던져서한번이라도 2개주사위모두 1의눈이나오면플레이어가이긴다. 그렇지않으면딜러가이긴다. ( ) 35 24 1 0.4914039 36 > 1 - (35/36)^24 [1] 0.4914039 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 28 / 39

시뮬레이션 : 게임 1 Chevalier de Méré s Problem Chevalier de Méré s Problem ( 게임 1) 동일한주사위를 4 번던져서그중한번이라도 1 의눈이나오면플레이어가이긴다. 그렇지않으면딜러가이긴다. 주사위 4 번던지기 > sample(1:6, 4, replace = TRUE) [1] 1 4 1 5 1 이있는가? > sample(1:6, 4, replace = TRUE) == 1 [1] FALSE FALSE FALSE FALSE 1 이하나라도있는가? > any(sample(1:6, 4, replace = TRUE) == 1) [1] FALSE Big Data Analytics Short Courses R 을이용한시뮬레이션 2 29 / 39

시뮬레이션 : 게임 1 Chevalier de Méré s Problem Chevalier de Méré s Problem 주사위 4 번던져서 1 이한번이라도있는지확인하는게임을 10000 번반복 > replicate(10000, any(sample(1:6, 4, replace = TRUE) == 1)) sum() 함수를사용하면이긴횟수. > sum(replicate(10000, any(sample(1:6, 4, replace = TRUE) == 1))) mean() 함수를적용하연이긴게임의비율. > mean(replicate(10000, any(sample(1:6, 4, replace = TRUE) == 1))) 논리값 (TRUE, FALSE) 에산술연산을적용하면 1, 0 으로계산된다. Big Data Analytics Short Courses R 을이용한시뮬레이션 2 30 / 39

시뮬레이션 : 게임 2 Chevalier de Méré s Problem Chevalier de Méré s Problem ( 게임 2) 주사위 2 개를 24 번던져서한번이라도 2 개주사위모두 1 의눈이나오면플레이어가이긴다. 그렇지않으면딜러가이긴다. 주사위 2 개던지기 > sample(1:6, 2, replace = TRUE) 두눈모두 1 인가? > all(sample(1:6, 2, replace = TRUE) == 1) 주사위 2 개던져두눈모두 1 인지확인하는시행을 24 번반복 > replicate(24, all(sample(1:6, 2, replace = TRUE) == 1)) Big Data Analytics Short Courses R 을이용한시뮬레이션 2 31 / 39

시뮬레이션 : 게임 2 Chevalier de Méré s Problem Chevalier de Méré s Problem 24 번중한번이라도 (1, 1) 이나왔는가? > any(replicate(24, all(sample(1:6, 2, replace = TRUE) == 1))) 게임을 10000 번반복 > replicate(10000, any(replicate(24, all(sample(1:6, 2, replace = TRUE) == 1)))) 이긴게임의횟수 > sum(replicate(10000, any(replicate(24, all(sample(1:6, 2, replace = TRUE) == + 1))))) 이긴게임의비율 > mean(replicate(10000, any(replicate(24, all(sample(1:6, 2, replace = TRUE) == + 1))))) Big Data Analytics Short Courses R 을이용한시뮬레이션 2 32 / 39

Chevalier de Méré s Problem 시뮬레이션 : 게임 1 vs 게임 2 Chevalier de Méré s Problem ( 게임 1) 동일한주사위를 4 번던져서그중한번이라도 1 의눈이나오면플레이어가이긴다. 그렇지않으면딜러가이긴다. > mean(replicate(10000, any(sample(1:6, 4, replace = TRUE) == 1))) [1] 0.5114 ( 게임 2) 주사위 2 개를 24 번던져서한번이라도 2 개주사위모두 1 의눈이나오면플레이어가이긴다. 그렇지않으면딜러가이긴다. > mean(replicate(10000, any(replicate(24, all(sample(1:6, 2, replace = TRUE) == + 1))))) [1] 0.4811 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 33 / 39

Topic Birthday Problem 6 Birthday Problem Birthday Problem Big Data Analytics Short Courses R 을이용한시뮬레이션 2 34 / 39

Birthday Problem Birthday Problem Birthday Problem 우리강의실에생일이같은사람이있을확률은? ( 랜덤하게모였다고가정. 일년은 365 일로계산 ) 모두생일이다를확률을구하면 : ( 365 ) n n! 365 n = 365! 365 (365 n + 1) = (365 n)!365n 365 n 30 명일때 : 생일이같은사람이있을확률은약 70% > n <- 30 > 1 - exp(lfactorial(365) - lfactorial(365 - n) - n * log(365)) [1] 0.7063162 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 35 / 39

시뮬레이션 Birthday Problem Birthday Problem 한강의실에생일이같은사람이있을확률은? ( 랜덤하게모였다고가정. 일년은 365 일 ) 1 365 숫자중 n 개를복원추출하였을때중복 1:365 에서 30 개의숫자복원추출 > sample(1:365, 30, replace = TRUE) 중복데이터가있는지확인 > any(duplicated(sample(1:365, 30, replace = TRUE))) 30 명씩복원추출하는시행을 1000 번반복 > replicate(1000, any(duplicated(sample(1:365, 30, replace = TRUE)))) 생일이같은사람이있는비율 > mean(replicate(1000, any(duplicated(sample(1:365, 30, replace = TRUE))))) [1] 0.71 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 36 / 39

Birthday Problem Birthday Problem 시뮬레이션 : 2014 년도월별출생추이 월별출생수 (Birth Number Per Month): > bnpm <- c(4.12, 3.68, 3.8, 3.72, 3.57, 3.42, 3.64, 3.65, 3.78, 3.64, 3.23, 3.27) Big Data Analytics Short Courses R 을이용한시뮬레이션 2 37 / 39

시뮬레이션 Birthday Problem Birthday Problem 월별출생비율 (Birth Probability Per Month) > (bppm <- bnpm/sum(bnpm)) [1] 0.09466912 0.08455882 0.08731618 0.08547794 0.08203125 0.07858456 [7] 0.08363971 0.08386949 0.08685662 0.08363971 0.07421875 0.07513787 같은달에는매일출생수가동일하다고가정하면, > days <- c(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) > bppm/days [1] 0.003053843 0.003019958 0.002816651 0.002849265 0.002646169 [6] 0.002619485 0.002698055 0.002705467 0.002895221 0.002698055 [11] 0.002473958 0.002423802 365 일매일의일별출생비율 (Birth Prob. Per Day) > bppd <- rep(bppm/days, days) Big Data Analytics Short Courses R 을이용한시뮬레이션 2 38 / 39

시뮬레이션 Birthday Problem Birthday Problem 일별출생비율을이용하여 30 명을뽑으면 > sample(1:365, size = 30, replace = TRUE, prob = bppd) [1] 47 29 288 304 22 138 245 11 320 207 260 7 102 79 125 242 26 [18] 22 285 220 272 138 179 191 60 185 1 270 76 274 30 명중생일같은사람이있는확인 > any(duplicated(sample(1:365, size = 30, replace = TRUE, prob = bppd))) 30 명씩뽑는시행을 1000 번반복하면 > replicate(1000, any(duplicated(sample(1:365, size = 30, replace = TRUE, prob = bpp 생일같은사람이있는비율은 > mean(replicate(1000, any(duplicated(sample(1:365, size = 30, replace = TRUE, + prob = bppd))))) [1] 0.701 Big Data Analytics Short Courses R 을이용한시뮬레이션 2 39 / 39