# erzeuge Datenframe
df <- data.frame(Kinder = c(1, 2, 4, 2, 2, 2, 3, 2, 1, 1, 0, 2, 2, 0,
2, 2, 1, 2, 2, 3, 1, 2, 2, 1, 2))46 Lösungen Stichprobenstatistik
Hier finden Sie die Lösungen zu den Übungsaufgaben von Abschnitt 44.2.
Die hier vorgestellten Lösungen stellen immer nur eine mögliche Vorgehensweisen dar und sind sicherlich nicht der Weisheit letzter Schluss. In R führen viele Wege nach Rom, und wenn Sie mit anderem Code zu den richtigen Ergebnissen kommen, dann ist das völlig in Ordnung.
46.1 Lösung zur Aufgabe 44.2.1
Kinder und übertragen Sie die Daten.
# arithmetisches Mittel
mean(df$Kinder)[1] 1.76
# Varianz
var(df$Kinder)[1] 0.7733333
# Standardabweichung
sd(df$Kinder)[1] 0.8793937
# Quartile (so wie SPSS rechnet)
quantile(df$Kinder, type=6) 0% 25% 50% 75% 100%
0 1 2 2 4
# Spannweite
range(df$Kinder)[1] 0 4
# Interquartilsabstand (so wie SPSS rechnet)
IQR(df$Kinder, type=6)[1] 1
# drittes Dezil und 68tes Perzentil
quantile(df$Kinder, probs=c(0.3, 0.68), type=6)30% 68%
1 2
46.2 Lösung zur Aufgabe 44.2.2
Patienten und übertragen Sie die Daten.
# erzeuge Datenframe
df <- data.frame(Patienten = c(15, 23, 12, 10, 28, 50, 12, 17, 20,
21, 18, 13, 11, 12, 26, 30, 6, 16,
19, 22, 14, 17, 21, 28, 9, 16, 13,
11, 16, 20))# arithmetisches Mittel
mean(df$Patienten)[1] 18.2
# Varianz
var(df$Patienten)[1] 71.82069
# Standardabweichung
sd(df$Patienten)[1] 8.474709
# Variationskoeffizient in Prozent
(sd(df$Patienten) / mean(df$Patienten)) * 100[1] 46.56433
# Skewness
psych::skew(df$Patienten, type=2) # rechne wie SPSS[1] 1.902838
# Kurtosis
psych::kurtosi(df$Patienten, type=2) # rechne wie SPSS[1] 5.796082
Die Skewness beträgt 1.902838, was für eine rechtsschiefe Verteilung spricht. Die Kurtosis beträgt 5.796082 und ist somit größer als 3. Das bedeutet, die Verteilung hat eine schmale Spitze und fette Ränder.
46.3 Lösung zur Aufgabe 44.2.3
Bewertung und übertragen Sie die Daten.
# erzeuge Datenframe
df <- data.frame(Bewertung = c("SS", "AP", "SS", "AP", "AP", "NT", "NT", "AP",
"SB", "SS", "SB", "SS", "AP", "AP", "NT", "AP",
"SS", "NT", "SS", "NT"))Bewertung in Punkte um nach dem Schema “SS” = 2,5 | “AP” = 6 | “NT”= 8 | “SB” = 9,5.
# Umkodieren
df$Punkte[df$Bewertung=="SS"] <- 2.5
df$Punkte[df$Bewertung=="AP"] <- 6
df$Punkte[df$Bewertung=="NT"] <- 8
df$Punkte[df$Bewertung=="SB"] <- 9.5# Median
median(df$Punkte)[1] 6
# Interquartilsabstand, so wie SPSS ihn rechnen würde
IQR(df$Punkte, type=6)[1] 5.5
46.4 Lösung zur Aufgabe 44.2.4
Geschlecht und Koerpergroesse und übertragen Sie die Daten.
# erzeuge Datenframe
df <- data.frame(Geschlecht = c(rep("weiblich", 14),
rep("männlich", 16)),
Koerpergroesse = c(173, 158, 174, 166, 162, 177, 165, 154, 166,
182, 169, 172, 170, 168, 179, 181, 172, 194, 185, 187, 198,
178, 188, 171, 175, 167, 186, 172, 176, 187))Geschlecht das arithmetische Mittel, den Median, die Varianz, die Standardabweichung sowie die Quartile.
# mit dplyr
df %>% group_by(Geschlecht) %>%
reframe(aritMittel = mean(Koerpergroesse),
Median = median(Koerpergroesse),
Varianz = var(Koerpergroesse),
StdAbw = sd(Koerpergroesse),
Q1 = quantile(Koerpergroesse, probs=0.25, type=6),
Q3 = quantile(Koerpergroesse, probs=0.75, type=6)
)# A tibble: 2 × 7
Geschlecht aritMittel Median Varianz StdAbw Q1 Q3
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 männlich 181 180 76.8 8.76 173. 187
2 weiblich 168. 168. 54.4 7.37 164. 173.
46.5 Lösung zur Aufgabe 44.2.5
# Daten übertragen
Handball <- c(0, 1, 2, 1, 3, 0, 1, 0, 1, 2, 0, 1, 1,
1, 2, 0, 1, 3, 2, 1, 2, 1, 0, 1)
# Mittelwert
mean(Handball)[1] 1.125
# Median
median(Handball)[1] 1
# Varianz
var(Handball)[1] 0.8097826
# Standardabweichung
sd(Handball)[1] 0.8998792
# Skewness, wie SPSS
psych::skew(Handball, type=2)[1] 0.5186785
# Kurtosis, wie SPSS
psych::kurtosi(Handball, type=2)[1] -0.226357
quantile(Handball, probs=c(0.4, 0.8), type=6)40% 80%
1 2
46.6 Lösung zur Aufgabe 44.2.6
# Daten übertragen
monitor <- data.frame(Unterarm=c(111, 109, 112, 111, 113, 113, 114, 111),
Handgelenk=c(115, 113, 117, 116, 112, 112, 117, 112)
)
# Standardabweichungen vergleichen
sd(monitor$Unterarm)[1] 1.581139
sd(monitor$Handgelenk)[1] 2.251983
Die Daten des Monitors am Handgelenk haben eine größere Streuung als jene vom Monitor am Unterarm.
46.7 Lösung zur Aufgabe 44.2.7
Alters für jeden Familienstand.
# Daten übertragen
df <- data.frame(Familienstand = c(rep("Single", 9),
rep("Verheiratet", 7),
rep("Verwitwet", 7),
rep("Geschieden", 5)),
Alter = c(31, 45, 35, 65, 21, 38, 62, 22, 31,
72, 39, 62, 59, 25, 44, 54,
80, 68, 65, 40, 78, 69, 75,
31, 65, 59, 58, 50)
)
# dplyr
df %>% group_by(Familienstand) %>%
reframe(Mittel = mean(Alter),
Median = median(Alter),
Varianz = var(Alter),
StdAbw = sd(Alter))# A tibble: 4 × 5
Familienstand Mittel Median Varianz StdAbw
<chr> <dbl> <dbl> <dbl> <dbl>
1 Geschieden 52.6 58 174. 13.2
2 Single 38.9 35 250. 15.8
3 Verheiratet 50.7 54 251. 15.8
4 Verwitwet 67.9 69 181. 13.5
df %>% group_by(Familienstand) %>%
reframe(Mittel = mean(Alter),
Median = median(Alter),
Varianz = var(Alter),
StdAbw = sd(Alter),
Skew = psych::skew(Alter, type=2),
Kurto = psych::kurtosi(Alter, type=2))# A tibble: 4 × 7
Familienstand Mittel Median Varianz StdAbw Skew Kurto
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Geschieden 52.6 58 174. 13.2 -1.41 2.03
2 Single 38.9 35 250. 15.8 0.765 -0.524
3 Verheiratet 50.7 54 251. 15.8 -0.425 -0.313
4 Verwitwet 67.9 69 181. 13.5 -1.76 3.66
In der Gruppe der Geschiedenen ist die Streuung am geringsten, aber das arithmetische Mittel ist weit vom Median entfernt. Insofern scheint der Mittelwert der Verwitweten am “besten” zu sein, da er sowohl eine geringe Differenz zum Median als auch eine niedrige Varianz und Standardabweichung aufweist. Die Gruppe der Verheirateten weist hingegen die geringste Schiefe auf. Ach hier könnten wir argumentieren, dass dies für den “besten” Mittelwert spräche.
46.8 Lösung zur Aufgabe 44.2.8
Blutdrucks zwischen Rauchern und Nichtrauchern.
# Daten übertragen
df <- data.frame(Rauchen = c("ja", "nein", "ja", "ja", "ja", "nein", "nein",
"ja", "nein", "ja", "nein", "ja", "nein",
"ja", "nein", "nein", "ja", "nein", "nein",
"nein", "ja", "nein", "ja", "nein", "ja" ),
Alkohol = c("nein", "nein", "ja", "ja", "nein", "nein", "ja",
"ja", "nein", "ja", "nein", "ja", "ja" , "ja",
"nein", "ja", "ja", "nein", "nein", "ja", "ja",
"ja", "nein", "ja", "nein" ),
Blutdruck = c(80, 92, 75, 56, 89, 93, 101, 67, 89, 63, 98, 58,
91, 71, 52, 98, 104, 57, 89, 70, 93, 69, 82, 70,
49 )
)
# dplyr
df %>% group_by(Rauchen) %>%
reframe(Mittel = mean(Blutdruck),
StdAbw = sd(Blutdruck),
Skew = psych::skew(Blutdruck, type=2),
Kurto = psych::kurtosi(Blutdruck, type=2))# A tibble: 2 × 5
Rauchen Mittel StdAbw Skew Kurto
<chr> <dbl> <dbl> <dbl> <dbl>
1 ja 73.9 16.4 0.281 -0.624
2 nein 82.2 16.5 -0.700 -0.935
# dplyr
df %>% group_by(Alkohol) %>%
reframe(Mittel = mean(Blutdruck),
StdAbw = sd(Blutdruck),
Skew = psych::skew(Blutdruck, type=2),
Kurto = psych::kurtosi(Blutdruck, type=2))# A tibble: 2 × 5
Alkohol Mittel StdAbw Skew Kurto
<chr> <dbl> <dbl> <dbl> <dbl>
1 ja 77.6 16.4 0.455 -1.32
2 nein 79.1 17.7 -0.948 -0.804
# dplyr
df %>% group_by(Alkohol, Rauchen) %>%
reframe(Mittel = mean(Blutdruck),
StdAbw = sd(Blutdruck),
Skew = psych::skew(Blutdruck, type=2),
Kurto = psych::kurtosi(Blutdruck, type=2))# A tibble: 4 × 6
Alkohol Rauchen Mittel StdAbw Skew Kurto
<chr> <chr> <dbl> <dbl> <dbl> <dbl>
1 ja ja 73.4 17.0 1.01 0.00270
2 ja nein 83.2 15.1 0.173 -2.87
3 nein ja 75 17.8 -1.71 3.21
4 nein nein 81.4 18.7 -1.14 -0.748