05-Klassische Tests

Angewandte Statistik – Ein Praxiskurs

Thomas Petzoldt

2025-09-29

Hypothesen, Fehler und der p-Wert

Statistische Tests


Ein statistischer Test hilft zu entscheiden, ob eine Hypothese wahrscheinlich richtig ist oder nicht, basierend auf vorliegenden Daten.

  • Beispiel: Wir vergleichen zwei Stichproben oder eine Stichprobe mit einem statistischen Modell.
  • Dazu stellen zwei Hypothesen auf:
    • Alternativhypothese (\(H_a\)): Das ist unsere eigentliche Hypothese, dass es einen Unterschied oder eine Beziehung gibt.
    • Nullhypothese (\(H_0\)): Wir nehmen an, dass es keinen Unterschied oder keine Beziehung gibt und testen, ob wir diese Hypothese ablehnen können.
  • Statistisch signifikant bedeutet: Die Wahrscheinlichkeit, dass wir unsere Beobachtung nur durch puren Zufall gemacht haben, ist sehr gering. Wenn das so ist, sagen wir, dass unser Ergebnis signifikant ist und \(H_a\) unterstützt wird.

siehe dazu auch: https://de.wikipedia.org/wiki/Statistischer_Test

Effektstärke und Signifikanz


Für Mittelwertdifferenzen ist die relative Effektstärke:

\[ \delta = \frac{\bar{\mu}_1-\bar{\mu}_2}{\sigma}=\frac{\Delta}{\sigma} \]

mit:

  • Mittelwerte von zwei Grundgesamtheiten \(\mu_1, \mu_2\)
  • absolute Effektstärke \(\Delta\)
  • relative Effektstärke \(\delta\) (auch Cohen’s d genannt)
  • Signifikanz bedeutet, dass es unwahrscheinlich ist, dass ein beobachteter Effekt das Ergebnis einer reinen Zufallsvariation ist.

Nullhypothese und Alternativhypothese


\(H_0\) Nullhypothese: Zwei Grundgesamtheiten unterscheiden sich nicht in Bezug auf eine bestimmte Eigenschaft.

  • Annahme: Der beobachtete Effekt ist rein zufällig entstanden, der wahre Effekt ist Null.

\(H_a\) Alternativhypothese (Versuchshypothese): Vorhandensein eines bestimmten Effekts.

  • Eine Alternativhypothese ist nie vollständig wahr oder „bewiesen“.
  • Die Annahme von \(H_A\) bedeutet nur, dass \(H_0\) unwahrscheinlich ist.

„Nicht signifikant“ bedeutet entweder kein Effekt oder Stichprobengröße zu klein!


Anmerkung: Unterschiedliche Bedeutung von Signifikanz (\(H_0\) unwahrscheinlich) und Relevanz (Effekt groß genug, um in der Praxis eine Rolle zu spielen).

Der p-Wert


Die Interpretation des p-Wertes war in der Vergangenheit oft verwirrend, selbst in Statistik-Lehrbüchern, so dass es gut ist, sich auf eine klare Definition zu beziehen:

Der p-Wert ist definiert als die Wahrscheinlichkeit, ein Ergebnis zu erhalten, das gleich oder „extremer“ ist als das, was tatsächlich beobachtet wurde, wenn die Nullhypothese wahr ist.


Alpha- und Beta-Fehler

Realität Entscheidung des Tests Richtig? Wahrscheinlichkeit
\(H_0\) = wahr signifikant nein \(\alpha\)-Fehler
\(H_0\) = falsch nicht signifikant nein \(\beta\)-Fehler
\(H_0\) = wahr nicht signifikant ja \(1-\alpha\)
\(H_0\) = falsch signifikant ja \(1-\beta\) (Trennschärfe)

1.\(H_0\) fälschlicherweise abgelehnt (Fehler erster Art oder \(\alpha\)-Fehler)

  • es wird ein Effekt behauptet, den es nicht gibt, z.B. ein Medikament, das keine Wirkung hat

2.\(H_0\) fälschlicherweise beibehalten (Fehler zweiter Art oder \(\beta\)-Fehler)

  • typischer Fall in kleinen Studien, bei denen die Wirkung nicht ausreicht, um vorhandene Effekte zu erkennen

Verwendung in der Praxis

  • übliche Konvention in den Umweltwissenschaften: \(\alpha=0.05\), muss vorher festgelegt werden
  • \(\beta=f(\alpha, \text{Effektstärke}, \text{Stichprobengröße}, \text{Art des Tests})\), sollte \(\le 0,2\) sein

Signifikanz und Relevanz


Die Signifikanz ist nicht das einzig Wichtige. Achte auch auf Effektstärke und Relevanz!

  • Statistische Signifikanz bedeutet, dass die Nullhypothese \(H_0\) im statistischen Sinne unwahrscheinlich ist.

  • Praktische Relevanz (manchmal auch „praktische Signifikanz“ genannt) bedeutet, dass die Effektstärke groß genug ist, um in der Praxis eine Rolle zu spielen.

Ob ein Effekt relevant sein kann oder nicht, hängt also von seiner Effektstärke und dem Anwendungsbereich ab.

Betrachten wir zum Beispiel eine Impfung. Wenn ein Impfstoff in einem klinischen Test eine signifikante Wirkung hat, aber nur 10 von 1000 Menschen schützt, würde man diesen Effekt nicht als relevant ansehen und diesen Impfstoff nicht herstellen.

Andererseits können auch kleine Wirkungen von Bedeutung sein. Wenn also eine toxische Substanz bei 1 von 1000 Personen Krebs auslösen würde, würden wir das als relevant betrachten. Um es auch als signifikant zu erkennen, ist eine epidemiologische Studie mit einer großen Anzahl von Menschen erforderlich. Da es sich aber um eine hochrelevante Wirkung handelt, lohnt sich der Aufwand.

