# Luento 19.09.07 # Kombinatoriikkaa (s. 12) ################# gamma(x) choose(n, k) factorial(x) ############################ prod(1:5) # 5! 5-kertoma prod((6-4+1):6) # 6^(4) 6:n 4-kertoma x<-5 factorial(x) # Esimerkki 2.3 Syntymäpäiväongelma (Luennot s. 12) ################################################### # # SYNTYMÄPÄIVÄONGELMA # ################################################## # r on ryhmän koko Ainakin kahdella on sama syntymäpäivä? Kaikilla eri syntymäpäivä? A={Ainakin kahdella on sama syntymäpäivä} A^c = {Kaikilla eri syntymäpäivä} P(A) = 1 - P(A^c) ############ # Yksi arvo ############ # Kiinnitetään ryhmän koko r<-30 a<-prod(365:(365-r+1)); b<-365^r tn<-(1-a/b) # tn, että ainakin kahdella on sama syntymäpäivä, r=30 ############### # r:n funktiona ############### r<-50 a<-cumprod(365:(365-r+1)); b<-365^(1:r) y<-(1-a/b) # tn, että ainakin kahdella on sama syntymäpäivä r:n funktiona, ks. s. 13 plot(1:r,y) # Kertoma (s. 25) ######### choose(6,2) # 6 kahden yli; prod((6-2+1):6)/prod(1:2) # Multinomikerroin (s. 25) ################### choose(6,3)*choose(3,2)*choose(1,1) # 6!/3!2!1! prod(1:6)/(prod(1:3)*prod(1:2)*prod(1:1)) # 6!/3!2!1! ################### # 2.3.6 Gammafunktio (s. 28) ############################ gamma(1) gamma(10) prod(1:9) gamma(1/2) # [1] 1.772454 sqrt(pi) # [1] 1.772454 # 2.5.1 Hypergeometrinen jakauma (s. 22) dhyper(x, m, n, k) # f(x), missä m=a, n=b, k=n; x<-0:4 dhyper(x,4,6,5) # tnf:n arvot x:n arvoilla 0,1,2,3,4 plot(x,dhyper(x,4,6,5)) sum(dhyper(x,4,6,5)) # E2.12 Lotto, m=7, n=32, k=7 # (a) dhyper(7,7,32,7) # [1] 6.501554e-08 choose(39,7) # Kaikkien lottorivien lukumäärä # [1] 15380937 1/choose(39,7) # a-kohdan vastaus # [1] 6.501554e-08 #(b) # Ainakin 5 oikein on P(X>4)=1-P(X<=4) # P(X<=4)=F(4)=phyper(4,7,32,7) # Vastaus: 1-F(4)= 1-phyper(4,7,32,7) # Toinen tapa: x<-5:7 sum(dhyper(x,7,32,7)) ############## # E2.13 # (a) x<-5 dhyper(x,400,11600,50) # (b) # 5% on 0.05*50 0.05*50 # [1] 2.5 on 5% 50:stä # Todenn., että vähemm. kuin 5% otokseen on phyper(2,400,11600,50) # [1] 0.7677245 # 2.7 Binomijakauma (s. 25) n<-50 pbinom(x,n,0.05) # Binomijakauma jakauma # dbinom(x, size, prob) ; size = otoskoko, prob= onnistumistodennäköisyys x<-0:20 n<-20 dbinom(x,n,1/3) plot(0:20,dbinom(x,n,1/3)) # Pelataan Efronin noppaa. # Annetaan arvo n:lle ja nollataan aluksi tulos. n<-10 # Noppa A sample(c(1,1,5,5,9,9),n,replace=T) # Heitetään n kertaa harhatonta noppaa # sample(c(1,1,5,5,9,9),n,replace=T, prob=c(1/6,1/6,1/6,1/6,1/6,1/6)) # sama kuin yllä # Noppa B sample(c(3,3,4,4,8,8),n,replace=T) # Noppa C sample(c(2,2,6,6,7,7),n,replace=T) tulos<-0 # Noppa A vastaan B d<-sample(c(1,1,5,5,9,9),n,replace=T)-sample(c(3,3,4,4,8,8),n,replace=T) d<-as.numeric(d>0) 2*sum(d)-n; tulos<-tulos+2*sum(d)-n tulos # Noppa B vastaan C d<-sample(c(3,3,4,4,8,8),n,replace=T)-sample(c(2,2,6,6,7,7),n,replace=T) d<-as.numeric(d>0) 2*sum(d)-n; tulos<-tulos+2*sum(d)-n tulos # Noppa C vastaan A d<-sample(c(2,2,6,6,7,7),n,replace=T)-sample(c(1,1,5,5,9,9),n,replace=T) d<-as.numeric(d>0) 2*sum(d)-n; tulos<-tulos+2*sum(d)-n tulos ########################## H1.1 ######################## # 1.2 # \item Ohessa on kolme $200$:n heiton sarjaa, joista yksi on tuotettu heittämällä "oikeata" # harhatonta # rahaa $200$ kertaa ($200$ riippumatonta toistokoetta, jossa kruunun tn = $1/2$.) Muut poikkeavat # selvästi (?) "oikeasta" rahanheittokokeen tuloksesta. Koeta päätellä tai arvata, mikä on se # aito rahanheiton tulos (Vrt. Mustonen: SURVO MM, Opetusohjelmat/Todennäköisyyksien laskentaa). # Laske jokaisesta sarjasta kruunujen lkm. Onko edellisen tehtävän tulosten perusteella uskottavaa, # että sarjat on saatu harhattomalla rahalla. y1<-c(1,1,0,1,0,1,0,0,1,1,0,1,0,1,0,0,1,1,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,1,0,1,1,1, 0,0,0,1,1,1,1,1,1,0,1,0,0,1,0,0,0,1,1,0,1,1,0,1,1,0,1,1,0,0,1,0,1,0,1,0,1,0,0,1,0, 0,0,1,0,0,1,1,0,1,0,0,0,1,0,1,0,0,1,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,0,0,1,1,0,0,1,0, 1,0,1,0,0,1,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,0,1,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,0, 0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,1,0,1,0,0) y2<-c(1,1,0,0,0,0,0,1,0,1,0,1,0,0,1,0,1,1,1,0,0,0,1,1,1,1,0,1,1,0,0,1,0,0,0,0,1,0,0, 0,0,1,0,1,1,0,0,0,1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,1,0,1,0,1,0, 1,0,1,1,0,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,0,1,1,0,1,1,1,0,0,0,0,1, 1,1,0,1,0,1,1,1,0,1,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0, 0,1,1,1,1,1,1,0,1,0,0,0,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,0,1,0) y3<-c(0,0,1,1,1,1,0,1,1,1,0,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1,1,0,1,1,1,0,1,0, 1,0,1,0,0,1,0,0,1,1,1,0,1,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,1,1,0,1,0,1,0,1, 1,0,1,0,0,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,1,0,1,0,1,0,1, 0,0,1,0,0,1,0,1,1,0,1,1,0,0,0,1,1,1,1,0,1,1,1,0,1,0,1,0,0,1,1,1,1,1,0,1,0,0,1,0, 1,0,0,1,0,1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,0, 1,1,0) sum(y1); sum(y2);sum(y3); # [1] 95 # [1] 98 # [1] 99 Lantit näyttävät olevan harhattomia, jos tulosta verrataan "oikealla" rahalla tehdyn simulointikokeen tulokseen. (Ks. R1:n alku, simulointi Kruunut-ohjelmalla) Sarjat poikkeavat kuitenkin muissa suhteissa. Kiinnitetään huomiota toistosten lkm:ään. # Heitetään "oikeata" lanttia. n<-200 sample(c(0,1), n, replace = TRUE) # Katsotaan, miten oikea lantti käyttäytyy ############## # Analysoidaan tehtävää H1.1 tarkemmin # 1.3 \item Tarkastellaan nyt edellisen tehtävän heittosarjoissa esiintyvien kruunun $1$-toistosten lukumääriä (Kruunun $n$-toistos tarkoitaa sitä, että kruunu esiintyy $n$ kertaa peräkkäin.) Tehdään simulointikoe. Tehdään harhattomalla rahalla $200$ riippumatonta heittoa, toistetaan heittosarja $500$ kertaa ja lasketaa jokaisesta heittosarjasta $1$-toistosten lkm. $1$-toistosten lkm:t ovat tiedostossa {\tt toistoslkm.dat}. Muodosta tuloksista histogramma (suhteellisia frekvenssejä käyttäen). Edellisen tehtävän heittosarjoissa $1$-toistosten lkm:t olivat: $45, 27$ ja $46$ . Mikä onkaan se oikea heittosarja? Perustele. # tlkm<-toistosjak.1(200,500) tlkm<-read.table("C:\\kurssit\\Mtt\\Datat\\toistoslkm.dat") attach(tlkm); names(tlkm); hist(x) summary(tlkm) # Min. 1st Qu. Median Mean 3rd Qu. Max. # 13.00 22.00 25.00 25.03 28.00 39.00 toistokset.1(y1) #[1] 45 toistokset.1(y2) #[1] 27 toistokset.1(y3) # 46 # Simuloitu jakauma lähellä todellista. On erittäin epätodennäköistä, että jonot 1 ja 3 # olisi saatu "oikealla" rahanheitolla. ########## # Lasketaan toistuvasti 1-toistosten lukumääriä 200 heiton sarjoissa n<-200 toistokset.1(sample(c(0,1), n, replace = TRUE)) ########## hist(x) br<-seq(9.5,42.5,3) hist(x,br,freq=F) ##################### toistokset.1 <- function(x) # Syotteenä heittojono x; Palauttaa 1-toistosten lukumäärän { lkm <-0 if(x[1]==1 & x[2]==0) lkm <-lkm+1 for(i in 2:(length(x)-1)) { if(x[i-1]==0 & x[i]==1 & x[i+1]==0) lkm<-lkm+1 } if(x[length(x)]==1 & x[length(x)-1]==0) lkm<-lkm+1 return(lkm) } ##################### rahanheitto <- function(n) # Heitetään harhatonta rahaa n kertaa { x<-sample(c(0,1), n, replace = TRUE) return(x) } ########### toistosjak.1 <- function(n,nn) # Tuotetaan n:n pituisia sarjoja nn kertaa { y<-rep(0,nn) for(i in 1:nn) { y[i]<-toistokset.1(rahanheitto(n)) } return(y) } # Tutkitaan 1-toistosten jakaumaa ################################# y<-toistosjak.1(200,100) hist(y) max(y)