Mittelwerts-Modell

Wie bereits erwähnt, wäre unter bestimmten Voraussetzungen (Verteilungseigenschaften) der Mittelwert ein guter Schätzer, da dieser die folgende Eigenschaft besitzt:

  • Die Summe der quadrierten Abweichungen der Beobachtungswerte \(x_i\) von einem beliebigen Punkt \(m\) wird minimal, wenn dieser Punkt \(m = \bar{x}\), also der arithmetische Mittelwert ist!

Formal berechnet sich das arithmetische Mittel:

\[\begin{equation} \bar{x} = \frac{1}{N} \sum_{i=1}^{N} x_i \tag{1} \end{equation}\]

Die Aussagekraft des arithmetischen Mittels beschränkt sich jedoch ganz wesentlich, wenn nicht weitere Kennwerte der Daten bekannt sind. Vor allem ist es von Interesse, die Streung (Variabilität) der Werte um den Mittelwert zu kennen. Diese wird durch das Streuungsmaß, welches als durchschnittliche Abweichung der Messwerte um den Mittelwert gesehen werden kann, beschrieben:

\[\begin{equation} s = \sqrt{\sum_{i=1}^{N} (x_i \frac{x_i - \bar{x})^2}{N-1}} \tag{2} \end{equation}\]

Modell idealer Daten

Betrachten wir zunächst einen Datensatz, in dem das Gehalt (wage) symmetrisch und in Form einer Glockenkurve gegeben ist. Kopiere den nachfolgenden Code in dein R-Script und führe diesen dann aus.

  options(digits = 2)
  DF      <- CPS85
  set.seed(825)
  DF$wage <- rnorm(n = nrow(DF), mean = 8, sd = 2.3)
  Income  <- DF$wage
  
  # Kennwerte berechnen
  MW <- mean(Income)
  SD <- sd(Income)
  MD <- median(Income)
  RA <- range(Income)
  # Daten anzeigen
  # p1 <- hist(Income)
  # p2 <- boxplot(Income)
  
  # starke Abweichungen entfernen
  TrimmedIncome <- Income[!Income %in% boxplot.stats(Income)$out]
  # Kennwerte berechnen
  MW_T <- mean(TrimmedIncome)
  SD_T <- sd(TrimmedIncome)
  MD_T <- median(TrimmedIncome)
  RA_T <- range(TrimmedIncome)
  # Daten anzeigen
  # p3   <- hist(TrimmedIncome)
  # p4   <- boxplot(TrimmedIncome)

Die Ergebnisse der statistischen Kennwerte \(\bar{x}\) = (8.0952214), \(med\) = (8.2289139), \(sd\) = (2.3218623) und vor allem (das hier nicht angezeigte) angezeigte Histogramm lassen vermuten, dass der Mittelwert als Modell durchaus geeignet ist. Vor allem wenn man noch durch Beschneidung (trim) der Daten die kleinsten und größten Werte entfernt, nehmen der Mittelwert \(\bar{x}_{trim}\) = 8.1089335 und Median \(med_{trim}\) = 8.2306598 den gleichen Wert ein.

Modell schiefer Daten

Um die Eigenschaften des Mittelwertes bei vorliegen von starken Abweichungen in den Daten noch besser zu verdeutlichen, verwenden wir einerseits die Originaldaten (welche für sich schon schiefverteilt sind) und setzen zusätzlich bei 50 zufällig gewählten Personen das Einkommen drastisch hinauf. Kopiere den folgenden Code ins RStudio und führe diesen dann aus.

  IncomeNew     <- CPS85$wage
  ID            <- sample(1:534, 50)
  IncomeNew[ID] <- IncomeNew[ID] + 18

Aufgabenstellung 1

Berechne für die neuen Daten folgende Kennwerte und zeichne sowohl ein Histogramm, als auch einen Boxplot.

  • Mittelwert
  • Standardabweichung
  • Median
  • Range
  • Getrimmten Mittelwert, wobei jeweils 10% der Daten vom unteren und oberen Wertebereich unberücksichtigt bleiben sollen.

Diskutiere die Ergebnisse. Die Lösung zu diesen Aufgaben findest du in Lösung Aufgabe 1.

Graphische Darstellung