Take home messages

  • Ein p-Wert misst die Wahrscheinlichkeit, dass ein rein zufälliger Effekt gleich groß oder größer ist als ein beobachteter Effekt, wenn die Nullhypothese wahr ist.

  • Signifikant bedeutet, dass die Ergebnisse unwahrscheinlich sind, wenn es keinen echten Effekt gäbe.

  • Nicht signifikant bedeutet nicht „kein Effekt“.

  • Nicht signifikante Ergebnisse deuten auf die Notwendigkeit weiterer Untersuchungen hin, z. B.:

    • Vergrößerung der Stichprobe
    • Erhöhung des experimentellen Effekts
    • Reduzierung des experimentellen Fehlers
    • Wahl eines leistungsfähigeren statistischen Verfahrens
  • Wichtig: Konzentriere Dich nicht nur auf p-Werte und Signifikanz!

  • Vergiss nie, Stichprobengröße, Effektstärke und Relevanz anzugeben.

  • Bei großen Datensätzen:

    • Statistisch signifikante Ergebnisse können leicht auch für sehr kleine und praktisch irrelevante Effekte erzielt werden.
    • \(\rightarrow\) Effektstärke und Relevanz werden wichtiger als p-Werte.

Der p-Wert ist nach wie vor ein wichtiges Instrument der Statistik, aber ein falscher Gebrauch kann zu Fehlinterpretationen führen.

Differenzen zwischen Mittelwerten

Einstichproben-t-Test


  • prüft, ob eine Stichprobe aus einer Grundgesamtheit mit gegebenem Mittelwert \(\mu\) stammt
  • basiert auf der Prüfung, ob der Mittelwert der Grundgesamtheit \(\mu\) im Konfidenzintervall von \(\bar{x}\) liegt
  1. Angenommen, wir haben eine Stichprobe mit dem Umfang \(n=10, \bar{x}=5.5, s=1\) und \(\mu=5\).
  2. Nun schätzen wir das 95%-Konfidenzintervall von \(\bar{x}\):

\[ CI = \bar{x} \pm t_{1-\alpha/2, n-1} \cdot s_{\bar{x}} \] mit \[ s_{\bar{x}} = \frac{s}{\sqrt{n}} \qquad \text{(Standardfehler)} \]

Auf den folgenden Folien werden unterschiedliche Berechnungsmethoden vorgestellt.

Zur Erinnerung: Standardabweichung und Standardfehler

Visualisierung eines Einstichproben-t-Test. Links: ursprüngliche Verteilung der Daten, gemessen an der Standardabweichung, rechts: Verteilung der Mittelwerte, gemessen an ihrem Standardfehler.

\[ s_{\bar{x}} = \frac{s}{\sqrt{n}} \qquad \text{(Standardfehler)} \]

  • Standardfehler < Standardabweichung
  • misst die Genauigkeit des Mittelwerts
  • ZGWS!

Wichtig: Der Test arbeitet mit der Verteilung der Mittelwerte, nicht mit der Verteilung der ursprünglichen Daten.

Methode 1: Liegt \(\mu\) im Konfidenzintervall?


  1. Stichprobe: \(n=10, \bar{x}=5.5, s=1\) und \(\mu=5\)

  2. Wenn \(\alpha = 0,05\) ist, erhalten wir ein zweiseitiges 95%-Konfidenzintervall mit:

\[\bar{x} \pm t_{0,975, n-1} \cdot \frac{s}{\sqrt{n}}\]

5.5 + c(-1, 1) * qt(0.975, 10-1) * 1/sqrt(10)
[1] 4.784643 6.215357


  1. Prüfung, ob \(\mu=5.0\) in diesem Intervall liegt?

  2. Ja, es befindet sich innerhalb \(\Rightarrow\) Unterschied nicht signifikant.

Methode 2: Vergleich mit einem tabellierten t-Wert

  1. Umstellung der Gleichung des Konfidenzintervalls, Berechnung eines beobachteten \(t\)-Werts, \(t_{obs}\):

\[ t_{obs} = |\bar{x}-\mu | \cdot \frac{1}{s_{\bar{x}}} = \frac{|\bar{x}-\mu |}{s} \cdot \sqrt{n} = \frac{|5.5 -5.0|}{1.0} \cdot \sqrt{10} \]

Berechnung in R:

t <- abs(5.5 - 5.0) / 1.0 * sqrt(10)
t
[1] 1.581139
  1. Vergleich von \(t_{obs}\) mit einem tabellierten Wert
  • „Historische Methode“: Ablesen des kritischen t-Wertes für gegebenes \(\alpha\) und Freiheitsgrade (\(n-1\)) aus einer Tabelle.
  • Für \(\alpha=0.05\) und zweiseitig ist das: \(t_{1-\alpha/2, n-1} = 2.26\).

Vergleich: \(1.58 < 2.26\) \(\Rightarrow\) kein signifikanter Unterschied zwischen \(\bar{x}\) und \(\mu\).

Methode 3: Berechnung des p-Wertes aus \(t_{obs}\)


  • Verwendung der computergestützten Wahrscheinlichkeitsfunktion der t-Verteilung (pt) anstelle des Tabellenvergleichs
  • Für \(t = t_{obs}\) und Anzahl der Freiheitsgrade (\(n-1\)):


2 * (1 - pt(t, df = 10 - 1)) # 2 * (1 - p) ist umgestellt von 1-alpha/2
[1] 0.1483047

Der p-Wert = 0.1483047 ist größer als \(0,05\), somit betrachten wir die Differenz als nicht signifikant.


FAQ: kleiner oder größer als?


