14.3. DAS EINSTICHPROBENPROBLEM IN R 343 0.553 0.570 0.576 0.601 0.606 0.606 0.609 0.611 0.615 0.628 0.654 0.662 0.668 0.670 0.672 0.690 0.693 0.749 0.844 0.933 die absoluten Häufikeiten ni der Klassen. Es gilt n1 = 3, n2 = 8, n3 = 6 und n4 = 3. Auf Grund der Wahl der Klassen gilt ñi = 5 für i = 1, 2, 3, 4. Somit gilt X2 = (3 − 5)2 (8 − 5)2 (6 − 5)2 (3 − 5)2 + + + = 3.6 5 5 5 5 Die Anzahl der Freiheitsgrade ist 4 − 1 − 2 = 1, da wir 2 Parameter geschätzt haben. Wegen χ21;0.95 = 3.84 lehnen wir H0 zum Niveau α = 0.05 nicht ab. 14.3 Das Einstichprobenproblem in R In R können wir alle Tests durchführen, die wir in diesem Kapitel kennengelernt haben. Schauen wir uns zunächst die Tests auf einen Lageparameter an. Wir betrachten die Daten der Schoschonen im Beispiel 113 auf Seite 322 und die Daten aus Ebay im Beispiel 114 auf Seite 322. Wir weisen die Daten der Schoschonen der Variablen shosho zu: > shosho<-c(0.693,0.662,0.690,0.606,0.570,0.749,0.672,0.628) > shosho<-c(shosho,0.609,0.844,0.654,0.615,0.668,0.601) > shosho<-c(shosho,0.576,0.670,0.606,0.611,0.553,0.933) Wir geben die Daten am Rechner natürlich in einer Zeile ein. Das Papier ist aber leider nicht breit genug, sodass die Eingabe zerlegt wird. Die Daten aus Ebay weisen wir der Variablen ebay zu: > ebay<-c(51,56,57,48,45,61,46,53,59) Mit der Funktion t.test kann man einen t-Test durchführen. Sie wird folgendermaßen aufgerufen: t.test(x,y=NULL,alternative=c("two.sided","less", "greater"), mu=0,paired=FALSE,var.equal=FALSE,conf.level = 0.95,...) Die Argumente y, paired und var.equal sind im Zweistichprobenproblem relevant. Mit diesem beschäftigen wir uns aber erst im nächsten Kapitel. Das Argument x enthält den Datensatz und muss beim Funktionsaufruf angegeben werden. Im Argument alternative gibt man an, wie die Gegenhypothese formuliert ist. Dabei steht "two.sided" für =, "less" für < und 344 KAPITEL 14. DAS EINSTICHPROBENPROBLEM "greater" für >. Standardmäßig wird ein zweiseitiger Test durchgeführt. Die Funktion t.test erstellt auch ein Konfidenzintervall für µ. Mit dem Argument conf.level kann man das Konfidenzniveau festlegen. Standardmäßig wird ein Konfidenzintervall für µ bei Normalverteilung mit unbekannter Varianz σ 2 zum Konfidenzniveau 0.95 aufgestellt. Wir rufen die Funktion t.test mit der Variablen shosho auf. Außerdem müssen wir dem Argument mu den Wert 0.618 zuweisen. > t.test(x=shosho,mu=0.618) One Sample t-test data: shosho t = 2.0545, df = 19, p-value = 0.05394 alternative hypothesis: true mean is not equal to 0.618 95 percent confidence interval: 0.6172036 0.7037964 sample estimates: mean of x 0.6605 Wir erhalten den Wert der Teststatistik t=2.0545, die Anzahl der Freiheitsgrade df=19 und noch die Überschreitungswahrscheinlichkeit p-value = 0.05494. Außerdem wird noch das Konfidenzintervall [0.6172036, 0.7037964] für µ zum Konfidenzniveau 0.95 und x̄ = 0.6605 ausgegeben. Führen wir noch den einseitigen Test für die Daten aus Ebay durch. > t.test(ebay,mu=50,alternative="greater") One Sample t-test data: ebay t = 1.5005, df = 8, p-value = 0.08594 alternative hypothesis: true mean is greater than 50 95 percent confidence interval: 49.3087 Inf sample estimates: mean of x 52.88889 Der Vorzeichentest ist ein spezieller Test auf p. Einen Test auf p kann man in R mit der Funktion binom.test durchführen. Sie wird folgendermaßen aufgerufen: 14.3. DAS EINSTICHPROBENPROBLEM IN R 345 binom.test(x,n,p=0.5,alternative=c("two.sided","less", "greater"),conf.level=0.95) Dabei ist x der Wert der Teststatistik, n der Stichprobenumfang und p der hypothetischen Wert p0 . Dieser ist standardmäßig 0.5. Außerdem kann man wie beim t-Test die Alternativhypothese mit dem Parameter alternative spezifizieren. Es wird auch ein Konfidenzintervall für p aufgestellt. Das Konfidenzniveau übergibt man im Parameter conf.level. Es ist standardmäßig 0.95. Im Beispiel 112 auf Seite 317 sollte überprüft werden, ob der Wähleranteil einer Partei mehr als 0.4 beträgt. Von 10 befragten Personen würden 8 die Partei wählen. Es gilt also x=8, n=10, p=0.4 und alternative="greater". Wir geben also ein > binom.test(8,10,0.4,alternative="greater") und erhalten folgendes Ergebnis Exact binomial test data: 8 and 10 number of successes = 8, number of trials = 10, p-value = 0.01229 alternative hypothesis: true probability of success is greater than 0.4 95 percent confidence interval: 0.4930987 1.0000000 sample estimates: probability of success 0.8 Die Überschreitungswahrscheinlichkeit ist 0.0129. Wir können die Funktion binom.test auch für den Vorzeichentest verwenden. Beginnen wir mit den Daten der Schoschonen. Wir wollen überprüfen, ob der Median gleich 0.618 ist. Wir zählen, wieviele Beobachtungen größer also 0.618 sind. > S<-sum(shosho>0.618) > S [1] 11 und rufen mit diesem Wert die Funktion binom.test auf, wobei n gleich der Länge von shosho und p gleich 0.5 ist. Da der Parameter p standardmäßig auf 0.5 steht, müssen wir ihn beim Aufruf der Funktion nicht eingeben. KAPITEL 14. DAS EINSTICHPROBENPROBLEM 346 > binom.test(S,length(shosho)) Exact binomial test data: S and length(shosho) number of successes = 11, number of trials = 20, p-value = 0.8238 alternative hypothesis: true probability of success is not equal to 0.5 95 percent confidence interval: 0.3152781 0.7694221 sample estimates: probability of success 0.55 Die Überschreitungswahrscheinlichkeit ist 0.8238. Schauen wir uns noch die Daten aus Ebay an. Wir bestimmen den Wert der Teststatistik > S<-sum(ebay>50) > S [1] 6 und rufen die Funktion binom.test auf > binom.test(S,length(ebay),alternative="greater") Exact binomial test data: S and length(ebay) number of successes = 6, number of trials = 9, p-value = 0.2539 alternative hypothesis: true probability of success is greater than 0.5 95 percent confidence interval: 0.3449414 1.0000000 sample estimates: probability of success 0.6666667 Um den konditionalen Vorzeichentest auf M = 51 im Beispiel 114 auf Seite 330 durchführen zu können, müssen wir den Wert 51 aus der Stichprobe entfernen. 14.3. DAS EINSTICHPROBENPROBLEM IN R 347 > ebayneu<-ebay[ebay!=51] > ebayneu [1] 56 57 48 45 61 46 53 59 Es folgt die übliche Vorgehensqweise. > S<-sum(ebayneu>51) > S [1] 5 > binom.test(S,length(ebayneu),alternative="greater") Exact binomial test data: S and length(ebayneu) number of successes = 5, number of trials = 8, p-value = 0.3633 alternative hypothesis: true probability of success is greater than 0.5 95 percent confidence interval: 0.2892408 1.0000000 sample estimates: probability of success 0.625 Mit der Funktion wilcox.test kann man einen Wilcoxon-Vorzeichen-Rangtest durchführen. Sie wird folgendermaßen aufgerufen: wilcox.test(x,y=NULL,alternative=c("two.sided","less", "greater"),mu=0,paired=FALSE,exact=NULL, correct=TRUE,conf.int=FALSE, conf.level=0.95,...) Die Argumente y und paired sind im Zweistichprobenproblem relevant. Das Argument x enthält den Datensatz und muss beim Funktionsaufruf angegeben werden. Im Argument alternative gibt man an, wie die Gegenhypothese formuliert ist. Dabei steht "two.sided" für =, "less" für < und "greater" für >. Standardmäßig wird ein zweiseitiger Test durchgeführt. Mit der Funktion wilcox.test kann man auch ein Konfidenzintervall für den Median aufstellen. Hierzu muss man das Argument conf.int auf TRUE setzen. Mit dem Argument conf.level kann man das Konfidenzniveau festlegen. Standardmäßig wird ein Konfidenzintervall zum Konfidenzniveau 0.95 aufgestellt. Wird das Argument exact auf FALSE gesetzt, so wird nicht die 348 KAPITEL 14. DAS EINSTICHPROBENPROBLEM exakte Verteilung von W + unter H0 bestimmt. Wird das Argument correct auf TRUE gesetzt, so wird mit der Stetigkeitskorrektur gearbeitet. Wir beginnen mit den Daten aus Ebay, die in ebay stehen. > wilcox.test(ebay,mu=50,alternative="greater") Wilcoxon signed rank test data: ebay V = 34, p-value = 0.1016 alternative hypothesis: true mu is greater than 50 Der Wert von W + steht in der Variablen V. Die Überschreitungswahrscheinlichkeit ist 0.1016. Schauen wir uns noch die Daten mit Bindungen im Beispiel 116 auf Seite 334 an. Wir geben sie ein > ebay03<-c(51,64,36,31,31,30,44,44,51,31) und führen den Test durch > wilcox.test(ebay03,mu=50,alternative="greater") Wilcoxon signed rank test with continuity correction data: ebay03 V = 8.5, p-value = 0.977 alternative hypothesis: true mu is greater than 50 Warning message: Cannot compute exact p-value with ties in: wilcox.test.default(ebay03, mu = 50, Der Wert von W + steht in der Variablen V. Die Überschreitungswahrscheinlichkeit ist 0.977. R weist uns darauf hin, dass nicht die exakte Verteilung benutzt wurde, da Bindungen (ties) vorliegen. Den Chiquadrattest führt man in R mit der Funktion chisq.test durch. Die Argumente der Funktion chisq.test sind die beobachteten und erwarteten Häufigkeiten. Wir müssen die Daten also entsprechend aufbereiten. Beginnen wir mit dem Beispiel 117 auf Seite 338. Wir geben die Daten ein: > wuerfel<-c(5,5,6,3,4,5,1,1,4,5,1,3,1,3,5,4) > wuerfel<-c(wuerfel,6,6,4,1,4,3,5,6,5,2,1,5,2,4) 14.3. DAS EINSTICHPROBENPROBLEM IN R 349 Wir erzeugen die absoluten Häufigkeiten ni mit der Funktion table: > ni<-table(wuerfel) > ni wuerfel 1 2 3 4 5 6 6 2 4 6 8 4 Die erwartete Häufigkeit jeder Merkmalsausprägung ist 5. > chisq.test(ni) Chi-squared test for given probabilities data: ni X-squared = 4.4, df = 5, p-value = 0.4934 Um die Daten der Schoschonen auf Normalverteilung zu testen, gehen, wir folgendermaßen vor. Wir bestimmen zunächst die Grenzen der Klassen. Wir benötigen z0.25 , z0.5 , z0.75 . Diese erhalten wir durch > z<-qnorm(c(0.25,0.5,0.75)) > z [1] -0.6744898 0.0000000 0.6744898 Die Klassengrenzen sind: > breaks<-mean(shosho)+z*sd(shosho) > breaks [1] 0.5981024 0.6605000 0.7228976 Wir erweitern diese noch um die Untergrenze der ersten Klasse und die Obergrenze der letzten Klasse. Als Untergrenze der ersten ersten Klasse wählen wir min{x1 , . . . , xn }. Als Untergrenze der ersten ersten Klasse wählen wir max{x1 , . . . , xn } + 0.00001. Da die Klassen links abgeschlossen und rechts offen sind, ist hierdurch sichergestellt, dass alle beobachtungen einer Klasse zugeordnet werden. > breaks<-c(min(shosho),breaks,max(shosho)+0.00001) > breaks [1] 0.5530000 0.5981024 0.6605000 0.7228976 0.9330100 Wir erhalten 4 Klassen und können mit der Funktion cut bestimmen, in welche Klassen die Beobachtungen fallen. 350 KAPITEL 14. DAS EINSTICHPROBENPROBLEM > k<-cut(shosho,breaks,labels=1:4,right=FALSE) > k [1] 3 3 3 2 1 4 3 2 2 4 2 2 3 2 1 3 2 2 1 4 Levels: 1 2 3 4 Die beobachteten Häufigkeiten erhalten wir durch > ni<-table(k) > ni k 1 2 3 4 3 8 6 3 Die erwarteten Häufigkeiten sind > nis<-rep(5,4) > nis [1] 5 5 5 5 Der Wert von X 2 ist > x2<-sum(((ni-nis)^2)/nis) > x2 [1] 3.6 Die Anzahl der Freiheitsgrade ist 1. Somit ist die Überschreitungswahrscheinlichkeit gleich > 1-pchisq(x2,1) [1] 0.05777957