1. Forschungsfrage

Das Phänomen Regression zur Mitte wurde schon im 19. Jahrhundert entdeckt (Galton 1886): Große Eltern haben tendenziell große Kinder, besonders große Eltern aber tendenziell aber etwas kleinere Kinder – und umgekehrt.

(Kahneman 2011, S. 177) führt als seine Lieblingsgleichung auf

\[\begin{eqnarray*} \text{Erfolg} &=& \text{Talent }+ \text{ Glück} \\ \text{Großer Erfolg} &=& \text{Ein bisschen mehr Talent }+ \text{ viel mehr Glück} \\ \end{eqnarray*}\]

Mathematisch/ statistisch kann das Phänomen wie folgt beschrieben werden:

\[ x_i=\mu+\epsilon_i, \]

wobei \(\epsilon_i\) das Glück bzw. Pech wiederspiegelt.1 Wenn also an einem Tag \(i\) das Glück einem hold ist, \(\epsilon_i\) also besonders groß ist, ist die Wahrscheinlichkeit hoch, dass es an einem anderen Tag, z. B. \(i+1\), kleiner ist, also \(\epsilon_{i+1}<\epsilon_i\). Umgekehrt, nach einem besonders schlechten Tag \(j\) (\(\epsilon_j\) sehr klein) ist die Wahrscheinlichkeit groß, dass ein anderer Tag (z. B. \(j+1\)) besser läuft, d. h. \(\epsilon_{j+1}>\epsilon_j\).

Gilt dies auch für Mathematik Klausuren?

2. Studiendesign

Zur Untersuchung dieser Frage wird eine Gelegenheitsstichprobe von zwei Klausuren derselben Kohorte verwendet: Die Punktzahl in der Klausur Mathematik 1 (Finanzmathematik, Lineare Algebra) sowie die in der Klausur Mathematik 2 (Analysis). Die Punktzahl ist metrisch und intervallskaliert. Der Wertebereich geht jeweils von \(0\) bis \(60\) Punkten.

3. Datenerhebung

Die Punktzahlen samt Studierendenidentifikation (Matrikelnummer, aus Datenschutzgründen verändert) aus einem Semester liegen als Excel Datei vor.

# Ggfs. Paket readxl installieren
# install.packges("readxl")

# Paket laden
library(readxl)

# Mathematik 1
Mathe1 <- read_excel("Mappe1.xlsx")
# Mathematik 2
Mathe2 <- read_excel("Mappe2.xlsx")

# Ggfs. Paket mosaic installieren
# install.packges("mosaic")

# Paket laden
library(mosaic)

4. Datenanalyse

Über die Matrikelnummer können beide Datensätze verbunden werden. Außerdem wird die Differenz gebildet und die Daten werden standardisiert (\(z\)-Transformiert), so dass sie direkt verglichen werden können:

Mathepunkte <- Mathe1 %>%
  inner_join(Mathe2, by = "Matrikelnummer") %>%
  mutate(diffM2M1 = Punkte_M2-Punkte_M1) %>%
  mutate(M1_Stand = zscore(Punkte_M1),
         M2_Stand = zscore(Punkte_M2))

Grafische Analyse

Univariate Punktverteilung der Klausurpunkte Mathematik 1 bzw. Mathematik 2.

gf_histogram( ~ Punkte_M1, data = Mathe1, binwidth = 3, boundary = 0) %>%
  gf_lims(x = c(0,60))

gf_histogram( ~ Punkte_M2, data = Mathe2, binwidth = 3, boundary = 0) %>%
  gf_lims(x = c(0,60))

Interessanterweise sind beide Verteilung eher linksschief, wobei beide eine leichte Bi-Modalität erkennen lassen.

Hinweis: Beide Klausuren sind (sehr) gut ausgefallen: die Verteilung der beiden Klausuren liegt über der jeweiligen langfristigen Verteilung.2 Damit ist die Repräsentativität eingeschränkt und somit auch die externe Validität.3

Streudiagramm der Klausurpunkte derjenigen, die an beiden Klausuren teilnahmen:

gf_point(Punkte_M2 ~ Punkte_M1, data = Mathepunkte) %>%
  gf_smooth(se = TRUE) %>%
  gf_lims(x = c(0,60), y = c(0,60))
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Es ist ein positiver Zusammenhang erkennbar: Studierende mit vielen Punkten in Mathematik 1 haben tendenziell auch viele Punkte in Mathematik 2.

Betrachtet man den Zusammenhang der Differenz (d. h. der Veränderung Mathematik 2 zu Mathematik 1), so ergibt sich ein anderes Bild:

gf_point(diffM2M1 ~ Punkte_M1, data = Mathepunkte) %>%
  gf_smooth(se = TRUE) %>%
  gf_hline(yintercept = ~0) %>%
  gf_vline(xintercept = ~mean( ~ Punkte_M1, data = Mathepunkte)) %>%
  gf_lims(x = c(0,60), y = c(-60,60))
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Es scheint einen negativen Zusammenhang zu geben: Studierende mit besonders wenigen Punkten in Mathematik 1 haben eine positive Differenz, Studierende mit vielen Punkten in Mathematik 1 haben eher eine geringere oder negative Punktedifferenz.

Kennzahlen

Die visuellen Eindrücke werden durch die Korrelationskoeffizienten bestätigt:

cor(Punkte_M2 ~ Punkte_M1, data = Mathepunkte)
## [1] 0.6506754
cor(diffM2M1 ~ Punkte_M1, data = Mathepunkte)
## [1] -0.4617351

5. Modellierung

Mathematik 2 einfacher als Mathematik 1?

Während die Vorlesung Mathematik 1 über 44 UE lief, lief Mathematik 2 über 32 UE. Spiegelt sich das mehr an Stoff auch in einem schlechteren Ergebnis wieder? Betrachtet wird dazu je Studierenden die individuelle Differenz: \[ x_i^d=x_i^{\text{Mathematik 2}}-x_i^{\text{Mathematik 1}} \]

Für diese Variable \(X^d\) lautet dementsprechend die Nullhypothese, dass der Mittelwert \(\mu^d=0\) ist. Um dies zu überprüfen kann z. B. Bootstrapping verwendet werden.4

set.seed(1896)

BootvtlgDiff <- do(10000) * mean(~diffM2M1, data = resample(Mathepunkte))
gf_histogram( ~ mean, data = BootvtlgDiff)

confint(BootvtlgDiff)

Die \(0\) ist nicht im \(95\%\) Bootstrap Konfidenzintervall enthalten. Es gibt also Hinweise, dass in der Population die Mittelwerte abweichen. Da \(\bar{x}^d>0\) wurde im Mittelwert das bessere Ergebnis in Mathematik 2 erzielt.

Hinweis: Hier kann auch eine Selbst-Selektionsverzerrung vorliegen: Studierende mit schlechten Noten in Mathematik 1 könnten sich überlegt haben bei Mathematik 2 nicht anzutreten. Hier werden nur die analysiert, für die beide Punktzahlen vorliegen. Gleichwohl beeinflusst dies auch die beiden univariaten Ergebnisse (s.o.).

Zusammenhang Mathematik 1 und 2?

Eine lineare Regression, d. h.

\[ z_i^{\text{Mathematik 2}}= \beta_1 \cdot z_i^{\text{Mathematik 1}}+\epsilon_i \]

ergibt:

erglm <- lm(M2_Stand ~ M1_Stand - 1, data = Mathepunkte)
plotModel(erglm)

summary(erglm)
## 
## Call:
## lm(formula = M2_Stand ~ M1_Stand - 1, data = Mathepunkte)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.17581 -0.49755 -0.02292  0.62215  1.69781 
## 
## Coefficients:
##          Estimate Std. Error t value Pr(>|t|)    
## M1_Stand  0.65068    0.08095   8.038 3.87e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7594 on 88 degrees of freedom
## Multiple R-squared:  0.4234, Adjusted R-squared:  0.4168 
## F-statistic: 64.61 on 1 and 88 DF,  p-value: 3.872e-12

Ein Achsenabschnitt (\(\beta_0\)) ist nicht nötig5, da die Variablen standardisiert wurden, d.h. der Mittelwert \(=0\) ist.