p-Wert \(\text{p-Wert} < \alpha\) Nullhypothese unwahrscheinlich signifikant
Test Statistik \(t_{obs} > t_{1-\alpha/2, n-1}\) Effekt übersteigt Grenze signifikant

Methode 4: Integrierte t-Test-Funktion in R


Das Gleiche kann man viel einfacher mit dem Computer in R machen.

Angenommen, wir haben eine Stichprobe mit \(\bar{x}=5, s=1\):

## definiere Stichprobe
x <- c(5.5, 3.5, 5.4, 5.3, 6, 7.2, 5.4, 6.3, 4.5, 5.9)

## führe Einstichproben-t-Test durch
t.test(x, mu = 5)

    One Sample t-test

data:  x
t = 1.5811, df = 9, p-value = 0.1483
alternative hypothesis: true mean is not equal to 5
95 percent confidence interval:
 4.784643 6.215357
sample estimates:
mean of x 
      5.5 

Der Test liefert den beobachteten t-Wert, das 95%-Konfidenzintervall und den p-Wert.

Ein wichtiger Unterschied ist, dass diese Methode mit den Originaldaten arbeitet, während die anderen Methoden nur Mittelwert, Standardabweichung und Stichprobenumfang benötigen.

Zweistichproben-t-Test


Der Zweistichproben-t-Test vergleicht zwei unabhängige Stichproben:

x1 <- c(5.3, 6.0, 7.1, 6.4, 5.7, 4.9, 5.0, 4.6, 5.7, 4.0, 4.5, 6.5)
x2 <- c(5.8, 7.1, 5.8, 7.0, 6.7, 7.7, 9.2, 6.0, 7.2, 7.8, 7.8, 5.7)
t.test(x1, x2)

    Welch Two Sample t-test

data:  x1 and x2
t = -3.7185, df = 21.611, p-value = 0.001224
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -2.3504462 -0.6662205
sample estimates:
mean of x mean of y 
 5.475000  6.983333 


  • \(\rightarrow\) beide Stichproben unterscheiden sich signifikant (\(p < 0,05\))
  • Anmerkung: R hat hier nicht den „normalen“ t-Test durchgeführt, sondern den Welch-Test (= heteroskedastischer t-Test),
  • bei dem die Varianzen der beiden Stichproben nicht gleich sein müssen.

Hypothese und Formel für den Zweistichproben-t-Test


\(H_0\) \(\mu_1 = \mu_2\)

\(H_a\) die beiden Mittelwerte sind unterschiedlich

Testkriterium

\[ t_{obs} =\frac{|\bar{x}_1-\bar{x}_2|}{s_{tot}} \cdot \sqrt{\frac{n_1 n_2}{n_1+n_2}} \]

gepoolte Standardabweichung

\[ s_{tot} = \sqrt{{({n}_1 - 1)\cdot s_1^2 + ({n}_2 - 1)\cdot s_2^2 \over ({n}_1 + {n}_2 - 2)}} \]

Annahmen: Unabhängigkeit, gleiche Varianzen, annähernde Normalverteilung

Der Welch-Test


Bekannt als t-Test für Stichproben mit ungleicher Varianz, funktioniert auch bei gleicher Varianz!


Testkriterium:

\[ t = \frac{\bar{x}_1 - \bar{x}_2}{\sqrt{s^2_{\bar{x}_1} + s^2_{\bar{x}_2}}} \]

Standardfehler der einzelnen Stichproben:

\[ s_{\bar{x}_i} = \frac{s_i}{\sqrt{n_i}} \] Korrigierte Freiheitsgrade:

\[ \text{df} = \frac{\frac{s^2_1}{n_1} + \frac{s^2_2}{n_2}}{\frac{s^4_1}{n^2_1(n_1-1)} + \frac{s^4_2}{n^2_2(n_2-1)}} \]

Welch-Test in R

t.test(x1, x2)

    Welch Two Sample t-test

data:  x1 and x2
t = -3.7185, df = 21.611, p-value = 0.001224
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -2.3504462 -0.6662205
sample estimates:
mean of x mean of y 
 5.475000  6.983333 

… das ist die Standardmethode der t.test-Funktion.

Test auf Varianzgleichheit: F-Test

\(H_0\): \(\sigma_1^2 = \sigma_2^2\)

\(H_a\): Varianzen ungleich

Testkriterium:

\[F = \frac{s_1^2}{s_2^2} \]

  • größere der beiden Varianzen im Zähler \((s^2_1 > s^2_2)\)
  • Freiheitsgrade (\(n-1\)) für Zähler und Nenner können verschieden sein

Beispiel:

  • \(s_1=1\), \(s_2 =2\), \(n_1=5, n_2=10, F=\frac{2^2}{1^2}=4\)
  • Freiheitsgrad: \(9 \atop 4\)

\(\Rightarrow\) \(F_{9, 4, \alpha=0.975} = 8.9 > 4 \quad\rightarrow\) nicht signifikant

Homogenität der Varianzen bei > 2 Stichproben


Bartlett’s Test:

bartlett.test(list(x1, x2, x3))

    Bartlett test of homogeneity of variances

data:  list(x1, x2, x3)
Bartlett's K-squared = 7.7136, df = 2, p-value = 0.02114


Fligner-Killeen Test (empfohlen):

fligner.test(list(x1, x2, x3))

    Fligner-Killeen test of homogeneity of variances

data:  list(x1, x2, x3)
Fligner-Killeen:med chi-squared = 2.2486, df = 2, p-value = 0.3249

  • Tests werden häufig verwendet, um die Annahmen für eine ANOVA zu überprüfen.

Empfehlung für Zweistichproben-t-Tests


Traditionelles Vorgehen:

  1. Test auf gleiche Varianzen mit Hilfe des F-Tests: var.test(x, y)
  2. Wenn die Varianzen gleich sind: t.test(x, y, var.equal = TRUE)
  3. andernfalls: t.test(x, y) (= Welch-Test)
  4. Prüfe, ob beide Stichproben einer Normalverteilung folgen.


