# Code von Franziska Wandtner, 2011, wandtner@math.uni-frankfurt.de ########################################################################## # Wir haben 10 rote und 20 blaue Kugeln. Die ursprüngliche Rangsumme ist... #Nun ziehen wir 10000 Mal OHNE Zurücklgen 10 Kugeln und berechnen die Rangsummen. # Als nächstes notieren wir, wieviele der 10000 Rangsummen kleiner oder gleich der ursprünglich beobachteten sind. #Ist die Anzahl a, dann ergibt sich der "stochastische" p-Wert  a/10000, mit der die Hypothese "Die 10 roten Kugeln wurden rein zufällig auf die 30 Plätze verteilt" gegen die Alternative "Tendenz gegen links oder rechts" abgelehnt werden kann. ########################################################################## rm(list=ls()) ############################ # Anzahl der Stichproben w<-9999 ########################################################################### # Graphikparameter werden gesetzt # Für Mac quartz(width=9.5, 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)) ########################################################################### # Ursprüngliche Beobachtung: plot(c(0,31),c(0,10),type="n",main="Die Raenge der x_i und der y_j",ylab="",xlab="",axes=F) s<-sample(30,10,replace=F) s<-sort(s) points(c(1:3),rep(9,3),cex=3,col="red",pch=16) points(4,9,cex=3,col="blue",pch=16) points(c(5,6),c(9,9),cex=3,col="red",pch=16) points(c(7,8,9,10),c(9,9,9,9),cex=3,col="blue",pch=16) points(c(11,12,13),c(9,9,9),cex=3,col="red",pch=16) points(c(14:20),rep(9,7),cex=3,col="blue",pch=16) points(21,9,cex=3,col="red",pch=16) points(c(22:29),rep(9,8),cex=3,col="blue",pch=16) points(30,9,cex=3,col="red",pch=16) for(i in 1:30) { text(i,9.5,i) } readline("Rangsumme") vgl<-104 text(15,7.5,"Rangsumme der x_i = 104",col="red") abline(h=5.5) readline("Permutation") s<-sample(30,10,replace=F) for(i in 1:30) { points(i,2,cex=3,col="blue",pch=16) } for(i in 1:30) { points(s[i],2,cex=3,col="red",pch=16) } text(4,4.5,"Eine zufaellige Permutation",font=2,cex=1.2) for(i in 1:30) { text(i,2.5,i) } text(15,0.5,paste("Rangsumme der x_i in der Permutation = ",sum(s))) ########################################################################### # Wiederhole w Mal readline("Wiederhole w Mal") par(mar=c(5,5,5,5)) smatrix<-matrix(rep(0,w*10),nrow=w) rangsummen<-rep(0,w+1) for(i in 1:w) { smatrix[i,]<-sample(30,10,replace=F) rangsummen[i]<-sum(smatrix[i,]) } rangsummen[w+1]<-vgl breaks<-seq(0,max(rangsummen),by=0.1) hist(rangsummen,breaks=breaks,axes=F,xlab="Rangsummen",ylim=c(0,200),ylab="Häufigkeit",freq=T,main=paste("Rangsummen aus", w+1, "Permutationen"),col="black",add=F) axis(2) axis(1,at=(c(50:300)-0.05)*10,labels=F) axis(1,at=(c(50,100,150,200,250,300)-0.05),labels=c("50","100","150","200","250","300")) ##### # stochastischer p-Wert (zweiseitig) # min Rangsumme= sum(1:10)=55 # beobachtet: 55+49=104 # max Rangsumme= sum(21:30)=255 a<-0 for(i in 1:w) { if(rangsummen[i]<=104){a<-a+1} if(rangsummen[i]>=255-49){a<-a+1} } readline("ursprüngliche Rangsumme") arrows(50,120,vgl,0,col="red",lwd=2) text(35,130,"ursprüngliche Rangsumme: 104",col="red") readline("stochastischer p-Wert") text(35,200,paste("Stochastischer p-Wert=",round(a/w,4)),font=2) ########################################################################### #Ende readline("Ende") graphics.off()