Add-On: Beispiele zur Auswahl und Interpretation statistischer Tests

Data Science 2

Saskia Otto

Universität Hamburg, IMF

Sommersemester 2024

Beispiel 1 | Fragestellung

Verteilung von Blutgruppen in einer Bevölkerung

Angenommen, wir haben eine Stichprobe von Personen und möchten untersuchen, ob die Verteilung der Blutgruppen in dieser Stichprobe mit der bekannten Verteilung in der allgemeinen Bevölkerung übereinstimmt. Die bekannten prozentualen Verteilungen der Blutgruppen in der allgemeinen Bevölkerung in Deutschland sind:

Bildquelle: DRK

Fragestellung:

Unterscheidet sich die Verteilung der Blutgruppen in unserer Stichprobe signifikant von der bekannten Verteilung in der allgemeinen Bevölkerung?

Beispiel 1 | Daten

Verteilung von Blutgruppen in einer Bevölkerung

Stichprobe von 200 Personen:

Blutgruppe Anzahl Personen
A 82
B 24
AB 8
0 86

Beispiel 1 | Testwahl

Verteilung von Blutgruppen in einer Bevölkerung

Beispiel 1 | Analyse

Verteilung von Blutgruppen in einer Bevölkerung

# Beobachtete Häufigkeiten
observed <- c(82, 24, 8, 86)

# Erwartete Prozentsätze in der allgemeinen Bevölkerung
expected_percentages <- c(0.43, 0.11, 0.05, 0.41)

# Berechnete erwartete Häufigkeiten für eine Stichprobengröße von 200
expected <- expected_percentages * 200
expected
[1] 86 22 10 82
# Chi-Quadrat-Anpassungstest
chi_square_result <- chisq.test(observed, p = expected_percentages, correct = FALSE)

# Ergebnis anzeigen
chi_square_result  # oder: print(chi_square_result)

    Chi-squared test for given probabilities

data:  observed
X-squared = 0.96299, df = 3, p-value = 0.8102

Beispiel 1 | Interpretation

Verteilung von Blutgruppen in einer Bevölkerung

  • Der Chi-Quadrat-Anpassungstest gibt Ihnen den Chi-Quadrat-Wert und die dazugehörige Wahrscheinlichkeit (p-Wert), einen solchen Wert zu bekommen, wenn die H0 richtig ist.
  • Wenn der p-Wert kleiner als das Signifikanzniveau (z.B. 0.05) ist, können Sie den Schluss ziehen, dass die Verteilung der Blutgruppen in der Stichprobe signifikant von der bekannten Verteilung in der allgemeinen Bevölkerung abweicht.


Das heißt:

Die Verteilung der Blutgruppen in unserer Stichprobe unterscheidet sich nicht signifikant von der bekannten Verteilung in der allgemeinen Bevölkerung (\chi^2 = 0.96, FG = 3, p = 0.81).

Beispiel 2 | Fragestellung

Cholesterinspiegel nach einer neuen Diät

Angenommen, wir haben eine Gruppe von Personen, die eine neue Diät ausprobiert haben, die angeblich den Cholesterinspiegel senken soll. Nach einer bestimmten Zeit wurde der Cholesterinspiegel jedes Teilnehmers gemessen.


Fragestellung (1-seitig):

Ist der durchschnittliche Cholesterinspiegel der Personen nach der Diät signifikant niedriger als der bekannte Durchschnittswert von 200 mg/dL in der allgemeinen Bevölkerung?

Beispiel 2 | Daten

Cholesterinspiegel nach einer neuen Diät

Person Cholesterinspiegel (mg/dL)
1 190
2 185
3 200
4 195
5 180
6 205
7 198
8 210
9 175
10 200
11 190
12 195
13 185
14 180
15 195

Beispiel 2 | Testwahl

Cholesterinspiegel nach einer neuen Diät

Beispiel 2 | Analyse

Cholesterinspiegel nach einer neuen Diät

# Cholesterinspiegel (mg/dL) nach der Diät für eine Gruppe von 15 Personen:
cholesterin <- c(190, 185, 200, 195, 180, 205, 198, 210, 
  175, 200, 190, 195, 185, 180, 195)

# Bekannter Durchschnittswert
mu <- 200

# Normalität?
shapiro.test(cholesterin)

    Shapiro-Wilk normality test