Moderne Empfehlung (bevorzugt):

  1. Verwende keine Vortests!
  2. Verwende immer den Welch-Test: t.test(x, y)
  3. Überprüfe die ungefähre Normalverteilung mit Box- oder QQ-Plots. Das ist weniger wichtig, wenn \(n\) groß ist.

siehe Zimmerman (2004) oder Wikipedia.

Gepaarter t-Test

  • manchmal auch „t-Test für abhängige Stichproben“ genannt

    • der Begriff „abhängig“ kann irreführend sein, „gepaart“ ist eindeutiger
    • die Werte innerhalb der Stichproben müssen immer noch unabhängig sein
  • Beispiele: linker Arm / rechter Arm; vorher / nachher

  • ist im Wesentlichen ein Einstichproben-t-Test von paarweisen Unterschieden gegen \(\mu=0\)

  • Reduziert den Einfluss individueller Unterschiede („Kovariate“) dank Fokussierung auf die paarweisen Unterschiede

x1 <- c(2, 3, 4, 5, 6)
x2 <- c(3, 4, 7, 6, 8)
t.test(x1, x2, var.equal=TRUE)

    Two Sample t-test

data:  x1 and x2
t = -1.372, df = 8, p-value = 0.2073
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -4.28924  1.08924
sample estimates:
mean of x mean of y 
      4.0       5.6 

p=0.20, nicht signifikant

x1 <- c(2, 3, 4, 5, 6)
x2 <- c(3, 4, 7, 6, 8)
t.test(x1, x2, paired=TRUE)

    Paired t-test

data:  x1 and x2
t = -4, df = 4, p-value = 0.01613
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
 -2.710578 -0.489422
sample estimates:
mean difference 
           -1.6 

p=0.016, signifikant

Es ist zu erkennen, dass der gepaarte t-Test in diesem Fall eine größere Power (Trennschärfe) aufweist.

Mann-Whitney- und Wilcoxon-Test


  • Nichtparametrische Tests:
    • Keine Annahmen über Form und Parameter der Verteilung, aber
    • Verteilungen sollten ähnlich sein, sonst kann der Test irreführend werden.
  • Basierend auf Rängen: Die Tests vergleichen die Ränge der Daten.
  • Bezeichnung “Mann-Whitney” für unabhängige Stichproben, “Wilcoxon” für gepaarte Stichproben.


Grundprinzip: Zählung der so genannten „Inversionen“ der Ränge, d.h. wie oft sich die Reihenfolge der Stichproben überschneidet

  • Stichprobe A: 1, 3, 4, 5, 7
  • Stichprobe B: 6, 8, 9, 10, 11
  • Beide Stichproben gemeinsam geordnet: 1, 3, 4, 5, 6, 7, 8, 9, 10, 11
  • Inversionen: \(\rightarrow\) \(U = 1\)

Mann-Whitney-Test in der Praxis


  1. Weise den beiden Stichproben \(A\) und \(B\) mit dem Stichprobenumfang \(m\) und \(n\) die Ränge \(R_A\) und \(R_B\) zu.
  2. Berechne die Anzahl der Inversionen \(U\):

\[\begin{align*} U_A &= m \cdot n + \frac{m (m + 1)}{2} - \sum_{i=1}^m R_A \\ U_B &= m \cdot n + \frac{n (n + 1)}{2} - \sum_{i=1}^n R_B \\ U &= \min(U_A, U_B) \end{align*}\]

  • Kritische Werte von \(U\) finden sich in gängigen Statistik-Lehrbüchern.
  • In R nicht notwendig, p-Wert wird direkt ausgegeben. Anmerkung: Verwende spezielle Version wilcox.exact mit Korrektur, wenn mehrfach gleiche Werte (Bindungen) vorliegen.

Mann-Whitney - Wilcoxon-Test in R


A <- c(1, 3, 4, 5, 7)
B <- c(6, 8, 9, 10, 11)

wilcox.test(A, B) # für gepaarte Daten optionales Argument `paired = TRUE` verwenden

    Wilcoxon rank sum exact test

data:  A and B
W = 1, p-value = 0.01587
alternative hypothesis: true location shift is not equal to 0


Mann-Whitney - Wilcoxon-Test mit Bindungskorrektur

  • wird angewendet, wenn die Rangunterschiede doppelte Werte enthalten
A <- c(1, 3, 4, 5, 7)
B <- c(6, 8, 9, 10, 11)
library("exactRankTests")
wilcox.exact(A, B, paired=TRUE)

    Exact Wilcoxon signed rank test

data:  A and B
V = 0, p-value = 0.0625
alternative hypothesis: true mu is not equal to 0

Permutationsmethoden

  • Grundprinzip: Schätzung einer Teststatistik \(\xi_{obs}\) aus der Stichprobe,
  • Resampling: Simulieren vieler \(\xi_{i, sim}\) aus zufällig permutiertem Datensatz (\(n = 999\) oder mehr)
  • Wie extrem ist \(\xi_{est}\) innerhalb der geordneten Reihe der simulierten Werte \(\xi_{i, sim}\)?

Sei \(\xi_{obs}\) in unserem Beispiel \(4.5\), dann sei \(\Rightarrow\) \(p= 0.97\).

Poweranalyse

Bestimmung der Trennschärfe von statistischen Tests


