########### # Blatt 6 # ########### #aufgabe 2 # p_0=0.24 errechnet als Mittelwert der Trefferraten der anderen Teams # Trefferrate beobachtet fuer Nuernberg: 0.17 (H_0: p=0.24 sollte also # vielleicht abgelehnt werden; siehe unten) #a # Unter H_0 erwartet np_0=207*0.24=49.68 (daher 50) #symmetrischer Annahmebereich, so dass die Wahrscheinlichkeit zum ersten # Mal groesser-gleich 0.95 ist sum(dbinom(39:61, 207, 0.24)) # noch kleiner als 0.95 sum(dbinom(38:62, 207, 0.24)) # zum ersten Mal groesser-gleich #Wert fuer Nuernberg, 35, liegt ausserhalb des symmtr. Annahmebereichs # => Hypothese H_0 kann verworfen werden! #symmetrischer Annahmebereich, so dass die Wahrscheinlichkeit zum ersten # Mal groesser-gleich 0.99 ist sum(dbinom(35:65, 207, 0.24)) # noch kleiner als 0.99 sum(dbinom(34:66, 207, 0.24)) # zum ersten Mal groesser-gleich #Wert fuer Nuernberg, 35, liegt innerhalb des Annahmebereichs #(gerade so, auf der Grenze) #=> Hypothese kann nicht verworfen werden! #Ohne ausprobieren p<-vector(length = 50) # logischer Vektor der Laenge 50 for(i in 1:50){ p[i]<-sum(dbinom((50-i):(50+i), 207,0.24)) # symmtr. Intervall der Laenge 2i } #Annahmebereich # min(which()): kleinster Index mit Wahrscheinlichkeit >= 0.95 lb_095<-50 - min(which(p >= 0.95)) ub_095<-50 + min(which(p >= 0.95)) lb_095; ub_095 # obige Werte zurueck erhalten # Test, ob Wert fuer Nuernberg im Annahmebereich liegt lb_095 <= 35 && ub_095 >= 35 # Analog fuer Niveau 0.01 lb_099<-50 - min(which(p >= 0.99)) ub_099<-50 + min(which(p >= 0.99)) lb_099 <= 35 && ub_099 >= 35 #b # Exakter Binomialtest binom.test(35,207,0.24) # p-value: 0.01795 (default conf.level: 0.95) # 95 percent confidence interval: [0.1206874, 0.2272250] # fuer p binom.test(35,207,0.24, conf.level = 0.99) # 99 percent confidence interval: [0.1078676, 0.2460512] # fuer p (ist natuerlich breiter wie oben) #aufgabe 5 Tore<-rbinom(100, 190, 0.24) # 100 B(190, 0.24)-Realisationen p.wert<-vector(length =100) # logischer Vektor der Laenge 100 for(i in 1:100){ p.wert[i]<-binom.test(Tore[i], 190, 0.24)$p.value # p.value Komponente auswaehlen } # Zur Veranschaulichung: die Struktur eines binom.test()-Resultats # str(binom.test(Tore[1], 190, 0.24)) # binom.test(Tore[1], 190, 0.24)$p.value # H_0 ablehnen, falls p-Wert < 0.05 # Da H_0 hier gilt (Simulation), sind das Fehler 1.Art # Dieser sollte ja 5% sein sum(p.wert < 0.05) #100 mal wiederholen P.WERT<-matrix(ncol =100, nrow =100) # 100 Wiederholungen obiger Situation for(i in 1:100){ Tore<-rbinom(100,190,0.24) # jede Zeile eine Wiederholung obiger Situation for(j in 1:100){ # in die Spalten der Zeile i werden die Realisationen geschrieben P.WERT[i,j]<- binom.test(Tore[j], 190, 0.24)$p.value } } # H_0 ablehnen, falls p-Wert < 0.05 # Da H_0 hier gilt (Simulation), sind das Fehler 1.Art # Dieser sollte ja 5% sein sum(P.WERT < 0.05)/100 # ueber alle 100*100 Eintraege (Binomialtests) # Zeilenweise betrachtet: Fehler 1. Art in Prozent (bei 100 Binomialtest) resultat<-vector(length = 100) # logischer Vektor der Laenge 100 for(i in 1:100){ resultat[i]<-sum(P.WERT[i,] < 0.05) # i-te Zeile Fehler 1. Art (bei 100 Tests) } # Veranschaulichungen sort(resultat) # aufsteigend sortiert table(resultat) # Tabelle barplot(table(resultat), ylim = c(0,30)) # Saeulendiagramm (Barchart)