Anscombe-Quartett

Das Anscombe-Quartett ist hervoragend geeignet, um Studierenden die Wichtigkeit von graphischen Auswertungen neben statistischen Kennzeichen zu verdeutlichen.
Professor Hastig
R
ubuntuusers
Autor:in

Joe Slam

Veröffentlichungsdatum

15. Oktober 2023

Ich verwende in der Lehre gerne das Anscombe-Quartett, welches der englische Statistiker Francis Anscombe im Jahr 19731 vorgestellt hat.

Es besteht aus 4 kleinen Datensätzen mit jeweils 11 Beobachtungen von 2 Variablen (x, y). Der Datensatz ist u.a. bei Wikipedia erhältlich, aber auch direkt in R implementiert.

# aktiviere den Datensatz
data("anscombe")

# Daten anzeigen
anscombe
   x1 x2 x3 x4    y1   y2    y3    y4
1  10 10 10  8  8.04 9.14  7.46  6.58
2   8  8  8  8  6.95 8.14  6.77  5.76
3  13 13 13  8  7.58 8.74 12.74  7.71
4   9  9  9  8  8.81 8.77  7.11  8.84
5  11 11 11  8  8.33 9.26  7.81  8.47
6  14 14 14  8  9.96 8.10  8.84  7.04
7   6  6  6  8  7.24 6.13  6.08  5.25
8   4  4  4 19  4.26 3.10  5.39 12.50
9  12 12 12  8 10.84 9.13  8.15  5.56
10  7  7  7  8  4.82 7.26  6.42  7.91
11  5  5  5  8  5.68 4.74  5.73  6.89

Das Anscombe-Quartett ist hervoragend geeignet, um Studierenden die Wichtigkeit von graphischen Auswertungen neben statistischen Kennzeichen zu verdeutlichen.

Vorbereitung

Ich teile die Studierenden in 4 Gruppen auf, und jede Gruppe erhält einen Anscombe-Datensatz.

Gruppe1 <- data.frame(x=anscombe$x1, y=anscombe$y1)
Gruppe2 <- data.frame(x=anscombe$x2, y=anscombe$y2)
Gruppe3 <- data.frame(x=anscombe$x3, y=anscombe$y3)
Gruppe4 <- data.frame(x=anscombe$x4, y=anscombe$y4)
Gruppe1
    x     y
1  10  8.04
2   8  6.95
3  13  7.58
4   9  8.81
5  11  8.33
6  14  9.96
7   6  7.24
8   4  4.26
9  12 10.84
10  7  4.82
11  5  5.68
Gruppe2
    x    y
1  10 9.14
2   8 8.14
3  13 8.74
4   9 8.77
5  11 9.26
6  14 8.10
7   6 6.13
8   4 3.10
9  12 9.13
10  7 7.26
11  5 4.74
Gruppe3
    x     y
1  10  7.46
2   8  6.77
3  13 12.74
4   9  7.11
5  11  7.81
6  14  8.84
7   6  6.08
8   4  5.39
9  12  8.15
10  7  6.42
11  5  5.73
Gruppe4
    x     y
1   8  6.58
2   8  5.76
3   8  7.71
4   8  8.84
5   8  8.47
6   8  7.04
7   8  5.25
8  19 12.50
9   8  5.56
10  8  7.91
11  8  6.89

Jetzt sollen die Gruppen für ihren Datensazt jeweils auf 2 Stellen gerundet

  • den Mittelwert
  • die Standardabweichung
  • den Korrelationskoeffizienten nach Pearson
  • die Formel der linearen Regressionsgeraden

berechnen, sowie eine Punktwolke mit Regressionsgeraden zeichnen.

statistische Kennzeichen

Wenn die Gruppen wieder zusammenkommen und ihre Ergebnisse präsentieren, gibt es bei den statistischen Kennwerten den ersten Aha-Moment.

Gruppe 1

round(mean(Gruppe1$x),2)
[1] 9
round(sd(Gruppe1$x),2)
[1] 3.32
round(mean(Gruppe1$y),2)
[1] 7.5
round(sd(Gruppe1$y),2)
[1] 2.03
round(cor(Gruppe1$x,Gruppe1$y),2)
[1] 0.82
fit <- lm(Gruppe1$y~Gruppe1$x)
round(fit$coefficients,2)
(Intercept)   Gruppe1$x 
        3.0         0.5 

Gruppe 2

round(mean(Gruppe2$x),2)
[1] 9
round(sd(Gruppe2$x),2)
[1] 3.32
round(mean(Gruppe2$y),2)
[1] 7.5
round(sd(Gruppe2$y),2)
[1] 2.03
round(cor(Gruppe2$x,Gruppe2$y),2)
[1] 0.82
fit <- lm(Gruppe2$y~Gruppe2$x)
round(fit$coefficients,2)
(Intercept)   Gruppe2$x 
        3.0         0.5 