Wie viele Wiederholungen benötige ich?

  • Hängt ab von:

    • der relativen Effektstärke \(\frac{\mathrm{Effekt}}{\mathrm{Standardabweichung}}\)

    \[\delta=\frac{(\bar{x}_1-\bar{x}_2)}{s}\]

    • dem Stichprobenumfang \(n\)
    • dem vordefinierten Signifikanzniveau \(\alpha\)
    • und der angewandten statistischen Methode
  • Je kleiner \(\alpha\), \(n\) und \(\delta\), desto größer ist der Fehler zweiter Art (\(\beta\)).

  • Der \(\beta\)-Fehler ist die Wahrscheinlichkeit, Effekte zu übersehen, obwohl sie vorhanden sind.

  • Die Trennschärfe (Power) (\(1-\beta\)) ist die Wahrscheinlichkeit, dass ein Test signifikant ist, wenn ein Effekt vorhanden ist.

Poweranalyse


Formel für den Mindeststichprobenumfang im Einstichprobenfall:

\[ n = \bigg(\frac{z_\alpha + z_{1-\beta}}{\delta}\bigg)^2 \]

  • \(z\): die Quantile (qnorm) der Standardnormalverteilung für \(\alpha\) und für \(1-\beta\)
  • \(\delta=\Delta / s\): relative Effektstärke.

Beispiel

Zweiseitiger Test mit \(\alpha=0.025\) und \(\beta=0.2\)

\(\rightarrow\) \(z_\alpha = 1.96\), \(z_\beta=0.84\), dann:

\[ n= (1.96 + 0.84)^2 \cdot 1/\delta^2 \approx 8 /\delta^2 \]

\(\delta = 1.0\cdot \sigma\) \(\qquad\Rightarrow\) n > 8

\(\delta = 0.5\cdot \sigma\) \(\qquad\Rightarrow\) n > 32

Trennschärfe des t-Tests

Die Trennschärfe eines t-Tests bzw. der Mindeststichprobenumfang kann mit der Funktion power.t.test() geschätzt werden:

power.t.test(n=5, delta=0.5, sig.level=0.05)

     Two-sample t test power calculation 

              n = 5
          delta = 0.5
             sd = 1
      sig.level = 0.05
          power = 0.1038399
    alternative = two.sided

NOTE: n is number in *each* group

\(\rightarrow\) ‘power’ = 0.10

  • Für \(n=5\) wird ein vorhandener Effekt von \(0.5\sigma\) nur in 1 von 10 Fällen entdeckt.
  • Für eine Trennschärfe von 80% bei \(n=5\) benötigen wir eine Effektstärke von mindestens \(2\sigma\):
power.t.test(n=5, power=0.8, sig.level=0.05)

Für einen schwachen Effekt von \(0.5\sigma\) benötigen wir eine Stichprobengröße von \(n\ge64\) in jeder Gruppe:

power.t.test(delta=0.5,power=0.8,sig.level=0.05)

\(\Rightarrow\) wir brauchen entweder einen großen Stichprobenumfang oder einen starken Effekt.

Simulierte Trennschärfe eines t-Tests

# Grundgesamtheitsparameter
n      <- 10
xmean1 <- 50; xmean2 <- 55
xsd1   <- xsd2 <- 10
alpha  <- 0.05

nn <- 1000   # Anzahl an Testläufen der Simulation
a <- b <- 0  # initialisiere Zähler
for (i in 1:nn) {
  # erstelle Zufallszahlen
  x1 <- rnorm(n, xmean1, xsd1)
  x2 <- rnorm(n, xmean2, xsd2)
  # Ergebnisse des t-Tests
  p <- t.test(x1,x2,var.equal = TRUE)$p.value 
  if (p < alpha) {
     a <- a+1
   } else {
     b <- b+1
  }
}
print(paste("a=", a, ", b=", b, ", a/n=", a/nn, ", b/n=", b/nn))

Test auf Verteilungen

Testen auf Verteilungen

Nominale Variablen

  • \(\chi^2\)-Test
  • Exakter Test von Fisher

Ordinale Variablen

  • Cramér-von-Mises-Test
  • \(\rightarrow\) stärker als \(\chi^2\) oder KS-Test

Metrische Skalen

  • Kolmogorov-Smirnov-Test (KS-Test)
  • Shapiro-Wilks-Test (für Normalverteilung)
  • Grafische Prüfungen

Mehrfeldertafeln für nominale Variablen

  • Werden für nominale (d. h. kategoriale oder qualitative) Daten verwendet.
  • Beispiele: Augen- und Haarfarbe, medizinische Behandlung und Anzahl der geheilten/nicht geheilten Personen
  • Wichtig: Verwende absolute Messwerte (echte Zahlen!), keine Prozentsätze oder andere berechnete Daten (also nicht etwa Biomasse pro Fläche)

Beispiel: Verteilung von Daphnien (Wasserflöhen) in den Wasserschichten eines Sees:

Klon Obere Schicht Tiefe Schicht
A 50 87
B 37 78
C 72 45
  • In der oberen Schicht wurden die Futteralgen bereits aufgefressen. Sie finden sich nur noch im sauerstoffarmen Tiefenwasser.
  • genetisch angepasste Klone mit höherem Hämoglobingehalt können in sauerstoffreies Wasser tauchen

Rechenschema des \(\chi^2\)-Tests

  1. Beobachtete Häufigkeiten \(O_{ij}\)
Klon A Klon B Klon C Summe \(s_i\)
Obere Schicht 50 37 72 159
Untere Schicht 87 78 45 210
Summe \(s_j\) 137 115 117 \(n=369\)
  1. Erwartete Häufigkeiten \(E_{ij} = s_i \cdot s_j / n\) (Gleichverteilung = Nullhypothese)
Klon A Klon B Klon C Summe \(s_i\)
Obere Schicht 59.0 49.6 50.4 159
Untere Schicht 78.0 65.4 66.6 210
Summe \(s_j\) 137 115 117 \(n=369\)
  1. Teststatistik \(\hat{\chi}^2 = \sum_{i, j} \frac{(O_{ij} - E_{ij})^2}{E_{ij}}\)

  2. Vergleich mit kritischem \(\chi^2\) aus der Tabelle mit \((n_{Zeile} - 1) \cdot (n_{Spalte} - 1)\) df.