data:  cholesterin
W = 0.97575, p-value = 0.9322
# 1-Stichproben t-Test (1-seitig)
t_test_result <- t.test(cholesterin, mu = mu, alternative = "less")

# Ergebnis anzeigen
t_test_result

    One Sample t-test

data:  cholesterin
t = -3.0578, df = 14, p-value = 0.004258
alternative hypothesis: true mean is less than 200
95 percent confidence interval:
     -Inf 196.6928
sample estimates:
mean of x 
    192.2 

Beispiel 2 | Interpretation

Cholesterinspiegel nach einer neuen Diät

  • Der 1-Stichproben t-Test gibt Ihnen die t-Statistik, Freiheitsgrade, den p-Wert und ein Konfidenzintervall für den Mittelwert der Cholesterinwerte.
  • Wenn der p-Wert kleiner als das Signifikanzniveau (z.B. 0.05) ist, können Sie den Schluss ziehen, dass der durchschnittliche Cholesterinspiegel der Personen nach der Diät signifikant niedriger ist als der bekannte Durchschnittswert von 200 mg/dL in der allgemeinen Bevölkerung.

Das heißt:

Die Diät führt zu einer signifikanten Herabsenkung des durchschnittlichen Cholesterinspiegels um 7.8 ± 4.5 mg/dL (95%-KI) (t = -3.1, FG = 14, p = 0.004).

Beispiel 3 | Fragestellung

Pflanzenwachstum unter zwei unterschiedlichen Düngemitteltypen

Angenommen, wir haben zwei Gruppen von Pflanzen, die jeweils mit einem unterschiedlichen Typ von Düngemittel behandelt wurden:

  • Gruppe A: Pflanzen, die mit Düngemittel Typ 1 behandelt wurden.
  • Gruppe B: Pflanzen, die mit Düngemittel Typ 2 behandelt wurden.

Für jede Pflanze in den Gruppen wurde das Wachstum (in Zentimetern) nach einem bestimmten Zeitraum gemessen.

Fragestellung (2-seitig):

Gibt es einen signifikanten Unterschied im Wachstum der Pflanzen zwischen den beiden Düngemitteltypen?

Beispiel 3 | Daten

Pflanzenwachstum unter zwei unterschiedlichen Düngemitteltypen

Pflanze Gruppe A (Düngemittel Typ 1) Gruppe B (Düngemittel Typ 2)
1 14.2 15.1
2 13.9 14.8
3 15.4 14.3
4 14.7 15.6
5 14.1 14.9
6 13.5 15.3
7 14.8 14.7
8 14.0 15.2
9 15.0 15.5
10 14.5 15.0

Beispiel 3 | Testwahl

Pflanzenwachstum unter zwei unterschiedlichen Düngemitteltypen

Beispiel 3 | Analyse

Pflanzenwachstum unter zwei unterschiedlichen Düngemitteltypen

# Wachstumsmessungen für die beiden Gruppen (in cm)
wachstum_A <- c(14.2, 13.9, 15.4, 14.7, 14.1, 13.5, 14.8, 14.0, 15.0, 14.5)
wachstum_B <- c(15.1, 14.8, 14.3, 15.6, 14.9, 15.3, 14.7, 15.2, 15.5, 15.0)

# Datenexploration
boxplot(wachstum_A, wachstum_B)

# Annahmen prüfen
shapiro.test(wachstum_A)

    Shapiro-Wilk normality test

data:  wachstum_A
W = 0.98385, p-value = 0.9824
shapiro.test(wachstum_B)

    Shapiro-Wilk normality test

data:  wachstum_B
W = 0.98146, p-value = 0.9725
var.test(x = wachstum_A, y = wachstum_B)

    F test to compare two variances

data:  wachstum_A and wachstum_B
F = 2.1767, num df = 9, denom df = 9, p-value = 0.2621
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
 0.5406581 8.7633260
sample estimates:
ratio of variances 
          2.176686 
# Unabhängiger t-Test (2-seitig)
t_test_result <- t.test(wachstum_A, wachstum_B, var.equal = TRUE)

# Ergebnis anzeigen
t_test_result

    Two Sample t-test

data:  wachstum_A and wachstum_B
t = -2.8712, df = 18, p-value = 0.01016
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -1.090981 -0.169019
sample estimates:
mean of x mean of y 
    14.41     15.04 

Beispiel 3 | Interpretation