Zur Veranschaulichung von Verteilungseigenschaften einer Variablen eignen sich vor allem Histogramme, Boxplots und Q-Q-Plots. In Kombination mit den entsprechenden Tabellen, können bereits durch die einfache deskriptive Statistik wertvolle Aussagen über die statistischen Eigenschaften der Daten gewonnen werden. Kopiere den folgenden Code ins RStudio und führe diesen dann aus. Diskutiere die Ergebnisse.

  # Histogramme und Density-Plots
  p1 <- ggplot(CPS85, aes(x = wage)) + geom_histogram()
  p2 <- ggplot(CPS85, aes(x = age)) + geom_histogram(binwidth = 4)
  p3 <- ggplot(CPS85, aes(x = exper)) + geom_density()
  # Boxplots
  x1 <- mosaic::mean_(wage ~ sex, data = CPS85)
  x2 <- mosaic::sd(wage ~ sex, data = CPS85)
  x3 <- mosaic::quantile(wage ~ sex, data = CPS85)
  x4 <- mosaic::favstats(wage ~ sex, data = CPS85)
  x5 <- gf_boxplot(wage ~ sex, data = CPS85)
  x6 <- gf_point(wage ~ sex, data = CPS85)
  # Q-Q Plots
  qqnorm(CPS85$wage, pch = 1, frame = FALSE)
  qqline(CPS85$wage, col = "steelblue", lwd = 2)

Bemerkung Ausreißer

Eine der häufigsten Ursachen für Verzerrungen in den Verteilungseigenschaften einer Variablen sind Ausreißer. Die Behandlung von Ausreißern ist ein eigenes und heftig diskutiertes Thema in der Statistik. Eine (wenngleich nicht unbedenkliche) Methode ist das bereits verwendete Trimmen der Daten. Nachfolgendes Beispiel zeigt eine weitere Möglichkeit3, Ausreißer aus einer Analyse zu entfernen. Es sei an dieser Stelle nochmals explizit darauf hingewiesen, dass ein beliebiges Weglassen von störenden Werten durchaus bedenklich ist und eigentlich nur im Sinne einer explorativen Analyse von Daten (was wäre, wenn die Daten keine Ausreißer hätten?) gerechtfertigt werden kann! Kopiere den folgenden Code ins RStudio und führe diesen dann aus. Diskutiere die Ergebnisse.

  # panderOptions("table.split.table", 120)
  # pander(head(CPS85), style = "rmarkdown")
  MW_Wage    <- mean(CPS85$wage, na.rm = TRUE)
  Med_Wage   <- median(CPS85$wage, na.rm = TRUE)
  SD_Wage    <- sd(CPS85$wage, na.rm = TRUE)
  CPS85_1    <- CPS85[!CPS85$wage %in% boxplot.stats(CPS85$wage)$out,]
  MW_Wage_1  <- mean(CPS85_1$wage, na.rm = TRUE)
  Med_Wage_1 <- median(CPS85_1$wage, na.rm = TRUE)
  SD_Wage_1  <- sd(CPS85_1$wage, na.rm = TRUE)
  # Modell0_Graph_1 ----
  ggplot(CPS85, aes(x = wage)) +
    geom_histogram(aes(y    = ..density..),
                   binwidth = .5,
                   colour   = "black", fill = "white") +
    geom_density(alpha = .2, fill = "#FF6666") +
    geom_vline(aes(xintercept = mean(wage, na.rm = T)),
               color = "red", linetype = "dashed", size = 1) +
    geom_vline(aes(xintercept=median(wage, na.rm=T)),
               color = "blue", linetype = "dotted", size = 1) +
    theme_bw()
  # Modell0_Graph_2
  ggplot(CPS85_1, aes(x = wage)) +
    geom_histogram(aes(y    = ..density..),
                   binwidth = .5,
                   colour   = "black", 
                   fill     = "white") +
    geom_density(alpha = .2,
                 fill  = "#FF6666") +
    geom_vline(aes(xintercept = mean(wage, na.rm = T)),
               color    = "red",
               linetype = "dashed",
               size = 1) +
    geom_vline(aes(xintercept = median(wage, na.rm = T)),
               color    = "blue",
               linetype = "dotted",
               size     = 1) +
    theme_bw()
  
  pander(shapiro.test(CPS85_1$wage), style = "rmarkdown")

Güteschätzung des Mittelwertsmodells

Ein wichtiger Bestandteil einer Modellbildung ist die Abschätzung der Güte des jeweilig erstellten Modells. Für das Mittelwertsmodell eignet sich der Standardfehler (siehe Eq. (3)) als Kennwert zu Abschätzung der Genauigkeit des Modells.

\[\begin{eqnarray} SE &=& \frac{s}{\sqrt{N}} \\ s &=& \frac{\sum_{i = 1}^{N} (x_i - \bar{x})^2}{N-1} \\ \tag{3} \end{eqnarray}\]

