Table of Content
- 1 Introduction
- 2 Frequency Tables
- 2.1 Absolute Frequency
- 2.2 Relative Frequency
- 2.3 Cumulate Frequency
- 2.4 Integration of frequencies within a single table
- 3 Description of nominal data
- 3.1 Mode
- 3.2 Relative information content
- 4 Description of ordinal data
- 4.1 Percentile ranks
- 4.2 Median
- 4.3 Range
- 4.4 Quantile
- 5 Description of interval data
- 5.1 Arithmetical mean
- 5.2 Standard deviation
- 5.3 Skewness and Kurtosis
- 5.4 describe function
- 5.5 summary function
- 5.6 Group comparisons
- 5.6.1 describeBy function
- 5.6.2 tapply function
- 6 Conclusion
1 Introduction
Die univariate deskriptive Statistik ist die Beschreibung einzelner Variablen. Abhängig von der jeweiligen Skalierung, können unterschiedliche Lage- und Streumaße verwendet werden. Aufbauend auf dem vorangegangenen Post “Measures of Dispersion”, in dem hauptsächlich die mathematische Betrachtung der verschiedenen Streumaße behandelt wurde, ist hier die praktische Anwendung zentral.
Für diesen Post wurde der Datensatz countries of the world von der Statsistik Plattform Kaggle https://www.kaggle.com verwendet. Eine Kopie des Datensatzes ist unter https://drive.google.com/open?id=1QO_t4hySiqVsSDsVOsKZEOHOkLlWO006 abrufbar.
library("psych")
library("CTT")
library("QuantPsyc")
library("tidyverse")
world <- read_csv("countries of the world.csv")
glimpse(world)
## Observations: 227
## Variables: 20
## $ Country <chr> "Afghanistan", "Albania",...
## $ Region <chr> "ASIA (EX. NEAR EAST)", "...
## $ Population <int> 31056997, 3581655, 329300...
## $ `Area (sq. mi.)` <int> 647500, 28748, 2381740, 1...
## $ `Pop. Density (per sq. mi.)` <chr> "48,0", "124,6", "13,8", ...
## $ `Coastline (coast/area ratio)` <chr> "0,00", "1,26", "0,04", "...
## $ `Net migration` <chr> "23,06", "-4,93", "-0,39"...
## $ `Infant mortality (per 1000 births)` <dbl> 16307, 2152, 31, 927, 405...
## $ `GDP ($ per capita)` <int> 700, 4500, 6000, 8000, 19...
## $ `Literacy (%)` <dbl> 360, 865, 700, 970, 1000,...
## $ `Phones (per 1000)` <chr> "3,2", "71,2", "78,1", "2...
## $ `Arable (%)` <chr> "12,13", "21,09", "3,22",...
## $ `Crops (%)` <chr> "0,22", "4,42", "0,25", "...
## $ `Other (%)` <dbl> 8765, 7449, 9653, 75, 977...
## $ Climate <dbl> 1, 3, 1, 2, 3, NA, 2, 2, ...
## $ Birthrate <dbl> 466, 1511, 1714, 2246, 87...
## $ Deathrate <dbl> 2034, 522, 461, 327, 625,...
## $ Agriculture <chr> "0,38", "0,232", "0,101",...
## $ Industry <chr> "0,24", "0,188", "0,6", N...
## $ Service <chr> "0,38", "0,579", "0,298",...
2 Frequency Tables
Häufigkeitstabellen sind eine gute Darstellungsform, um einen ersten Eindruck von der Verteilung der zu beschreibenden Variablen zu bekommen. Man unterscheidet zwischen absoluten und relativen Häufigkeiten. Die absolute Häufigkeit bezeichnet die Anzahl der Ausprägung, beispielsweise 4 Männer und 6 Frauen. Die relative Häufigkeit dagegen beschreibt den Anteil der jeweiligen Ausprägung an der gesamten Stichprobe, zum Beispiel 40% Männer und 60% Frauen.
2.1 Absolute Frequency
Wir möchten uns die absoluten Häufigkeiten der Variable Region
ausgeben lassen. Wie wir mittels des Befehles glimpse sehen können, beinhaltet der Datensatz countries of the world verschiedene Informationen über diverse Länder. Unter der Variable Region
sind mehrere Länder nach “Region” zusammengefasst.
Eine Tabelle mit den absoluten Häufigkeiten kann mit der table Funktion angefordert werden:
table(world$Region)
##
## ASIA (EX. NEAR EAST) BALTICS C.W. OF IND. STATES
## 28 3 12
## EASTERN EUROPE LATIN AMER. & CARIB NEAR EAST
## 12 45 16
## NORTHERN AFRICA NORTHERN AMERICA OCEANIA
## 6 5 21
## SUB-SAHARAN AFRICA WESTERN EUROPE
## 51 28
Wir sehen, dass die Länder in 11 unterschiedliche Regionen aufgeteilt sind. Die Ergebnisse kann man sich auch sortiert nach aufsteigend oder absteigend ausgeben lassen:
sort(table(world$Region))
##
## BALTICS NORTHERN AMERICA NORTHERN AFRICA
## 3 5 6
## C.W. OF IND. STATES EASTERN EUROPE NEAR EAST
## 12 12 16
## OCEANIA ASIA (EX. NEAR EAST) WESTERN EUROPE
## 21 28 28
## LATIN AMER. & CARIB SUB-SAHARAN AFRICA
## 45 51
sort(table(world$Region), decreasing=TRUE)
##
## SUB-SAHARAN AFRICA LATIN AMER. & CARIB ASIA (EX. NEAR EAST)
## 51 45 28
## WESTERN EUROPE OCEANIA NEAR EAST
## 28 21 16
## C.W. OF IND. STATES EASTERN EUROPE NORTHERN AFRICA
## 12 12 6
## NORTHERN AMERICA BALTICS
## 5 3
2.2 Relative Frequency
Die relativen Häufigkeiten können mit der prop.table Funktion angefordert werden:
prop.table(table(world$Region))
##
## ASIA (EX. NEAR EAST) BALTICS C.W. OF IND. STATES
## 0.12334802 0.01321586 0.05286344
## EASTERN EUROPE LATIN AMER. & CARIB NEAR EAST
## 0.05286344 0.19823789 0.07048458
## NORTHERN AFRICA NORTHERN AMERICA OCEANIA
## 0.02643172 0.02202643 0.09251101
## SUB-SAHARAN AFRICA WESTERN EUROPE
## 0.22466960 0.12334802
Möchten wir dieses Ergebnis in Prozent ausgegeben haben, müssen wir den Befehl mit 100 multiplizieren:
100*prop.table(table(world$Region))
##
## ASIA (EX. NEAR EAST) BALTICS C.W. OF IND. STATES
## 12.334802 1.321586 5.286344
## EASTERN EUROPE LATIN AMER. & CARIB NEAR EAST
## 5.286344 19.823789 7.048458
## NORTHERN AFRICA NORTHERN AMERICA OCEANIA
## 2.643172 2.202643 9.251101
## SUB-SAHARAN AFRICA WESTERN EUROPE
## 22.466960 12.334802
Zur besseren Übersicht, kann man sich das Ergebnis auch gerundet ausgeben lassen. Dies geht mit dem Befehl round, wobei die Ziffer am Ende der Syntax die Anzahl der Nachkommastellen angibt.
round(100*prop.table(table(world$Region)), 2)
##
## ASIA (EX. NEAR EAST) BALTICS C.W. OF IND. STATES
## 12.33 1.32 5.29
## EASTERN EUROPE LATIN AMER. & CARIB NEAR EAST
## 5.29 19.82 7.05
## NORTHERN AFRICA NORTHERN AMERICA OCEANIA
## 2.64 2.20 9.25
## SUB-SAHARAN AFRICA WESTERN EUROPE
## 22.47 12.33
2.3 Cumulate Frequency
Zusätzlich zu den absoluten und relativen Häufigkeiten, kann man sich auch noch die kumulierten Häufigkeiten ausgeben lassen. Dabei wird die relative Häufigkeit zu den vorangegangenen relativen Häufigkeiten hinzuaddiert.
Zur besseren Veranschaulichung werden die relativen Häufigkeiten der Regionen aufsteigend sortiert und auf zwei Nachkommastellen gerundet:
sort(round(100*prop.table(table(world$Region)), 2))
##
## BALTICS NORTHERN AMERICA NORTHERN AFRICA
## 1.32 2.20 2.64
## C.W. OF IND. STATES EASTERN EUROPE NEAR EAST
## 5.29 5.29 7.05
## OCEANIA ASIA (EX. NEAR EAST) WESTERN EUROPE
## 9.25 12.33 12.33
## LATIN AMER. & CARIB SUB-SAHARAN AFRICA
## 19.82 22.47
Mit dem Befehl cumsum können wir nun die kumulierten Häufigkeiten anfordern:
cumsum(sort(round(100*prop.table(table(world$Region)), 2)))
## BALTICS NORTHERN AMERICA NORTHERN AFRICA
## 1.32 3.52 6.16
## C.W. OF IND. STATES EASTERN EUROPE NEAR EAST
## 11.45 16.74 23.79
## OCEANIA ASIA (EX. NEAR EAST) WESTERN EUROPE
## 33.04 45.37 57.70
## LATIN AMER. & CARIB SUB-SAHARAN AFRICA
## 77.52 99.99
Wir sehen, dass die “Baltics” Region mit 1,32% bei der kumulierten Ausgabe zu den 2,20% der “Northern America” Region hinzuaddiert wurde. Das Ergebnis von 3,52% unter “Northern America” sagt nun aus, dass “Baltics” und “Northern America” zusammen einen Anteil von 3,52% an der Stichprobe ausmachen.
2.4 Integration of frequencies within a single table
Die vier verschiedenen Arten von Häufigkeiten (absolute, relative, prozentuale und kumulierte) können auch gemeinsam in einer Tabelle ausgegeben werden. Allerdings muss man hierfür mehrere Befehle ausführen:
absolut <- table(world$Region)
relativ <- prop.table(absolut)
prozent <- 100*relativ
kumuliert <- cumsum(prozent)
haeufigkeiten <- cbind(absolut, relativ, prozent, kumuliert)
round(haeufigkeiten, 2)
## absolut relativ prozent kumuliert
## ASIA (EX. NEAR EAST) 28 0.12 12.33 12.33
## BALTICS 3 0.01 1.32 13.66
## C.W. OF IND. STATES 12 0.05 5.29 18.94
## EASTERN EUROPE 12 0.05 5.29 24.23
## LATIN AMER. & CARIB 45 0.20 19.82 44.05
## NEAR EAST 16 0.07 7.05 51.10
## NORTHERN AFRICA 6 0.03 2.64 53.74
## NORTHERN AMERICA 5 0.02 2.20 55.95
## OCEANIA 21 0.09 9.25 65.20
## SUB-SAHARAN AFRICA 51 0.22 22.47 87.67
## WESTERN EUROPE 28 0.12 12.33 100.00
3 Description of nominal data
Von Nominaldaten wird gesprochen, wenn mögliche Ausprägungen zwar unterschieden werden können, aber diese keine natürliche Rangfolge aufweisen.
3.1 Mode
Der Modalwert, auch Modus genannt, ist definiert als der häufigste Wert, der in der Stichprobe vorkommt. Dieser kann entweder einer absoluten Häufigkeitstabelle entnommen, oder mit der which.max Funktion angefordert werden:
table(world$Region)
##
## ASIA (EX. NEAR EAST) BALTICS C.W. OF IND. STATES
## 28 3 12
## EASTERN EUROPE LATIN AMER. & CARIB NEAR EAST
## 12 45 16
## NORTHERN AFRICA NORTHERN AMERICA OCEANIA
## 6 5 21
## SUB-SAHARAN AFRICA WESTERN EUROPE
## 51 28
which.max(table(world$Region))
## SUB-SAHARAN AFRICA
## 10
Ergänzend zu der which.max Funktion, kann man sich mit der max Funktion die absolute Häufigkeit ausgeben lassen:
max(table(world$Region))
## [1] 51
3.2 Relative information content
Ein gutes Streuungsmaß für Nominaldaten ist der relative Informationsgehalt. Dieser sagt aus, wie sehr sich die Personen auf eine der möglichen Kategorien konzentrieren. Der Wertebereich des relativen Informationsgehalts reicht von Null bis Eins. Null bedeutet, dass alle Personen nur eine mögliche Antwortkategorie gewählt haben. Die Stichprobe ist daher sehr homogen. Eins bedeutet, dass alle Antwortkategorien gleich häufig gewählt wurden und die Stichprobe daher sehr heterogen ist. Für die Berechnung des relativen Informationsgehalts sind mehrere Schritte notwendig:
Als erstes wird eine relative Häufigkeitstabelle der zu untersuchenden Variablen in ein separates Objekt gespeichert (hier: “relhaeufig”).
relhaeufig <- prop.table(table(world$Region))
Anschließend wird jeder Wert aus der Tabelle mit seinem logarithmierten Wert multipliziert.
logarithm <- relhaeufig*log(relhaeufig)
Nun werden die 11 Werte (wg 11 Regionen/Antwortmöglichkeiten) zusammen addiert.
Summe <- sum(logarithm)
Als verletzen Schritt müssen die Anzahl der Antwortkategorien (hier unsere 11 Regionen) logarithmiert werden und von diesem Wert muss der negative Kehrwert gebildet werden.
Kehrwert <- -1/log(11)
Um den relativen Informationsgehalt zu bekommen muss im letzten Schritt die gebildete Summe mit dem Kehrwert multipliziert werden.
Summe*Kehrwert
## [1] 0.8873596
Diese fünf Schritte können auch in einem Befehl zusammengefasst werden:
(-1/log(11)) * sum(prop.table(table(world$Region)) * log(prop.table(table(world$Region))))
## [1] 0.8873596
Der Wert von .89 zeigt uns, dass die Variable Region
sehr heterogen gewählt wurde. Dies ist in unserem Beispiel nicht verwunderlich, da die Regionen zwar unterschiedlich viele Länder beinhalten aber die Länder dennoch über alle Regionen verteilt liegen.
4 Description of ordinal data
Ordinal skalierte Daten können entgegen Nominaldaten in eine natürliche Reihenfolge gebracht werden. Allerdings sind die Abstände zwischen den einzelnen Werten nicht quantifizierbar. Natürlich könnten wir wieder den Modalwert und den relativen Informationsgehalt ausrechnen, allerdings steigen mit dem Informationsgehalt des Skalenniveaus auch die statistischen Möglichkeiten, welche für Nominaldaten nicht zugelassen sind.
4.1 Percentile ranks
Prozentränge (z.B. von Personen) drücken aus, wie viel Prozent der Stichprobe diesen oder einen geringeren Wert auf der Variablen haben. Mit der score.transform Funktion (Paket “CTT”) wird die zu untersuchende Variable in zwei neue Variablen transformiert. In der neuen Variable $new.scores
sind die standardisierten Werte enthalten und in $p.scores
die berechneten Prozentränge.
birthrate.transf <- score.transform(world$Birthrate)
head(birthrate.transf$p.scores)
## [1] 0.08810573 0.39647577 0.47577093 0.62995595 0.10572687 0.95594714
Im nächsten Schritt fügen wir die neue Variable $p.scores
dem zugrunde liegenden Datensatz hinzu.
world$birthrate.transf <- birthrate.transf$p.scores
Nun können wir uns beispielsweise die Prozentränge für die Länder der Region “Northern Africa” ausgeben lassen:
percentile.ranks.africa <- world %>% filter(Region == "NORTHERN AFRICA")
subset(percentile.ranks.africa, select = c("Country", "Birthrate", "birthrate.transf"))
## # A tibble: 6 x 3
## Country Birthrate birthrate.transf
## <chr> <dbl> <dbl>
## 1 Algeria 1714 0.476
## 2 Egypt 2294 0.648
## 3 Libya 2649 0.700
## 4 Morocco 2198 0.608
## 5 Tunisia 1552 0.419
## 6 Western Sahara NA 1
Wir sehen, Algerien hat eine Geburtenrate von 1.714 und einen Prozentrang von 0,48% was bedeutet, dass 0,48% der Länder eine gleich hohe oder niedrigere Geburtenrate hat als Algerien.
4.2 Median
Der Median, auch Zentralwert genannt, ist bei einer Auflistung von Zahlenwerten der Wert, der an der zentralen Stelle steht, wenn man die Werte der Größe nach sortiert. Anfordern kann man ihn über die Funktion median.
median(world$Deathrate, na.rm = TRUE)
## [1] 713
4.3 Range
Der Wertebereich berechnet sich aus der Differenz zwischen dem kleinsten Wert und dem größten Wert einer Variablen. Mit dem Befehl range kann man den min-Wert und max-Wert anfordern und mit diff den Wertebereich.
range(world$Deathrate, na.rm = TRUE)
## [1] 22 2974
diff(range(world$Deathrate, na.rm = TRUE))
## [1] 2952
4.4 Quantile
Neben dem Wertebereich kann auch das Dispersionsmaß Quantile für ordinalskalierte Daten verwendet werden. Quantile unterteilt die Stichprobe in kleinere Gruppen. Möchte man seine Stichprobe in vier (Quartile) gleich große Gruppen aufteilen, verwendet man die Funktion quantile.
quantile(world$Deathrate, na.rm = TRUE)
## 0% 25% 50% 75% 100%
## 22.0 517.5 713.0 1025.5 2974.0
Mit dem Zusatzargument probs = seq, kann die Anzahl der Aufteilungen beliebig geändert werden. Da die Zahlensequenz nur von 0 bis 1 gehen darf, sind die ersten beiden Argumente (0 & 1) fest vorgegeben. Das dritte Argument (hier 0.1) gibt die gewünschte relative Häufigkeit der einzelnen Teile an.
quantile(world$Deathrate, na.rm = TRUE, probs = seq(0, 1, 0.1))
## 0% 10% 20% 30% 40% 50% 60% 70% 80% 90%
## 22.0 241.2 470.2 556.8 640.2 713.0 826.2 955.8 1152.2 1480.2
## 100%
## 2974.0
5 Description of interval data
Intervalldaten zählen in der Statistik zu den metrischen Daten. Entgegen ordinalskalierten Merkmalen, lassen sich die Abstände zwischen den Merkmalsausprägungen exakt bestimmen. Alle bisher verwendeten Lage- und Streumaße lassen sich auch für intervallskalierte Daten verwenden. Darüber hinaus kann man für Intervalldaten den Mittelwert als Lagemaß und die Standardabweichung als Streumaß berechnen.
5.1 Arithmetical mean
Im Nachfolgenden wollen wir den Mittelwert mit der mean Funktion für das Bruttoinlandsprodukt (in tausend) berechnen.
mean(world$`GDP ($ per capita)`, na.rm = TRUE)/ 1000
## [1] 9.689823
5.2 Standard deviation
Zusätzlich zum Mittelwert sollte man immer auch die Standardabweichung angeben. Diese wird mit der sd Funktion angefordert.
sd(world$`GDP ($ per capita)`, na.rm = TRUE)/ 1000
## [1] 10.04914
round(sd(world$`GDP ($ per capita)`, na.rm = TRUE)/ 1000, 2)
## [1] 10.05
5.3 Skewness and Kurtosis
Normalverteilte Variablen sind Voraussetzung für viele statistische Tests. Sie können auf zwei Arten von der Normalverteilung abweichen. Zum einen können sie asymmetrisch (rechtsschief oder linksschief) sein und zum anderen können Verteilungen zu flach oder zu spitz verlaufen. Die Schiefe (skewness) und der Exzess (kurtosis) kann mit dem Befehl norm aus dem “QuantPsyc” Paket berechnet werden.
norm(world$Birthrate)
## Statistic SE t-val p
## Skewness 0.4931583 0.1636634 3.013247 0.001292343
## Kurtosis -0.6078551 0.3273268 -1.857028 0.031653577
Interpretation:
- Ein Schiefe-Wert größer Null deutet auf eine rechtsschiefe bzw. linkssteile Verteilung hin.
- Ein Schiefe-Wert kleiner Null deutet auf eine linksschiefe bzw. rechtssteile Verteilung hin.
Ein Schiefe-Wert von Null bedeutet, dass die Verteilung symmetrisch ist.
- Ein Kurtosis-Wert größer Null deutet auf eine spitze Verteilung (leptokurtisch) hin.
- Ein Kurtosis-Wert kleiner Null deutet auf eine flache Verteilung (platykurtisch) hin.
Ein Kurtosis-Wert von Null deutet auf eine Normalverteilung hin.
5.4 describe function
Mit den bisherigen Funktionen wurden jeweils nur einzelne Kennwerte ausgegeben. Mit der describe Funktion kann man sich eine ganze Reihe an nützlichen Kennwerten ausgeben lassen (hier für die Variablen Geburtenrate und Mortalitätenrate).
describe(data.frame(world$Birthrate, world$Deathrate))
## vars n mean sd median trimmed mad min max
## world.Birthrate 1 224 2042.80 1228.92 1799.5 1982.48 1177.93 10 5073
## world.Deathrate 2 223 818.96 506.71 713.0 772.21 361.75 22 2974
## range skew kurtosis se
## world.Birthrate 5063 0.49 -0.64 82.11
## world.Deathrate 2952 1.18 2.19 33.93
- vars = die Variablen werden durchnummeriert
- n = Anzahl gültiger Fälle
- mean = Mittelwert
- sd = Standardabweichung
- median = Median
- trimmed = getrimmter Mittelwert
- mad = Median Absolut Deviation
- min = Minimum
- max = Maximum
- range = Wertebereich
- skew = Schiefe
- kurtosis = Exzess
- se = Standardfehler des Mittelwerts
5.5 summary function
Einen schnellen Überblick über die Verteilung von Variablen kann man mit der summary Funktion bekommen.
summary(world$Birthrate)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 10 1077 1800 2043 2934 5073 3
5.6 Group comparisons
Bisher haben wir nur Kennzahlen für die gesamte Stichprobe angeschaut. Man kann aber auch Kennzahlen für Untergruppen anfordern.
5.6.1 describeBy function
Mit der describeBy Funktion werden die gleichen Kennwerte wie mit der describe Funktion ausgegeben, nur getrennt für Untergruppen (hier die Kennwerte für die Geburtenrate aufgeteilt nach Regionen).
describeBy(world$Birthrate, world$Region)
##
## Descriptive statistics by group
## group: ASIA (EX. NEAR EAST)
## vars n mean sd median trimmed mad min max range skew
## X1 1 28 1688.29 1055.07 1620 1675.62 1080.82 10 3549 3539 0.14
## kurtosis se
## X1 -1.09 199.39
## --------------------------------------------------------
## group: BALTICS
## vars n mean sd median trimmed mad min max range skew kurtosis
## X1 1 3 934.33 65.12 924 934.33 72.65 875 1004 129 0.15 -2.33
## se
## X1 37.6
## --------------------------------------------------------
## group: C.W. OF IND. STATES
## vars n mean sd median trimmed mad min max range skew
## X1 1 12 1364.83 1079.18 1078.5 1309.7 1313.58 16 3265 3249 0.4
## kurtosis se
## X1 -1.35 311.53
## --------------------------------------------------------
## group: EASTERN EUROPE
## vars n mean sd median trimmed mad min max range skew
## X1 1 11 949.55 333.84 965 980.78 99.33 107 1511 1404 -0.99
## kurtosis se
## X1 1.45 100.66
## --------------------------------------------------------
## group: LATIN AMER. & CARIB
## vars n mean sd median trimmed mad min max range skew
## X1 1 45 1777.51 671.75 1759 1780.86 507.05 129 3644 3515 -0.02
## kurtosis se
## X1 1 100.14
## --------------------------------------------------------
## group: NEAR EAST
## vars n mean sd median trimmed mad min max range skew
## X1 1 16 2403.06 1084.56 2159.5 2427.29 1031.15 178 4289 4111 -0.04
## kurtosis se
## X1 -0.8 271.14
## --------------------------------------------------------
## group: NORTHERN AFRICA
## vars n mean sd median trimmed mad min max range skew
## X1 1 5 2081.4 446.15 2198 2081.4 668.65 1552 2649 1097 -0.01
## kurtosis se
## X1 -1.98 199.53
## --------------------------------------------------------
## group: NORTHERN AMERICA
## vars n mean sd median trimmed mad min max range skew
## X1 1 5 1110.2 586.79 1352 1110.2 357.31 114 1593 1479 -0.83
## kurtosis se
## X1 -1.23 262.42
## --------------------------------------------------------
## group: OCEANIA
## vars n mean sd median trimmed mad min max range skew
## X1 1 20 2106.85 751.2 2232 2158.25 630.11 21 3305 3284 -0.75
## kurtosis se
## X1 0.77 167.97
## --------------------------------------------------------
## group: SUB-SAHARAN AFRICA
## vars n mean sd median trimmed mad min max range skew
## X1 1 51 3459.33 1192.93 3771 3641.93 720.54 41 5073 5032 -1.36
## kurtosis se
## X1 1.34 167.04
## --------------------------------------------------------
## group: WESTERN EUROPE
## vars n mean sd median trimmed mad min max range skew
## X1 1 28 990.43 295.26 1024.5 1028.33 143.81 93 1445 1352 -1.63
## kurtosis se
## X1 3.34 55.8
Um die Ergebnisse in Tabellenform ausgegeben zu bekommen, muss der Befehl um das Zusatzargument mat = TRUE ergänzt werden.
describeBy(world$Birthrate, world$Region, mat = TRUE)
## item group1 vars n mean sd median
## X11 1 ASIA (EX. NEAR EAST) 1 28 1688.2857 1055.07461 1620.0
## X12 2 BALTICS 1 3 934.3333 65.11784 924.0
## X13 3 C.W. OF IND. STATES 1 12 1364.8333 1079.17905 1078.5
## X14 4 EASTERN EUROPE 1 11 949.5455 333.83959 965.0
## X15 5 LATIN AMER. & CARIB 1 45 1777.5111 671.74791 1759.0
## X16 6 NEAR EAST 1 16 2403.0625 1084.55788 2159.5
## X17 7 NORTHERN AFRICA 1 5 2081.4000 446.15334 2198.0
## X18 8 NORTHERN AMERICA 1 5 1110.2000 586.79400 1352.0
## X19 9 OCEANIA 1 20 2106.8500 751.20018 2232.0
## X110 10 SUB-SAHARAN AFRICA 1 51 3459.3333 1192.93122 3771.0
## X111 11 WESTERN EUROPE 1 28 990.4286 295.26102 1024.5
## trimmed mad min max range skew kurtosis se
## X11 1675.6250 1080.8154 10 3549 3539 0.140920566 -1.0854801 199.39036
## X12 934.3333 72.6474 875 1004 129 0.154690706 -2.3333333 37.59580
## X13 1309.7000 1313.5836 16 3265 3249 0.403874292 -1.3474477 311.53216
## X14 980.7778 99.3342 107 1511 1404 -0.987271046 1.4469632 100.65642
## X15 1780.8649 507.0492 129 3644 3515 -0.023822700 0.9988176 100.13827
## X16 2427.2857 1031.1483 178 4289 4111 -0.036615882 -0.7990198 271.13947
## X17 2081.4000 668.6526 1552 2649 1097 -0.008797767 -1.9763793 199.52584
## X18 1110.2000 357.3066 114 1593 1479 -0.825503706 -1.2268100 262.42226
## X19 2158.2500 630.1050 21 3305 3284 -0.749970784 0.7747050 167.97347
## X110 3641.9268 720.5436 41 5073 5032 -1.364434519 1.3429081 167.04378
## X111 1028.3333 143.8122 93 1445 1352 -1.629941719 3.3447423 55.79909
5.6.2 tapply function
Benötigen wir Gruppenvergleiche für andere, als in der describeBy Funktion vorhandenen Kennwerte, so können wir die tapply Funktion verwenden. Das erste Argument steht immer für die abhängige Variable, d.h. für die Variable, für die die Kennwerte berechnet werden sollen. Das zweite Argument steht für die unabhängige Variable, d.h. für die Variable, für die die Gruppen definiert werden sollen. Als drittes Argument wird die gewünschte Funktion aufgeführt (hier die Kennwerte der summary Funktion für die Geburtenrate aufgeteilt nach Regionen).
tapply(world$Birthrate, world$Region, summary)
## $`ASIA (EX. NEAR EAST)`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 10.0 912.5 1620.0 1688.3 2336.8 3549.0
##
## $BALTICS
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 875.0 899.5 924.0 934.3 964.0 1004.0
##
## $`C.W. OF IND. STATES`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 16.0 718.5 1078.5 1364.8 2214.5 3265.0
##
## $`EASTERN EUROPE`
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 107.0 900.0 965.0 949.5 1025.0 1511.0 1
##
## $`LATIN AMER. & CARIB`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 129 1417 1759 1778 2082 3644
##
## $`NEAR EAST`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 178 1763 2160 2403 3175 4289
##
## $`NORTHERN AFRICA`
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 1552 1714 2198 2081 2294 2649 1
##
## $`NORTHERN AMERICA`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 114 1078 1352 1110 1414 1593
##
## $OCEANIA
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 21 1769 2232 2107 2491 3305 1
##
## $`SUB-SAHARAN AFRICA`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 41 3165 3771 3459 4199 5073
##
## $`WESTERN EUROPE`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 93.0 909.5 1024.5 990.4 1107.0 1445.0
6 Conclusion
In diesem Post wurden verschiedene Möglichkeiten vorgestellt, einzelne Variablen hinsichtlich ihrer Lage und Verteilung zu beschreiben. Ergänzend zu diesem Beitrag aus der univariaten Statistik, soll in einem Folgebeitrag die bivariate Statistik (Zusammenhänge zwischen zwei Variablen) näher erläutert werden.
Source
Luhmann, M. (2011). R für Einsteiger.