Tests unter Normalverteilung für zwei Stichroben#
Die im Folgenden behandelten Tests sind Parametertests. Hier gehen wir davon aus, dass zwei normalverteilte Merkmale vorliegen, also \(X\sim \mathrm{N} (\mu_1,\sigma_1^2)\) und \(Y\sim \mathrm{N} (\mu_2,\sigma_2^2)\). Unser statistischer Test bezieht sich auf den Vergleich der Parameter \(\mu_1\) und \(\mu_2\) oder \(\sigma_1^2\) und \(\sigma_2^2\). Beispielsweise möchten wir die Nullhypothese \(\mu_1 = \mu_2\) überprüfen, also dass beide Merkmale den gleichen Erwarungswert haben.
Bei der Durchführung der Tests halten wir uns and die bekannte Vorgehenweise. Im Folgenden geht es um die zugehörigen konkreten Hypothesen, Testgrößen, kritischen Bereiche und p-Werte.
Anwendungen: Mögliche Hypothesen, die so getestet werden können
In Ostdeutschland verdient ein Angestellter im Mittel weniger als in Westdeutschland.
Die Bildschirmzeit von 10 jährigen Jungs und Mädchen ist im Mittel gleich.
Die Abfüllmenge bei Kaffeeautomat 1 schwankt stärker als bei Kaffeeautomat 2.
Die Messgeräte A und B arbeiten mit gleicher Genauigkeit (d.h. ihre Messwert schwanken gleich stark).
Tests für die Erwartungswerte#
Seien \(X\sim \mathrm{N} (\mu_1,\sigma_1^2)\) und \(Y\sim \mathrm{N} (\mu_2,\sigma_2^2)\) normalverteilte Merkmale und \(X_1, \dots, X_{n_1}\) sowie \(Y_1,\dots,Y_{n_2}\) die zugehörigen Stichproben mit Stichprobenmittelwerten \(\bar{X}\) und \(\bar{Y}\) sowie Stichprobenvarianzen \(S_1^2\) und \(S_2^2\). Wir betrachten Hypothesen für die Parameter \(\mu_1\) und \(\mu_2\). Hier sehen wir, wie die Testgröße bestimmt wird.
Voraussetzung |
Testgröße \(T\) |
Verteilung von \(T\) |
…unter Bedingung |
Test |
---|---|---|---|---|
\(\sigma_1^2\), \(\sigma_2^2\) bekannt |
\(\frac{\bar{X} - \bar{Y}}{\sqrt{\frac{\sigma_1^2}{n_1}+\frac{\sigma_2^2}{n_2} }}\) |
\(\mathrm{N}(0,1)\) |
\(\mu_1 = \mu_2\) |
doppelter Gauß-Test |
\(\sigma_1^2=\sigma_2^2\) |
\(\frac{\bar X-\bar Y}{\sqrt{\frac{(n_1-1)S_1^2+(n_2-1)S_2^2}{n_1+n_2-2}\cdot \frac{n_1+n_2}{n_1n_2}}} \) |
\(t(n_1+n_2-2)\) |
\(\mu_1 = \mu_2\) |
doppelter \(t\)-Test |
Hierbei bezeichnet \(\mathrm{N}(0,1)\) die Standardnormalverteilung und \(t(n_1+n_2-2)\) die \(t\)-Verteilung mit \(n_1+n_2-2\) Freiheitsgraden.
Kritischer Bereich#
Der zugehörige kritische Bereich ist aus folgender Tabelle abzulesen. Er hängt von der Wahl der Hypothese und der Signifikanzniveau ab.
Test |
\(H_0\) |
\(H_1\) |
Kritischer Bereich \(K\) |
---|---|---|---|
doppelter Gauß-Test |
\(\mu_1 = \mu_2\) |
\(\mu_1 \ne \mu_2\) |
\((-\infty, -z_{1 - \frac{\alpha}{2}}) \cup (z_{1 - \frac{\alpha}{2}}, \infty)\) |
\(\mu_1 \le \mu_2\) |
\(\mu_1 > \mu_2\) |
\((z_{1 - \alpha}, \infty)\) |
|
\(\mu_1 \ge \mu_2\) |
\(\mu_1 < \mu_2\) |
\((-\infty, -z_{1 - \alpha})\) |
|
doppelter \(t\)-Test |
\(\mu_1 = \mu_2\) |
\(\mu_1 \ne \mu_2\) |
\((-\infty, -t_{n_1+n_2-2,1 - \frac{\alpha}{2}}) \cup (t_{n_1+n_2-2,1 - \frac{\alpha}{2}}, \infty)\) |
\(\mu_1 \le \mu_2\) |
\(\mu_1 > \mu_2\) |
\((t_{n_1+n_2-2,1 - \alpha}, \infty)\) |
|
\(\mu_1 \ge \mu_2\) |
\(\mu_1 < \mu_2\) |
\((-\infty, -t_{n_1+n_2-2,1 - \alpha})\) |
Hierbei ist
\(z_{1-\alpha}\) das \((1-\alpha)\)-Quantil der Standardnormalverteilung und
\(t_{n-1,1-\alpha}\) das \((1-\alpha)\)-Quantil der \(t\)-Verteilung mit \(n-1\) Freiheitsgraden.
p-Wert#
Anstelle des kritischen Bereichs können wir aus dem konkreten Testwert \(t\) auch den p-Wert berechnen. Wie dies funktioniert ist in folgender Tabelle zusammengefasst:
Test |
\(H_0\) |
\(H_1\) |
\(p\)-Wert |
R-Befehl |
---|---|---|---|---|
doppelter Gauß-Test |
\(\mu_1 = \mu_2\) |
\(\mu_1 \ne \mu_2\) |
\( 2 \cdot (1 - \Phi ( \vert t \vert ) ) \) |
|
\(\mu_1 \le \mu_2\) |
\(\mu_1 > \mu_2\) |
\(1 - \Phi(t)\) |
|
|
\(\mu_1 \ge \mu_2\) |
\(\mu_1 < \mu_2\) |
\(\Phi(t)\) |
|
|
doppelter \(t\)-Test |
\(\mu_1 = \mu_2\) |
\(\mu_1 \ne \mu_2\) |
\(2 \cdot (1 - F_{t(n_1+n_2-2)}(\vert t\vert ))\) |
|
\(\mu_1 \le \mu_2\) |
\(\mu_1 > \mu_2\) |
\(1 - F_{t(n_1+n_2-2)}(t)\) |
|
|
\(\mu_1 \ge \mu_2\) |
\(\mu_1 < \mu_2\) |
\(F_{t(n_1+n_2-2)}(t)\) |
|
Hierbei ist
\(\Phi(t)\) der Wert der Verteilungsfunktion der Standardnormalverteilung an der Stelle \(t\) und
\(F_{t(n-1)}(t)\) der Wert der Verteilungsfunktion der \(t\)-Verteilung mit \(n-1\) Freiheitsgraden an der Stelle \(t\)
\(t\) der konkrete Wert der Testgröße \(T\), welcher sich ergibt, wenn die gemessenen Stichprobenwerte eingesetzt werden
Tests für die Varianzen#
Seien \(X\sim \mathrm{N} (\mu_1,\sigma_1^2)\) und \(Y\sim \mathrm{N} (\mu_2,\sigma_2^2)\) normalverteilte Merkmale und \(X_1, \dots, X_{n_1}\) sowie \(Y_1,\dots,Y_{n_2}\) die zugehörigen Stichproben mit Stichprobenmittelwerten \(\bar{X}\) und \(\bar{Y}\) sowie Stichprobenvarianzen \(S_1^2\) und \(S_2^2\). Wir betrachten Hypothesen für die Parameter \(\sigma_1\) und \(\sigma_2\). Hier sehen wir, wie die Testgröße bestimmt wird. Zu beachten ist, dass keine spezielle Voraussetzung formuliert werden muss.
Testgröße \(T\) |
Verteilung von \(T\) |
…unter Bedingung |
Test |
---|---|---|---|
\(\frac{S_1^2}{S_2^2}\) |
\(F(n_1-1,n_2-1)\) |
\(\sigma_1^2 = \sigma_2^2\) |
\(F\)-Test |
Hierbei bezeichnet \(F(n_1-1,n_2-1)\) die \(F\)-Verteilung mit Freiheitgraden \(n_1-1\) und \(n_2-1\).
Kritischer Bereich#
Der zugehörige kritische Bereich für den hier beschriebenen \(F\)-Test ist aus folgender Tabelle abzulesen. Er hängt von der Wahl der Hypothese und des Signifikanzniveaus \(\alpha\) ab.
\(H_0\) |
\(H_1\) |
Kritischer Bereich \(K\) |
---|---|---|
\(\sigma_1^2 = \sigma_2^2\) |
\(\sigma_1^2 \ne \sigma_2^2\) |
\([0, F_{n_1-1,n_2-1,\frac{\alpha}{2}}) \cup (F_{n_1-1,n_2-1,1-\frac{\alpha}{2}}, \infty)\) |
\(\sigma_1^2 \le \sigma_2^2\) |
\(\sigma_1^2 > \sigma_2^2\) |
\((F_{n_1-1,n_2-1,1- \alpha}, \infty)\) |
\(\sigma_1^2 \ge \sigma_2^2\) |
\(\sigma_1^2 < \sigma_2^2\) |
\([0, F_{n_1-1,n_2-1,\alpha})\) |
Hierbei ist
\(F_{n_1-1,n_2-1,\alpha}\) das \(\alpha\)-Quantil der \(F\)-Verteilung mit \(n_1-1\) und \(n_2-1\) Freiheitsgraden.
p-Wert#
Anstelle des kritischen Bereichs können wir aus dem konkreten Testwert \(t\) auch den p-Wert berechnen. Wie dies funktioniert ist in folgender Tabelle zusammengefasst:
\(H_0\) |
\(H_1\) |
\(p\)-Wert |
R-Befehl |
---|---|---|---|
\(\sigma_1^2 = \sigma_2^2\) |
\(\sigma_1^2 \ne \sigma_2^2\) |
\(2 \cdot \min\left\{F_{F(n_1-1,n_2-1)}(t), 1-F_{F(n_1-1,n_2-1)}(t)\right\}\) |
|
\(\sigma_1^2 \le \sigma_2^2\) |
\(\sigma_1^2 > \sigma_2^2\) |
\(1-F_{F(n_1-1,n_2-1)}(t)\) |
|
\(\sigma_1^2 \ge \sigma_2^2\) |
\(\sigma_1^2 < \sigma_2^2\) |
\(F_{F(n_1-1,n_2-1)}(t)\) |
|
Hierbei ist
\(F_{F(n_1-1,n_2-1)}(t)\) die Verteilungsfunktion zur \(F\)-Verteilung mit \(n_1-1\) und \(n_2-1\) Freiheitsgraden an der Stelle \(t\)
\(t\) der konkrete Wert der Testgröße \(T\), welcher sich ergibt wenn die gemessenen Stichprobenwerte eingesetzt werden
Umsetzung in R#
Im Folgenden zeigen wir, wie sich die Tests in R praktisch durchführen lassen. Dabei unterscheiden wir zwischen Tests für den Vergleich der Erwartungswerte und Tests für den Vergleich der Varianzen.
Test für die Erwartungswerte#
Fall: \(\sigma_1^2\) und \(\sigma_2^2\) bekannt#
→ Verwende den doppelten Gauß-Test
Hier gibt es keine spezielle Funktion in R, so dass wir die Größen per Hand eingeben. Alternativ zeigen nutzen wir die Funktion Gauss.test
aus dem Paket compositions
.
# Beispiel: sigma1=0.9 und sigma2=0.8 (also bekannt)
# Teste H0: mu1 <= mu2 gegen H1: mu1 > mu2
# Variante 1: Berechnung der Größen per Hand
x <- c(12.1, 9.8, 10.5, 11.3, 12.9)
y <- c(11.5,10.1,9.0,10.4,10.3,9.5, 10.2,11.0)
cat("Mittelwert zu X: ",mean(x),"\n")
cat("Mittelwert zu Y: ",mean(y),"\n")
sd1 <- 0.9
sd2 <- 0.8
n1 <- length(x)
n2 <- length(y)
x_bar <- mean(x)
y_bar <- mean(y)
# Teststatistik
t <- (x_bar - y_bar) / sqrt( (sd1^2)/n1 + (sd2^2)/n2 )
# p-Wert für H1: mu > mu0
p_value <- 1 - pnorm(t)
cat("p-Wert= ",p_value,"\n")
# Variante 2: mit zusätzlichem Paket "compositions"
library(compositions)
Gauss.test(x,y, sd = c(0.9,0.8), alternative = "greater")
Mittelwert zu X: 11.32
Mittelwert zu Y: 10.25
p-Wert= 0.0148119
one sample Gauss-test
data: x
T = 1.07, mean = 0.0, sd1 = 0.9, sd2 = 0.8, p-value = 0.01481
alternative hypothesis: greater
Wir erkennen: p-Wert\(=0.01481\)
Fazit: Zum Signifikanzniveau \(\alpha=0.05\) wird die Hypothese \(\mu_1 \leq \mu_2\) hier verworfen. Auf Grundlage dieser Stichprobe gehen wir nach dem Test zum Signifikanzniveau \(0.05\) davon aus, dass der Erwartungswert zu \(Y\) größer ist als der zu \(X\).
Fall: Genaue Werte unbekannt, aber \(\sigma_1^2=\sigma_2^2\)#
→ Verwende den doppelten t-Test
Wieder zeigen wir die Berechnung per Hand und die Verwendung einer speziellen Funktion. Die Funktion t.test
ist standardmäßig in R verfügbar.
# Beispiel: Teste H0: mu1 = mu2 gegen H1: mu1 != mu2
# Voraussetzung: beide Varianzen sind gleich
x <- c(12.1, 8.1, 10.5, 11.3, 10.9, 13.3, 7.0) # Stichprobe 1
y <- c(14.2, 12.1, 8.3, 14.3, 12.0, 10.8) # Stichprobe 2
cat("Mittelwert zu X: ",mean(x),"\n")
cat("Mittelwert zu Y: ",mean(y),"\n")
x_bar <- mean(x)
y_bar <- mean(y)
sd1 <- sd(x)
sd2 <- sd(y)
sd1
sd2
# Variante 1: per Hand
n1 <- length(x)
n2 <- length(y)
a <- ((n1-1)*sd1^2 + (n2-1)*sd2^2)/ (n1+n2-2)
b <- (n1+n2)/(n1*n2)
t <- (x_bar - y_bar) / sqrt( a * b )
p_value <- 2 * (1 - pt(abs(t), df = n1+n2-2))
cat("p-Wert= ",p_value,"\n")
# Variante 2: mit Funktion t.test
tst<- t.test(x,y,var.equal = TRUE)
tst
Mittelwert zu X: 10.45714
Mittelwert zu Y: 11.95
p-Wert= 0.2531039
Two Sample t-test
data: x and y
t = -1.206, df = 11, p-value = 0.2531
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-4.217285 1.231571
sample estimates:
mean of x mean of y
10.45714 11.95000
Wir erkennen: p-Wert\(=0.2531\)
Fazit: Zum Signifikanzniveau \(\alpha=0.05\) wird die Hypothese \(\mu_1 = \mu_2\) hier verworfen.
Hinweis
Im Beispiel haben wir den Befehl
t.test(x,y,var.equal = TRUE)
genutzt. Setzen wir die Option var.equal
auf FALSE
oder lassen sie ganz weg t.test(x,y)
, so führt R einen sogenannten Welch-Test aus. Dieser testet die gleichen Hypothesen wie der t-Test, benötigt allerdings die Voraussetzung, dass die Varianzen gleich sein müssen, nicht. Er ist also universeller einsetzbar und daher die Standardoption im Befehl t.test(...)
.
Test für die Varianzen#
Hier haben wir nur einen Test, kennengelernt, den sogenannten F-Test. Wir ziegen wie man die größen „per Hand“ eingibt und wie man die Funktion var.test()
zur Berechnung nutzt.
# Beispiel: Teste H0: sigma_1^2 >= sigma-2^2 gegen H1: sigma_1^2 < sigma_2^2
x <- c(12.1, 9.8, 10.5, 11.3, 10.9)
y <- c(14, 12, 13, 11.2, 12.9, 15.4)
sd(x)
sd(y)
n1<- length(x)
n2<- length(y)
# Teststatistik
t <- var(x)/var(y)
# Variante 1
# p-Wert für H1: sigma^2 < sigma2_0
p_value <- pf(t,n1-1,n2-1)
p_value
# Variante 2
var.test(x,y,alternative = "less")
F test to compare two variances
data: x and y
F = 0.33825, num df = 4, denom df = 5, p-value = 0.1579
alternative hypothesis: true ratio of variances is less than 1
95 percent confidence interval:
0.000000 2.116089
sample estimates:
ratio of variances
0.3382465
Wir erkennen: p-Wert\(=0.1579\)
Fazit: Zum Signifikanzniveau \(\alpha=0.05\) wird die Hypothese \(\sigma_1^2 \geq \sigma_2^2\) hier nicht verworfen.
Anwendungsbeispiel#
Zwei Maschinen produzieren Teile mit einer bestimmten Länge. Tatsächlich sind die Teile aber alle nicht identisch lang, sondern zeigen kleine (normalverteilte) Schwankungen (Varianzen). Die Varianz der Längen der Teile einer Maschine ist also ein Maße für die Genauigkeit der Arbeit der Maschine. Es wird vermutet, dass die Schwankungen beider Maschinen unterschiedlich sind. Lässt sich dies mit einem Test zum Signifikanzniveau \(0.05\) zeigen?
Wir werden hierzu Daten (mit unterschiedlicher Varianz) simulieren und sehen ob der Test die richtige Entscheidung trifft.
set.seed(123)
# Daten von Maschine 1 (Varianz = 0.04)
x <- rnorm(20, mean = 4, sd = 0.2)
# Daten von Maschine 2 (Varianz = 0.09)
y <- rnorm(20, mean = 4, sd = 0.3)
# Stichprobenvarianzen
var_x <- var(x)
var_y <- var(y)
var_x
var_y
Wir nutzen die folgenden Bezeichnungen:
\(X\) … Länge eines Teils aus Maschine 1 in mm, \(\quad X\sim \mathrm{N}(\mu_1,\sigma_1^2)\)
\(Y\) … Länge eines Teils aus Maschine 2 in mm \(\quad Y\sim \mathrm{N}(\mu_2,\sigma_2^2)\)
Nun gehen wir in den typischen Schritten vor:
Signifikanzniveau: \(\alpha=0.05\)
Hypothesen:
\(H_0\): Die Varianzen sind gleich (\(\sigma_1^2 = \sigma_2^2\))
\(H_1\): Die Varianzen unterscheiden sich (\(\sigma_1^2 \ne \sigma_2^2\))
Testgröße:
\[ T = \frac{S_1^2}{S_2^2} \sim F(n_1-1,n_2-1) \qquad \text{falls }\quad \sigma_1^2 = \sigma_2^2 \]Konkreter Testwert:
t <- var(x)/var(y)
t
Variante 1: Kritischer Bereich:
\[ K=[0, F_{n_1-1,n_2-1,\frac{\alpha}{2}}) \cup (F_{n_1-1,n_2-1,1-\frac{\alpha}{2}}, \infty) = [0, F_{19,19,0.025}) \cup (F_{19,19,0.975}, \infty) = [0, 0.3958) \cup (2.52645 , \infty) \]Variante 2: p-Wert:
\[ \text{p-Wert}= 2\cdot \min\left\{F_{F(n_1-1,n_2-1)}(t), 1-F_{F(n_1-1,n_2-1)}(t)\right\} = 0.2908 \]
n1 <- 20
n2 <- 20
# Grenzen für den kritischen Bereich
qf(0.025,n1-1,n2-1)
qf(0.975,n1-1,n2-1)
# p-Wert
2 * min(pf(t,n1-1,n2-1), 1-pf(t,n1-1,n2-1))
Entscheidung:
Variante 1: \(t\notin K\quad \Rightarrow \quad H_0\) wird nicht verworfen
Variante 2: \(\text{p-Wert} \geq 0.05 = \alpha \quad \Rightarrow \quad H_0\) wird nicht verworfen
Interpretation:
Auf Grundlage der vorliegenden Stichprobe konnte mit einem Test zum Signifikanzniveau 0.05 nicht gezeigt werden, dass die beiden Varianzen unterschiedlich sind.