# Code von Franziska Wandtner, 2011, wandtner@math.uni-frankfurt.de ########################################################################## # Wir ziehen MIT Zurücklegen aus 10 roten und 20 blauen Kugeln 12 Mal. # Wie oft wird eine blaue Kugeln gezogen? # Das Ganze wird w Mal wiederholt. # Anschließend ziehen wir OHNE Zurücklegen aus 10 roten und 20 blauen Kugeln 16 Mal. # Wie oft wird eine blaue Kugeln gezogen? # Das Ganze wird w Mal wiederholt. # Schließlich vergleichen wir die Stabdiagramme der Ziehungen mit und ohne Zurücklegen. ########################################################################## rm(list=ls()) ############################ # Anzahl der Wiederholungen w<-10000 ########################################################################### # Graphikparameter werden gesetzt # Für Windows windows(width=9, height=6) par(cex.main=1.3,cex.axis=1.0,cex.lab=1.0) par(font.main=1,mar=c(2,2,5,2)) ########################################################################### plot(c(0,31),c(0,10),type="n",main="Ziehe 16 Kugeln mit Zurücklegen",ylab="",xlab="",axes=F) points(c(1:10),rep(8,10),cex=3,col="red",pch=16) points(c(11:30),rep(8,20),cex=3,col="blue",pch=16) readline("Greife 16 Kugeln mit Zurücklegen raus") s<-sample(30,16,replace=T) for(i in 1:30) { points(c(1:10),rep(8,10),cex=3,col="red",pch=16) points(c(11:30),rep(8,20),cex=3,col="blue",pch=16) } sn<-as.data.frame(table(s)) st<-as.matrix(sn) b1<-0 freq<-0 help<-0 ll<-length(st)/2 for(i in 1:16) { if(s[i]<=10) { points(s[i],5,cex=3,col="red",pch=16) points(s[i],8,cex=3,col="white",pch=16) } else { points(s[i],5,cex=3,col="blue",pch=16) points(s[i],8,cex=3,col="white",pch=16) b1<-b1+1 } arrows(s[i]-0.2,7.5,s[i]-0.2,5.4,length=0.1) arrows(s[i]+0.2,5.4,s[i]+0.2,7.5,length=0.1) for(j in 1:ll) { help<-as.numeric(st[j,1]) if(s[i]==help){freq<-as.numeric(st[j,2])} } text(s[i],4,paste(freq)) } text(15,2,paste("Anzahl blaue Kugeln:",b1),cex=1.2,font=2) ########################################################################### # Wiederhole w Mal readline("Wiederhole w Mal") par(font.main=1,mar=c(5,5,5,5)) smatrix<-matrix(rep(0,w*16),nrow=w) b<-rep(0,w) for(i in 1:w) { smatrix[i,]<-sample(30,16,replace=T) for(j in 1:16) { if(smatrix[i,j]>10){b[i]<-b[i]+1}} } breaks<-seq(0,16,by=0.1) hist(b,breaks=breaks,axes=F,xlab="Ziehen mit Zurücklegen: Anzahl blaue Kugeln",ylab="Häufigkeit",freq=T,main=paste("Anzahl blaue Kugeln (",w, "Wiederholungen)"),col="black") axis(2) axis(1,at=c(-0.05,0.95,1.95,2.95,3.95,4.95,5.95,6.95,7.95,8.95,9.95,10.95,11.95,12.95,13.95,14.95,15.95),labels=c("0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16")) ############## readline("ohne Zurücklegen") plot(c(0,31),c(0,10),type="n",main="Ziehe 16 Kugeln ohne Zurücklegen",ylab="",xlab="",axes=F) points(c(1:10),rep(8,10),cex=3,col="red",pch=16) points(c(11:30),rep(8,20),cex=3,col="blue",pch=16) readline("Greife 16 Kugeln ohne Zurücklegen raus") s<-sample(30,16,replace=F) for(i in 1:30) { points(c(1:10),rep(8,10),cex=3,col="red",pch=16) points(c(11:30),rep(8,20),cex=3,col="blue",pch=16) } b2<-0 for(i in 1:16) { if(s[i]<=10) { points(s[i],5,cex=3,col="red",pch=16) points(s[i],8,cex=3,col="white",pch=16) } else { points(s[i],5,cex=3,col="blue",pch=16) points(s[i],8,cex=3,col="white",pch=16) b2<-b2+1 } } for(i in 1:16) { arrows(s[i],7.5,s[i],5.4,length=0.1) } text(15,3,paste("Anzahl blaue Kugeln:",b2),cex=1.2,font=2) ########################################################################### # Wiederhole w Mal readline("Wiederhole w Mal") par(font.main=1,mar=c(5,5,5,5)) smatrix<-matrix(rep(0,w*16),nrow=w) b2<-rep(0,w) for(i in 1:w) { smatrix[i,]<-sample(30,16,replace=F) for(j in 1:16) { if(smatrix[i,j]>10){b2[i]<-b2[i]+1}} } breaks<-seq(0,16,by=0.1) hist(b2,breaks=breaks,axes=F,xlab="Ziehen ohne Zurücklegen: Anzahl blaue Kugeln",ylab="Häufigkeit",freq=T,main=paste("Anzahl blaue Kugeln (",w, "Wiederholungen)"),col="black",add=F) axis(2) axis(1,at=c(-0.05,0.95,1.95,2.95,3.95,4.95,5.95,6.95,7.95,8.95,9.95,10.95,11.95,12.95,13.95,14.95,15.95),labels=c("0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16")) readline("Vergleich") windows(width=11, height=6) par(mfrow=c(1,2)) #Binomialverteilung #Erwartungswert np = 16*2/3=10.66667 Varianz: npq=16*2/3*1/3= 3.555556 hist(b,breaks=breaks,axes=F,xlab="Anzahl blaue Kugeln",ylab="Häufigkeit",freq=T,main=paste("Ziehen MIT Zurücklegen: Anzahl blaue Kugeln (",w, "Wiederholungen)"),col="black",cex.main=0.8) axis(2) axis(1,at=c(-0.05,1.95,3.95,5.95,7.95,9.95,11.95,13.95,15.95),labels=c("0","2","4","6","8","10","12","14","16")) abline(v=10.66667-sqrt(3.555556),col="red",lwd=2) #MW-1sigma abline(v=10.66667+sqrt(3.555556),col="red",lwd=2) #mW+1sigma points(10.66667,0,col="red",pch=16,cex=1.5) text(2.5,w/10,"MW +/- 1 sigma",col="red",cex=0.8) #hypergeometrische Verteilung #Erwartungswert n*N/M=16*20/30=10.66667, Varianz: n*M/N+(1-M/N)*(N-n)/(N-1)=16*20/30*(1-20/30)*(30-16)/(30-1)=1.716475 hist(b2,breaks=breaks,axes=F,xlab="Anzahl blaue Kugeln",ylab="Häufigkeit",freq=T,main=paste("Ziehen OHNE Zurücklegen: Anzahl blaue Kugeln (",w, "Wiederholungen)"),col="black",add=F,cex.main=0.8) axis(2) axis(1,at=c(-0.05,1.95,3.95,5.95,7.95,9.95,11.95,13.95,15.95),labels=c("0","2","4","6","8","10","12","14","16")) abline(v=10.66667-sqrt(1.716475),col="red",lwd=2) abline(v=10.66667+sqrt(1.716475),col="red",lwd=2) points(10.66667,0,col="red",pch=16,cex=1.5) text(2.5,w/10,"MW +/- 1 sigma",col="red",cex=0.8) ########################################################################### #Ende readline("Ende") graphics.off()