Pflanzenwachstum unter zwei unterschiedlichen Düngemitteltypen

  • Der unabhängige t-Test gibt Ihnen die t-Statistik, Freiheitsgrade, den p-Wert und ein Konfidenzintervall (KI) für den Unterschied der Mittelwerte der beiden Gruppen.
  • Wenn der p-Wert kleiner als das Signifikanzniveau (z.B. 0.05) ist (bzw. wenn das KI die Null nicht einschließt), können Sie den Schluss ziehen, dass es einen signifikanten Unterschied im Wachstum der Pflanzen zwischen den beiden Düngemitteltypen gibt.

Das heißt:

Es gibt einen schwach signifikanten Unterschied des Pflanzenwachstums von 0.63 ± 0.46 cm (95% KI) zwischen den beiden Düngemitteltypen (t = -2.9, FG = 18, p = 0.01).

Beispiel 4 | Fragestellung

Auswirkung eines Medikaments auf den Blutdruck

Angenommen, wir möchten die Wirkung eines neuen Medikaments auf den Blutdruck von Patienten untersuchen. Wir messen den Blutdruck der Patienten vor und nach der Einnahme des Medikaments. Jede Messung vor der Einnahme wird mit der entsprechenden Messung nach der Einnahme für denselben Patienten gepaart.


Fragestellung (2-seitig):

Gibt es einen signifikanten Unterschied im Blutdruck der Patienten vor und nach der Einnahme des Medikaments?

Beispiel 4 | Daten

Auswirkung eines Medikaments auf den Blutdruck

Patient Blutdruck vor der Behandlung (mmHg) Blutdruck nach der Behandlung (mmHg)
1 150 143
2 160 151
3 157 145
4 148 131
5 162 142
6 158 137
7 154 142
8 149 136
9 157 147
10 153 144

Beispiel 4 | Testwahl

Auswirkung eines Medikaments auf den Blutdruck

Beispiel 4 | Analyse

Auswirkung eines Medikaments auf den Blutdruck

# Blutdruckdaten vor und nach der Behandlung
blutdruck_vor <- c(150, 160, 157, 148, 162, 158, 154, 149, 157, 153)
blutdruck_nach <- c(143, 151, 145, 131, 142, 137, 142, 136, 147, 144)

# Datenexploration
boxplot(blutdruck_vor, blutdruck_nach)

# Annahme der Normalität der Differenz
diff <- blutdruck_vor - blutdruck_nach
shapiro.test(diff)

    Shapiro-Wilk normality test

data:  diff
W = 0.90682, p-value = 0.2598
# Gepaarter t-Test (2-seitig)
t_test_result <- t.test(blutdruck_vor, blutdruck_nach, paired = TRUE)

# Ergebnis anzeigen
t_test_result

    Paired t-test

data:  blutdruck_vor and blutdruck_nach
t = 8.5513, df = 9, p-value = 1.295e-05
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
  9.560992 16.439008
sample estimates:
mean difference 
             13 
# Der gepaarte t-Test ist wie ein 1-Stichprobentest mit der Stichprobe
# 'Differenzen' und dem mu = 0:
t.test(x = diff, mu = 0)

    One Sample t-test

data:  diff
t = 8.5513, df = 9, p-value = 1.295e-05
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
  9.560992 16.439008
sample estimates:
mean of x 
       13 

Beispiel 4 | Interpretation

Auswirkung eines Medikaments auf den Blutdruck

  • Der gepaarte t-Test gibt Ihnen die t-Statistik, Freiheitsgrade, den p-Wert, die mittlere Differenz und das entsprechende Konfidenzintervall.
  • Wenn der p-Wert kleiner als das Signifikanzniveau (z.B. 0.05) ist, können Sie den Schluss ziehen, dass es einen signifikanten Unterschied im Blutdruck der Patienten vor und nach der Einnahme des Medikaments gibt.

Das heißt:

Es gibt einen hoch signifikanten Unterschied im Blutdruck der Patienten vor und nach Einnahme des Medikaments (t = 8.6, FG = 9, p < 0.001). Die Medikamenteneinnahme führt zu einer Blutdrucksenkung von 13 ± 3.44 mmHg (95% KI).

Beispiel 5 | Fragestellung

Untersuchung der Auswirkung von drei verschiedenen Behandlungsmethoden auf die Genexpression

