# erzeuge Datenframe
<- data.frame(Kinder = c(1, 2, 4, 2, 2, 2, 3, 2, 1, 1, 0, 2, 2, 0,
df 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
<- data.frame(Patienten = c(15, 23, 12, 10, 28, 50, 12, 17, 20,
df 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
::skew(df$Patienten, type=2) # rechne wie SPSS psych
[1] 1.902838
# Kurtosis
::kurtosi(df$Patienten, type=2) # rechne wie SPSS psych
[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
<- data.frame(Bewertung = c("SS", "AP", "SS", "AP", "AP", "NT", "NT", "AP",
df "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
$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 df
# 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
<- data.frame(Geschlecht = c(rep("weiblich", 14),
df 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
%>% group_by(Geschlecht) %>%
df 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
<- c(0, 1, 2, 1, 3, 0, 1, 0, 1, 2, 0, 1, 1,
Handball 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
::skew(Handball, type=2) psych
[1] 0.5186785
# Kurtosis, wie SPSS
::kurtosi(Handball, type=2) psych
[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
<- data.frame(Unterarm=c(111, 109, 112, 111, 113, 113, 114, 111),
monitor 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
<- data.frame(Familienstand = c(rep("Single", 9),
df 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
%>% group_by(Familienstand) %>%
df 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
%>% group_by(Familienstand) %>%
df 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
<- data.frame(Rauchen = c("ja", "nein", "ja", "ja", "ja", "nein", "nein",
df "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
%>% group_by(Rauchen) %>%
df 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
%>% group_by(Alkohol) %>%
df 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
%>% group_by(Alkohol, Rauchen) %>%
df 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