Der Standardfehler (englisch: standard error, meist \(SE\) abgekürzt) ist die Standardabweichung der Stichprobenkennwertverteilung einer Stichprobenfunktion. In der Regel bezieht sich der Standardfehler dabei auf den Mittelwert und wird meistens dann als standard error of the mean (\(SEM\) abgekürzt) bezeichnet.

Erläuterung zum \(SE\)

Wenn wir viele zufällige Stichproben aus derselben Grundgesamtheit ziehen und jeweils den Mittelwert berechnen, würden diese Mittelwerte in der Regel unterschiedlich sein.

Die Mittelwerte haben ihre eigene Verteilung (die wiederum ihren eigenen Mittelwert und ihre eigene Standardabweichung hat). Der Standardfehler des Mittelwerts (also der SEM und damit die Schätzung des Mittelwerts der Grundgesamtheit aus dem Mittelwert der Stichprobe) ist die Standardabweichung der Mittelwerte für alle möglichen Stichproben (mit jeder möglichen Stichprobengröße) die aus der Grundgesamtheit gezogen werden können.

Offenbar spielt bei der Berechnung dieser Kennwerte die Stichprobengröße \(N\) eine Rolle. Welche Werte nimmt \(s\) und respektive \(SE\) ein, wenn \(N \rightarrow \infty\) geht?

Wir halten fest, dass die Stichprobenstreuung \(s\) abhängig ist von:

  • der Streuung \(\sigma\) in der Grundgesamtheit
  • der Stichprobengröße \(N\)

Die Streuung in der Grundgesamtheit ist (auch wenn meist unbekannt) ein fixer Wert. Wird \(N\) sehr groß nähert sich die Standardabweichung diesem Wert. Im Extremfall, also wenn \(N = N_{Pop}\), streuen die Werte genau mit \(\sigma\)!

Beim Standardfehler hingegen nähert sich mit zunehmenden \(N\) der Wert von \(SE\) der Null! Im Extremfall, also wenn \(N = N_{Pop}\), gibt es nur mehr einen Mittelwert (und der ist gleich \(\mu\)), welcher auch nicht mehr streut \(\Rightarrow\) die Streuung \(SE = 0\).

Konfidenzintervall um den Mittelwert

Aus Stichproben errechnen wir einen oder mehrere verschiedene Werte, die Schätzwerte für die Grundgesamtheit darstellen sollen. Man spricht hier von Punktschätzer, da eben jeweils genau ein Wert (Anteils-, Mittelwert oder andere Größe, z. B. Regressionskoeffizient) geschätzt wird.

Wünschenswerte Eigenschaften von Schätzern sind:

  • Erwartungstreue: Der Erwartungswert (Mittelwert) der Kennwerteverteilung soll dem wahren Parameter in der Grundgesamtheit entsprechen.
  • Effizienz: Die Streuung des Schätzers soll möglichst klein sein (d. h., die Schätzwerte sollen möglichst häufig möglichst nahe am wahren Wert liegen)
  • Konsistenz: Mit zunehmendem Stichprobenumfang sollen Abweichungen vom wahren Wert geringer werden.

Der Punktschätzer ist der beste Schätzer für den (unbekannte) Parameter der Grundgesamtheit. Dennoch ist es recht unwahrscheinlich, dass der Punktschätzer genau dem Parameter entspricht4. Daher sollte man die Punktschätzung durch eine Intervallschätzung ergänzen, die eine größere Wahrscheinlichkeit aufweist – um den Preis einer größeren Bandbreite.

Die Intervallschätzung zielt nun darauf ab, einen Bereich anzugeben, der mit einer gewissen (von der Forscherin gewählten) Wahrscheinlichkeit den wahren Wert enthält (überdeckt). Dieser Bereich heißt Konfidenzintervall. Die Wahrscheinlichkeit, mit der das Intervall den wahren Wert enthält, sollte in der Regel möglichst hoch sein. Der trade-off: Je größer die gewählte Wahrscheinlichkeit, desto breiter das resultierende Intervall.

Das Konfidenzintervall berechnet sich aus:

\[\begin{equation} KI = \bar{x} \pm SE \cdot t_{1 - \frac{\alpha}{2}; n - 1} \tag{4} \end{equation}\]

Die Eigenschaften des Konfidenzintervalls lassen sich sehr schön in einer Simulation von Geoff Cumming veranschaulichen.


  1. wir haben bereits bei der Mittelwertsfunktion mean() das Argument trim kennengelernt.

  2. siehe Prof. Dr. Wolfgang Ludwig-Mayerhofer, Uni Siegen, Punkt- und Intervallschätzungen, oder Springer