Angenommen, wir haben ein Experiment durchgeführt, um die Auswirkung von drei verschiedenen Behandlungsmethoden auf die Expression eines bestimmten Gens in menschlichen Zellen zu untersuchen. Wir haben menschliche Zellen in drei Gruppen unterteilt und jede Gruppe mit einer der drei Behandlungsmethoden behandelt. Nach der Behandlung wurde die Expression des Gens gemessen und in Form von mRNA-Kopien pro Zelle quantifiziert.


Fragestellung:

Gibt es einen signifikanten Unterschied in der Genexpression zwischen den drei verschiedenen Behandlungsmethoden?

Beispiel 5 | Daten

Untersuchung der Auswirkung von drei verschiedenen Behandlungsmethoden auf die Genexpression

Behandlung 1 Behandlung 2 Behandlung 3
500 530 490
510 540 495
480 520 485
495 535 500
505 525 505

Beispiel 5 | Testwahl

Auswirkung auf die Genexpression

Beispiel 5 | Analyse

Auswirkung auf die Genexpression

# Genexpressionsdaten und Behandlungsmethoden
behandlung <- factor(rep(c("1", "2", "3"), each = 5))
genexpression <- c(500, 510, 480, 495, 505, 
                   530, 540, 520, 535, 525, 
                   490, 495, 485, 500, 505)
daten <- data.frame(behandlung, genexpression)

# Datenexploration
boxplot(genexpression ~ behandlung, data = daten)

# Modellannahmen prüfen --> hier nur Varianzhomogenität, 
# Normalität prüfen wir mit den Residuen
car::leveneTest(genexpression ~ behandlung, data = daten)
Levene's Test for Homogeneity of Variance (center = median)
      Df F value Pr(>F)
group  2  0.2162 0.8086
      12               
# ANOVA durchführen
anova_result <- aov(genexpression ~ behandlung, data = daten)

# Modelldiagnostik 
par(mfrow = c(2,2))
plot(anova_result, which = 1:4)

# Ergebnis anzeigen
summary(anova_result)
            Df Sum Sq Mean Sq F value   Pr(>F)    
behandlung   2   3763  1881.7   21.92 9.84e-05 ***
Residuals   12   1030    85.8                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Post-hoc Test: Tukey's HSD
TukeyHSD(anova_result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = genexpression ~ behandlung, data = daten)

$behandlung
    diff       lwr       upr     p adj
2-1   32  16.36775  47.63225 0.0003940
3-1   -3 -18.63225  12.63225 0.8669957
3-2  -35 -50.63225 -19.36775 0.0001771

Beispiel 5 | Interpretation

Untersuchung der Auswirkung von drei verschiedenen Behandlungsmethoden auf die Genexpression

  • Die ANOVA gibt Ihnen neben den Freiheitsgraden und (mittleren) Summenquadraten eine F-Statistik und den dazugehörigen p-Wert.
  • Wenn der p-Wert kleiner als das Signifikanzniveau (z.B. 0.05) ist, können Sie den Schluss ziehen, dass es einen signifikanten Unterschied in der Genexpression zwischen den verschiedenen Behandlungsmethoden gibt.
  • Wenn die ANOVA signifikant ist, können Sie Post-hoc Tests (wie Tukey’s HSD) durchführen, um herauszufinden, welche Behandlungsmethoden sich signifikant voneinander unterscheiden.

Das heißt:

Es gibt einen hoch signifikanten Unterschied der Genexpression zwischen den 3 Behandlungsstufen (1-faktorielle ANOVA, F = 21.9, FG_{Behandlung} = 2, FG_{Residuen} = 12, p < 0.001).

Die Genexpression ist unter Behandlung 2 mit einer Differenz von 32 bzw. 35 signifikant höher als unter Gruppe 1 bzw. 2 (Tukey HSD, p jeweils < 0.001). Es gibt allerdings keine signifikanten Unterschiede zwischen Gruppe 1 und 3.

Beispiel 6 | Fragestellung

Einfluss der Körpergröße auf die Lungenkapazität

Angenommen, wir möchten den den Einfluss der Körpergröße auf die Lungenkapazität bei Menschen untersuchen. Wir messen die Körpergröße (in Zentimetern) und die Lungenkapazität (in Litern) einer Gruppe von Personen.

Fragestellung:

Wie stark beeinflusst die Körpergröße die Lungenkapazität und können wir eine Vorhersage der Lungenkapazität basierend auf der Körpergröße treffen?