Gruppe 3

round(mean(Gruppe3$x),2)
[1] 9
round(sd(Gruppe3$x),2)
[1] 3.32
round(mean(Gruppe3$y),2)
[1] 7.5
round(sd(Gruppe3$y),2)
[1] 2.03
round(cor(Gruppe3$x,Gruppe3$y),2)
[1] 0.82
fit <- lm(Gruppe3$y~Gruppe3$x)
round(fit$coefficients,2)
(Intercept)   Gruppe3$x 
        3.0         0.5 

Gruppe 4

round(mean(Gruppe4$x),2)
[1] 9
round(sd(Gruppe4$x),2)
[1] 3.32
round(mean(Gruppe4$y),2)
[1] 7.5
round(sd(Gruppe4$y),2)
[1] 2.03
round(cor(Gruppe4$x,Gruppe4$y),2)
[1] 0.82
fit <- lm(Gruppe4$y~Gruppe4$x)
round(fit$coefficients,2)
(Intercept)   Gruppe4$x 
        3.0         0.5 

Alle Gruppen haben die selben (zugegeben gerundeten) Kennwertergebnisse ausgerechnet, obwohl die Datensätze unterschiedlich sind. Das sorgt häufig für Erstaunen und führt zu ersten Diskussionen.

graphische Darstellung

Spannend wird es dann nochmal, wenn die Punktwolken verglichen werden.

plot(Gruppe1$x,Gruppe1$y,
     xlim = c(0,20),
     ylim = c(0,13))
abline(lm(Gruppe1$y~Gruppe1$x))


plot(Gruppe2$x,Gruppe2$y,
     xlim = c(0,20),
     ylim = c(0,13))
abline(lm(Gruppe2$y~Gruppe2$x))


plot(Gruppe3$x,Gruppe3$y,
     xlim = c(0,20),
     ylim = c(0,13))
abline(lm(Gruppe3$y~Gruppe3$x))


plot(Gruppe4$x,Gruppe4$y,
     xlim = c(0,20),
     ylim = c(0,13))
abline(lm(Gruppe4$y~Gruppe4$x))
(a) Gruppe 1
(b) Gruppe 2
(c) Gruppe 3
(d) Gruppe 4
Abbildung 1: Anscombe Quartett

Alle Diagramme sehen unterschiedlich aus, und ihre Darstellung regt weitere Diskussionen an:

  • Diagramm 1 sieht aus wie ein klassisches Streudiagramm. Die lineare Regressionsgerade sieht passend aus, die Variablen scheinen zu korrelieren. Hier ist alles in Ordnung.
  • Diagramm 2 lässt erkennen, dass der Zusammenhang zwischen x und y nicht linear ist. Somit lassen sich keine Korrelationen oder lineare Regressionen auf die Daten anwenden.
  • Diagramm 3 zeigt einen deutlichen Ausreisser, der die Ergebnisse von Korrelation und Regression verzerrt.
  • Diagramm 4 zeigt ebenfalls einen deutlichen Ausreisser, während alle anderen y-Werte im selben x übereinander liegen. Ohne den Ausreisser wäre keine Korrelation oder Regression rechenbar.

Diskussion

Mit dieser kleinen Übung gelingt es häufig, Studierenden die Wichtigkeit der graphischen Datenanalyse nahezulegen, die vor der eigentlichen statistischen Auswertung erfolgen sollte. Statistische Kennzahlen reichen nicht aus, um die Daten ausreichend zu beschreiben.

heutzutage

Heutzutage ist es mit Hilfe von evolutionären Algorithmen möglich, weit komplexere Datensätze zu erzeugen, die in ihren Kennwerten übereinstimmen, deren Streudiagramme aber beliebige Formen annehmen können.

Mein Favorit ist der Datasaurus2.

library(ggplot2)
load(url("https://www.produnis.de/nagut/datasaurus.RData"))

datasaurus |> 
  ggplot(aes(x=x, y=y)) +
  geom_point() +
  facet_wrap(~dataset)
Abbildung 2

Fußnoten

  1. F. J. Anscombe: Graphs in Statistical Analysis. In: American Statistician. 27. Jahrgang, Nr. 1, 1973, S. 17–21↩︎

  2. Matejka, J., & Fitzmaurice, G. (2017). Same Stats, Different Graphs: Generating Datasets with Varied Appearance and Identical Statistics through Simulated Annealing. Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems, 1290–1294. https://doi.org/10.1145/3025453.3025912↩︎