Der \(\chi^2\)-Test in R


Organisiere die Daten in einer Matrix mit 3 Zeilen (für die Klone) und 2 Spalten (für die Tiefen):

x <- matrix(c(50, 37, 72, 87, 78, 45), ncol=2)
x
     [,1] [,2]
[1,]   50   87
[2,]   37   78
[3,]   72   45
chisq.test(x)

    Pearson's Chi-squared test

data:  x
X-squared = 24.255, df = 2, p-value = 5.408e-06
  • Anmerkung: Die Ergebnisse sind nur zuverlässig, wenn alle beobachteten Häufigkeiten \(\geq 5\) sind.
  • Für kleinere Stichproben ist der exakte Test von Fisher zu verwenden.

Exakter Test nach Fisher


x <- matrix(c(50, 37, 72, 87, 78, 45), ncol=2)
x
     [,1] [,2]
[1,]   50   87
[2,]   37   78
[3,]   72   45
fisher.test(x)

    Fisher's Exact Test for Count Data

data:  x
p-value = 5.807e-06
alternative hypothesis: two.sided


\(\rightarrow\) signifikante Korrelation zwischen den Klonen und der vertikalen Verteilung im See.

Lieblingszahlen von HSE-Studenten

  • Zahlen von 1..9, \(n=34\)
  • \(H_0\): gleiche Wahrscheinlichkeit für alle Zahlen \(1/9\) (diskrete Gleichverteilung)
  • \(H_A\): einige Zahlen bevorzugt \(\rightarrow\) weichen von diskreter Gleichverteilung ab

Chi-Quadrat-Test


obsfreq <- c(1, 1, 6, 2, 2, 5, 8, 6, 3)
chisq.test(obsfreq)

    Chi-squared test for given probabilities

data:  obsfreq
X-squared = 13.647, df = 8, p-value = 0.09144
chisq.test(obsfreq, simulate.p.value = TRUE, B = 1000)

    Chi-squared test for given probabilities with simulated p-value (based
    on 1000 replicates)

data:  obsfreq
X-squared = 13.647, df = NA, p-value = 0.0969


  • Einstichproben \(\chi^2\)-Test. Er testet auf Gleichheit der Häufigkeit in allen Klassen.
  • Die simulationsbasierte Version des Tests (mit 1000 Wiederholungen) ist etwas genauer als der Standard-\(\chi^2\)-Test, aber beide sind nicht signifikant.

Cramér-von-Mises-Test

\[ T = n \omega^2 = \frac{1}{12n} + \sum_{i=1}^n \left[ \frac{2i-1}{2n}-F(x_i) \right]^2 \]

Cramér-von-Mises-Test in R

library(dgof)
obsfreq <- c(1, 1, 6, 2, 2, 5, 8, 6, 3)

## CvM-Test benötigt Einzelwerte, nicht Klassenhäufigkeiten
x <- rep(1:length(obsfreq), obsfreq)
x
 [1] 1 2 3 3 3 3 3 3 4 4 5 5 6 6 6 6 6 7 7 7 7 7 7 7 7 8 8 8 8 8 8 9 9 9


## erstelle kumulative Verteilung mit identischer Wahrscheinlichkeit für alle Fälle
cdf <- stepfun(1:9, cumsum(c(0, rep(1/9, 9))))
cdf <- ecdf(1:9)

## führe den Test durch
cvm.test(x, cdf)

    Cramer-von Mises - W2

data:  x
W2 = 0.51658, p-value = 0.03665
alternative hypothesis: Two.sided
  • Der Cramér-von-Mises-Test arbeitet mit den ursprünglichen, nicht in klassen eingeteilten Werten.
  • Verwendung der kumulativen Verteilungsfunktion berücksichtigt die Reihenfolge der Klassen \(\rightarrow\) leistungsfähiger als \(\chi^2\)-Test.

Testen auf Normalverteilung

Testen oder Prüfen?


Philosophisches Problem: Wir wollen \(H_0\) behalten!

  • Gleichheit kann nicht getestet werden
  • Deshalb: besser „Normalität prüfen“ sagen.

Vorab denken

  • Macht die Normalverteilung für die Daten „Sinn“?
  • Sind die Daten metrisch (kontinuierlich)?
  • Was ist der Prozess der Datenerzeugung \(\rightarrow\) fachlicher Kontext?

Intrinsische Nicht-Normalität

Einige Datentypen, wie z. B. Zähldaten (z. B. Anzahl der Vorkommnisse) oder binäre Daten (z. B. Ja/Nein), sind von Natur aus nicht normalverteilt.

  • Binäre Daten: Verwende Methoden für Binomialverteilung mit den Rohdaten anstelle von Prozentsätzen
  • Zähldaten: Nutze Methoden für die Poisson-Verteilung

Shapiro-Wilks-W-Test ?

\(\rightarrow\) Ziel: prüft, ob eine Stichprobe aus einer Normalverteilung stammt

x <- rnorm(100)
shapiro.test(x)

    Shapiro-Wilk normality test

data:  x
W = 0.99064, p-value = 0.7165


\(\rightarrow\) der \(p\)-Wert ist größer als 0.05, also würden wir \(H_0\) behalten und schlussfolgern, dass nichts gegen die Annahme der Normalität spricht


Die Interpretation des Shapiro-Wilks-Tests ist mit Vorsicht zu betrachten:

  • für kleine \(n\) ist der Test nicht empfindlich genug
  • bei großen \(n\) ist er überempfindlich
  • Die Verwendung von Shapiro-Wilks zur Überprüfung der Normalität für t-Tests und ANOVA wird nicht mehr empfohlen