Beispiel 6 | Daten

Einfluss der Körpergröße auf die Lungenkapazität

Person Körpergröße (cm) Lungenkapazität (L)
1 160 3.8
2 165 4.4
3 170 4.4
4 175 4.9
5 180 5.0
6 185 5.2
7 190 5.7
8 195 5.7
9 200 6.2
10 205 6.4

Einfluss der Körpergröße auf die Lungenkapazität

Beispiel 6 | Testwahl

Einfluss der Körpergröße auf die Lungenkapazität

Beispiel 6 | Analyse

Einfluss der Körpergröße auf die Lungenkapazität

# Körpergrößen- und Lungenkapazitätsdaten
koerpergroesse <- c(160, 165, 170, 175, 180, 185, 190, 195, 200, 205)
lungenkapazitaet <- c(3.8, 4.4, 4.4, 4.9, 5.0, 5.2, 5.7, 5.7, 6.2, 6.4)
daten <- data.frame(koerpergroesse, lungenkapazitaet)

# Datenexploration --> Linearität vorab prüfen
# weitere Annahmen werden anhand der Residuen geprüft
plot(koerpergroesse, lungenkapazitaet)

# Lineare Regression durchführen
regression_model <- lm(lungenkapazitaet ~ koerpergroesse, data = daten)

## Modellvalidierung
par(mfrow = c(2,2))
plot(regression_model, which = 1:4)

# Zusammenfassung des Modells anzeigen
summary(regression_model)

Call:
lm(formula = lungenkapazitaet ~ koerpergroesse, data = daten)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.15333 -0.10167 -0.01667  0.10833  0.18667 

Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)    -4.806667   0.528140  -9.101 1.71e-05 ***
koerpergroesse  0.054667   0.002885  18.949 6.23e-08 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.131 on 8 degrees of freedom
Multiple R-squared:  0.9782,    Adjusted R-squared:  0.9755 
F-statistic:   359 on 1 and 8 DF,  p-value: 6.225e-08
# Plot der Daten
plot(koerpergroesse, lungenkapazitaet, 
  main = "Körpergröße vs. Lungenkapazität",
     xlab = "Körpergröße (cm)", ylab = "Lungenkapazität (L)", 
  pch = 19, col = "blue")

# Hinzufügen der Regressionslinie
pred <- predict(regression_model)
lines(koerpergroesse, pred, col = "red")

Beispiel 6 | Interpretation

Einfluss der Körpergröße auf die Lungenkapazität

Die Ausgabe des summary(regression_model) Befehls gibt Ihnen mehrere wichtige Informationen:

  1. Koeffizienten (mit Standardfehlern):
    • Intercept: Der Achsenabschnitt (Wert von Lungenkapazität, wenn die Körpergröße 0 ist).
    • Slope (Körpergröße): Der Steigungskoeffizient, der zeigt, wie stark die Lungenkapazität mit der Körpergröße zunimmt.
  2. p-Werte: Zeigen an, ob die Koeffizienten statistisch signifikant sind. Wenn der p-Wert für den Steigungskoeffizienten kleiner als das Signifikanzniveau (z.B. 0.05) ist, können wir den Schluss ziehen, dass die Körpergröße einen signifikanten Einfluss auf die Lungenkapazität hat.
  3. R^2-Wert (= Multiple R-squared): Gibt an, wie viel der Variabilität in der Lungenkapazität durch die Körpergröße erklärt wird. Ein Wert nahe 1 bedeutet ein starker Erklärungsgehalt.

Das heißt:

Die Körpergröße hat einen hoch signifikanten, positiven Einfluss auf die Lungenkapazität (p < 0.001). Mit jedem Zentimeter Körpergröße steigt die Lungenkapazität um 0.05 Liter an. Das Modell zeigt mit einem Bestimmtheitsmaß von 0.98 eine sehr hohe Güte. Die Beziehung kann folgendermaßen zusammengefasst werden:

\text{Lungenkapazität}_i = -4.8 + 0.05 * \text{Körpergröße}_i + \epsilon_i

Bei weiteren Fragen: saskia.otto(at)uni-hamburg.de

Creative Commons License
Diese Arbeit is lizenziert unter einer Creative Commons Attribution-ShareAlike 4.0 International License mit Ausnahme der entliehenen und mit Quellenangabe versehenen Abbildungen.