\(42\%\) der Variation der Punktzahl in Mathematik 2 können durch ein lineares Modell in dieser Stichprobe modelliert werden. Mit \(\hat{\beta_1}=0.65>0\) zeigt sich: in der Stichprobe gibt es einen positiven linearen Zusammenhang zwischen den Punktzahlen Mathematik 1 und 2.

Gleichzeitig gilt aber: \(\hat{\beta_1}=0.65<1\), d.h. dass die (Punkt-)Prognose für einen Studierenden mit z.B. \(z_i^{\text{Mathematik 1}}=1>0\) lautet \(\hat{z}_i^{\text{Mathematik 2}}=0.65 \cdot 1=0.65\), also (relativ) schlechter, für einen mit z.B. \(z_i^{\text{Mathematik 1}}=-1<0\) lautet \(\hat{z}_i^{\text{Mathematik 2}}=0.65 \cdot (-1)=-0.65\), also (relativ) besser.

Ohne den Effekt der Regression zur Mitte, der bei wiederholter Messung immer auftritt wenn \(|\rho|<1\) gilt, würde gelten (rote Linie):

plotModel(erglm) %>%
  gf_abline(intercept = ~0, slope = ~1, col="red")

Bootstrapping ergibt hier:

set.seed(1896)

Bootvtlg <- do(10000) *lm(M2_Stand ~ M1_Stand -1, data = resample(Mathepunkte))
gf_histogram( ~ M1_Stand, data = Bootvtlg)

confint(Bootvtlg)

Es gilt, dass das \(95\%\) Konfidennzintervall für \(\beta_1\) (M1_Stand) weder die \(0\) noch die \(1\) enthält.

Dies Phänomen sieht man auch, wenn man \(x^d\) als lineares Modell von \(x_i^{\text{Mathematik 2}}\) darstellt: \[ x_i^d= \beta_0 + \beta_1 \cdot x_i^{\text{Mathematik 1}}+\epsilon_i \]

erglm <- lm(diffM2M1 ~ Punkte_M1, data = Mathepunkte)
plotModel(erglm)

summary(erglm)
## 
## Call:
## lm(formula = diffM2M1 ~ Punkte_M1, data = Mathepunkte)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -23.826  -5.449  -0.251   6.813  18.592 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 17.72209    3.13465   5.654 1.96e-07 ***
## Punkte_M1   -0.37791    0.07783  -4.855 5.25e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.363 on 87 degrees of freedom
## Multiple R-squared:  0.2132, Adjusted R-squared:  0.2042 
## F-statistic: 23.57 on 1 and 87 DF,  p-value: 5.25e-06

Regression zur Mitte: es ergibt sich mit \(\hat{\beta_1}=-0.38<0\) ein negativer Zusammenhang im Modell der Stichprobe (Beobachtungsdaten).

6. Schlussfolgerungen

Ja, auch bei Klausurpunkten zeigt sich die Regression zur Mitte: zwar sind erfolgreiche Studierende in der einen Klausur auch erfolgreich in der anderen, aber diejenigen die besonders viel Pech (oder Glück) in der einen hatten, haben im Mittelwert in der anderen weniger Pech (oder Glück).


Anhang: Versionshinweise

Verwendete Pakte:

Literatur

Galton, Francis. 1886. “Regression Towards Mediocrity in Hereditary Stature.” The Journal of the Anthropological Institute of Great Britain and Ireland 15: 246–63.

Kahneman, Daniel. 2011. Thinking, Fast and Slow. Farrar, Straus; Giroux New York.


  1. Der Autor glaubt, dass in der Gleichung ein Teil fehlt. Es müsste lauten: Erfolg=Talent+Einsatz+Glück.

  2. Ob es ein besonders guter Kurs, eher einfache Klausuren oder besonders gute Lehre war, weiß der Autor leider nicht mehr.

  3. Gleichwohl ist das beschriebene Phänomen universell.

  4. Eine parametrische Alternative wäre der t-Test für gepaarte/ verbundene Stichproben.

  5. In der R Formel entfernt durch -1.