14.3 Das Einstichprobenproblem in R

Werbung
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
Herunterladen