Alternative: Verwendung grafischer Methoden


  • Histogramm, Boxplot, QQ-Plot (=Quantil-Quantil-Plot)
  • siehe auch: Box-Cox-Methode

Grafische Überprüfung der Normalität


  • \(x\): theoretische Quantile, wo die Werte bei Vorliegen einer Normalverteilung gefunden werden sollten
  • \(y\): normalisierte und geordnete Messwerte (\(z\)-Werte)
  • skaliert in der Einheit der Standardabweichungen
  • Normalverteilung liegt vor, wenn die Punkte einer Geraden folgen

Transformationen

  • Ermöglicht die Anwendung von Methoden, die für normalverteilte Daten entwickelt wurden, auf nicht-normalverteilte Fälle.
  • in der Vergangenheit sehr verbreitet, manchmal immer noch nützlich
  • Moderne Methoden (z. B. verallgemeinerte lineare Modelle, GLM) können bestimmte Verteilungen direkt verarbeiten, z.B. Binomial-, Gamma- oder Poisson-Verteilung.

Transformationen für rechtsschiefe Daten

  • \(x'=\log(x)\)
  • \(x'=\log(x + a)\)
  • \(x'=(x+a)^c\) (\(a\) zwischen 0,5 und 1)
  • \(x'=1/x\) („sehr stark“, d.h. in den meisten Fällen zu extrem)
  • \(x'=a - 1/\sqrt{x}\) (um die Skalierung zu vereinfachen)
  • \(x'=1/\sqrt{x}\) (Kompromiss zwischen \(\ln\) und \(1/x\))
  • \(x'=a+bx^c\) (sehr allgemein, schließt Potenzen und Wurzeln ein)

Transformationen II

Transformationen für Zähldaten

  • \(x'=\sqrt{3/8+x}\) (Zählungen: 1, 2, 3 \(\rightarrow\) 0.61, 1.17, 1.54, 1.84, )
  • \(x'=\lg(x+3/8)\)
  • \(x'=\log(\log(x))\) für riesige Zahlen

\(\rightarrow\) stattdessen ein GLM mit der Familie Poisson oder Quasi-Poisson in Betracht ziehen

Verhältnisse und Prozentsätze

  • \(x'=\arcsin \sqrt{x/n}\)
  • \(x'=\arcsin \sqrt{\frac{x+3/8}{n+3/4}}\)

\(\rightarrow\) stattdessen ein GLM mit Binomialfamilie in Betracht ziehen

Wie findet man die beste Transformation?

  • Beispiel: Biovolumen von Kieselalgenzellen (Art Nitzschia acicularis).


dat <- read.csv("prk_nit.csv")

Nit85 <- dat$biovol[dat$group == "nit85"]
Nit90 <- dat$biovol[dat$group == "nit90"]

hist(Nit85, xlab="Biovolume (mm^3)")
hist(Nit90, xlab="Biovolume (mm^3)")

  • Rechtsschiefe Verteilung.
  • Berechnungen des Biovolumens für Studien zum Nahrungsnetz und zur Vorhersage von Algenmassenentwicklungen.

Box-Cox Methode

\[ y' = \begin{cases} y^\lambda & | & \lambda \ne 0\\ \log(y) & | & \lambda =0 \end{cases} \]

Abschätzung der optimalen Transformation aus der Klasse der Potenzen und Logarithmen



library(MASS)

boxcox(Nit90 ~ 1)

  • Argument von boxcox ist eine sogenannte „Modellformel“ oder das Ergebnis eines linearen Modells (lm)
  • Die einfachste Form ist das „Nullmodell“ ohne Erklärungsvariablen (~ 1).
  • Mehr über Modellformeln, siehe ANOVA Kapitel.

Box-Cox Methode: Ergebnisse


Interpretation


  • Die gepunkteten vertikalen Linien und die horizontale 95%-Linie zeigen die Vertrauensgrenzen für mögliche Transformationen.
  • Die Zahlen sind angenähert \(\rightarrow\) eine Dezimalstelle genügt.
  • Hier können wir entweder eine log-Transformation (\(\lambda=0\)) oder eine Potenz von \(\approx 0.5\) verwenden.

Direkte Ermittlung des Zahlenwerts:

bc <- boxcox(Nit90 ~ 1)

str(bc)
List of 2
 $ x: num [1:100] -2 -1.96 -1.92 -1.88 -1.84 ...
 $ y: num [1:100] -237 -233 -230 -226 -223 ...
bc$x[bc$y == max(bc$y)]
[1] 0.1818182

Test von gepoolten Stichproben mit unterschiedlichen Mittelwerten

boxcox(biovol ~ group, data = dat)
  • Um die gemeinsame Verteilung aller Gruppen auf einmal zu testen, gibt man die Erklärungsvariablen auf der rechten Seite der Modellformel an: biovol ~ group
  • Die optimale Transformation für beide Stichproben zusammen ist log.

Korrelation und Regression

Korrelation


Häufigkeiten von nominalen Variablen

  • \(\chi^2\)-Test
  • Exakter Test von Fisher

⇒ Abhängigkeit zwischen Pflanzenart und Bodentyp

(siehe oben)

Ordinale Variablen

  • Spearman-Korrelation

\(\rightarrow\) Rangzahlen

Metrische Skalen

  • Pearson-Korrelation
  • Spearman-Korrelation

Varianz und Kovarianz


Varianz

  • misst die Variation einer einzelnen Variablen

\[ s^2_x = \frac{\text{Quadratsumme}}{\text{Freiheitsgrade}}=\frac{\sum_{i=1}^n (x_i-\bar{x})^2}{n-1} \]

Kovarianz

  • misst, wie sich zwei Variablen gemeinsam verändern

\[ q_{x,y} = \frac{\sum_{i=1}^n (x_i-\bar{x})(y_i-\bar{y})}{n-1} \]

Korrelation: skaliert auf \((-1, +1)\)

\[ r_{x,y} = \frac{q_{x,y}}{s_x \cdot s_y} \]

Korrelationskoeffizient nach Pearson


  • der übliche Korrelationskoeffizient, den wir alle kennen
  • testet auf lineare Abhängigkeit

\[ r_p=\frac{\sum{(x_i-\bar{x}) (y_i-\bar{y})}} {\sqrt{\sum(x_i-\bar{x})^2\sum(y_i-\bar{y})^2}} \]

Oder:

\[ r_p=\frac {\sum xy - \sum y \sum y / n} {\sqrt{(\sum x^2-(\sum x)^2/n)(\sum y^2-(\sum y)^2/n)}} \]

Wertebereich: \(-1 \le r_p \le +1\)

\(0\) keine gegenseitige Abhängigkeit
\(+1 \,\text{or}\,-1\) strikt positive bzw. negative Abhängigkeit
\(0 < |r_p| < 1\) positive bzw. negative Abhängigkeit

Welcher Korrelationskoeffizient deutet auf eine Abhängigkeit hin?

\(r=0.4, \quad p=0.0039\)

\(r=0.85, \quad p=0.07\)

Signifikante Korrelation?

\[ \hat{t}_{\alpha/2;n-2} =\frac{|r_p|\sqrt{n-2}}{\sqrt{1-r^2_p}} \]

\(t=0.829 \cdot \sqrt{1000-2}/\sqrt{1-0.829^2}=46.86, df=998\)


Schnelltest: kritische Werte für \(r_p\)

\(n\) d.f. \(t\) \(r_{krit}\)
3 1 12.706 0.997
5 3 3.182 0.878
10 8 2.306 0.633
20 18 2.101 0.445
50 48 2.011 0.280
100 98 1.984 0.197
1000 998 1.962 0.062

Rangkorrelation nach Spearman


  • misst monotone (und nicht unbedingt lineare) Abhängigkeiten
  • Schätzung aus Rangunterschieden:

\[ r_s=1-\frac{6 \sum d^2_i}{n(n^2-1)} \]

  • oder, alternativ: Pearson-Korrelation der geordneten Daten (notwendig bei Gleichheit).
  • Test: für \(n < 10\) \(\rightarrow\) Tabelle der kritischen Werte

für \(10 \leq n\) \(\rightarrow\) \(t\)-Verteilung

\[ \hat{t}_{1-\frac{\alpha}{2};n-2} =\frac{|r_s|}{\sqrt{1-r^2_S}} \sqrt{n-2} \]

Beispiel


\(x\) \(y\) \(R_x\) \(R_y\) \(d\) \(d^2\)
1 2.7 1 1 0 0
2 7.4 2 2 0 0
3 20.1 3 3 0 0
4 500.0 4 5 -1 1
5 148.4 5 4 +1 1
2

\[ r_s=1-\frac{6 \cdot 2}{5\cdot (25-1)}=1-\frac{12}{120}=0.9 \]

Zum Vergleich: \(r_p=0.58\)

Anwendung von Spearman’s-\(r_s\)


Vorteile

  • verteilungsfrei (erfordert keine Normalverteilung),
  • erkennt jegliche monotone Abhängigkeit,
  • wird durch Ausreißer kaum beeinträchtigt.

Nachteile:

  • gewisser Informationsverlust aufgrund der Rangbildung,
  • keine Informationen über die Art der Abhängigkeit,
  • keine direkte Beziehung zum Bestimmtheitsmaß.

Fazit: \(r_s\) ist dennoch sehr empfehlenswert!

Korrelationskoeffizienten in R

  • Pearson’s Produkt-Moment-Korrelationskoeffizient
  • Spearman’s Rangkorrelationskoeffizient
x <- c(1, 2, 3, 5, 7,  9)
y <- c(3, 2, 5, 6, 8, 11)
cor.test(x, y, method="pearson")

    Pearson's product-moment correlation

data:  x and y
t = 7.969, df = 4, p-value = 0.001344
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.7439930 0.9968284
sample estimates:
      cor 
0.9699203 

Wenn Linearität oder Normalität der Residuen zweifelhaft sind, verwende eine Rangkorrelation

cor.test(x, y, method="spearman")

    Spearman's rank correlation rho

data:  x and y
S = 2, p-value = 0.01667
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.9428571 

Problemfälle

Ausblick: Mehr als zwei unabhängige Variablen


Multiple Korrelation

  • Beispiel: Chl-a=\(f(x_1, x_2, x_3, \dots)\), wobei \(x_i\) = Biomasse der \(i\)-ten Phytoplanktonart.
  • multipler Korrelationskoeffizient
  • partieller Korrelationskoeffizient
  • Attraktive Methode \(\leftrightarrow\), aber in der Praxis schwierig:
    • „unabhängige“ Variablen können miteinander korrelieren (Multikollinearität)
      \(\Rightarrow\) Verzerrung des Vielfachen \(r\).
    • Nichtlinearitäten sind noch schwieriger zu handhaben als im Fall von zwei Stichproben.

Empfehlung:

  • Verwende multivariate Methoden (NMDS, PCA, …) für einen ersten Überblick,
  • Wende die multiple Regression mit Sorgfalt an und nutze Prozesswissen.

Literatur


Hubbard, R. (2004). Alphabet soup: Blurring the distinctions between p’s and a’s in psychological research. Theory & Psychology, 14(3), 295–327. https://doi.org/10.1177/0959354304043638
Zimmerman, D. W. (2004). A note on preliminary tests of equality of variances. British Journal of Mathematical and Statistical Psychology, 57(1), 173–181. https://doi.org/10.1348/000711004849222