Statistische Maßzahlen für die Streuung

Spannweite

Interquartilabstand

Berechnung des Interquartilabstands

In diesem Abschnitt wird die Formel zur Berechnung des Interquartilabstands erläutert.

Varianz und Standardabweichung

Berechnung der Varianz/Standardabweichung

In diesem Abschnitt wird die Formel zur Berechnung der Varianz und der Standardabweichung erläutert.

Variationskoeffizient

In diesem Abschnitt wird erklärt, warum Standardabweichung und Varianz nicht immer optimal sind, um das Ausmaß der Streuung einer Variable einzuschätzen. Daran anschließend wird erläutert, warum der Variationskoeffizient in manchen Fällen die bessere Maßzahl sein kann.

Zusammenfassung

Praktische Umsetzung mit Statistiksoftware

array(7) { [0]=> array(21) { ["mblockType"]=> string(4) "Text" ["ShinyApp"]=> string(0) "" ["ShinyTitle"]=> string(0) "" ["ShinyDescription"]=> string(0) "" ["TextTitle"]=> string(0) "" ["TextCols"]=> string(1) "1" ["TextText1"]=> string(620) "*Beispieldaten herunterladen:* [dat.csv](/media/dat.csv) ### Datenbeispiel Unser Beispieldatensatz (hypothetisches Datenbeispiel) liegt als .csv-Datei vor. Die Daten können mit der read.csv-Funktion in ein Objekt vom Typ data.frame eingelesen werden (der korrekte Pfad zum Speicherort muss angegeben werden): dat <- read.csv("C:/... Pfad .../dat.csv") Der Datensatz enthält u.a. die Variablen *punkte* (erzielte Punktzahl in einem Test), *schlafdauer* (Schlafdauer in der Nacht vor dem Test in Std.), *lernzeit* (insgesamt für den Test aufgewendete Lernzeit in Std.) und *lsport* (Lieblingssportart). " ["TextText2"]=> string(0) "" ["H5pTitle"]=> string(0) "" ["H5pDescription"]=> string(0) "" ["H5pCode"]=> string(0) "" ["MtmTitle"]=> string(0) "" ["MtmText"]=> string(0) "" ["CodeTitle"]=> string(0) "" ["CodeCode"]=> string(0) "" ["CodeType"]=> string(1) "R" ["SliderTitle"]=> string(0) "" ["SliderText"]=> string(0) "" ["REX_MEDIALIST_1"]=> string(0) "" ["AccordeonTitle"]=> string(0) "" ["AccordeonItems"]=> string(0) "" } [1]=> array(21) { ["mblockType"]=> string(3) "Mtm" ["ShinyApp"]=> string(0) "" ["ShinyTitle"]=> string(0) "" ["ShinyDescription"]=> string(0) "" ["TextTitle"]=> string(0) "" ["TextCols"]=> string(1) "1" ["TextText1"]=> string(0) "" ["TextText2"]=> string(0) "" ["H5pTitle"]=> string(0) "" ["H5pDescription"]=> string(0) "" ["H5pCode"]=> string(0) "" ["MtmTitle"]=> string(67) "Wie bekomme ich einen Überblick über einen unbekannten Datensatz?" ["MtmText"]=> string(2604) "Für einen ersten Überblick über die Struktur des Datensatzes und die im Datensatz enthaltenen Variablen kann die Funktion str(dat) verwendet werden: str(dat) liefert das folgende Ergebnis: 'data.frame': 120 obs. of 25 variables: $ X : int 94 66 78 28 3 113 16 11 96 99 ... $ punkte : num 93 76.5 79.5 85 66.5 71 56.5 77 59 63.5 ... $ schlafdauer : num 6.2 5.3 5.5 7 6.5 6.4 5.7 6.8 5.4 6.8 ... $ lernzeit : num 8.2 7 6.8 7.3 7.3 3.9 4.9 7.6 2.5 9.2 ... $ nachhilfe : int 1 1 1 1 1 0 0 1 0 0 ... $ zeugnis_mathe_roh : num 101.3 89.7 86.2 83.6 86.8 ... $ zeugnis_mathe_punkte : int 13 11 10 10 10 11 9 10 9 10 ... $ zeugnis_mathe_note : Factor w/ 4 levels "ausreichend",..: 1 2 2 2 2 2 3 2 3 2 ... $ zeugnis_deutsch_punkte: int 8 9 10 6 10 10 9 12 5 13 ... $ zeugnis_deutsch_note : Factor w/ 4 levels "ausreichend",..: 3 3 2 4 2 2 3 2 4 1 ... $ lsport : Factor w/ 6 levels "Andere Sportart",..: 4 5 1 3 3 4 3 3 4 4 ... $ sport_fb : int 0 1 0 1 1 1 1 1 1 1 ... $ sport_bb : int 0 0 1 0 0 0 0 1 1 0 ... $ sport_sw : int 1 1 1 1 0 0 1 1 1 1 ... $ sport_tn : int 0 0 0 0 0 0 0 0 1 0 ... $ sport_an : int 1 0 1 1 0 0 1 1 1 1 ... $ sport_no : int 0 0 0 0 0 0 0 0 0 0 ... $ sport_test : int 0 1 1 0 1 1 0 1 1 1 ... $ kantine_zufr : int 4 4 3 5 3 2 2 1 3 2 ... $ taschengeld : int 33 30 29 35 28 32 41 36 34 34 ... $ lauf100 : num 14.3 13.2 13.9 14 15 14.2 14.1 14.8 15.2 13.8 ... $ lauf1000 : num 234 229 210 222 227 ... $ lauf5000 : num 489 465 484 486 461 ... $ kugel : num 8.15 9.26 8.47 8.37 7.56 ... $ lfach : Factor w/ 7 levels "anderes Fach",..: 2 2 2 2 2 2 2 2 2 2 ... Zu den einzelnen Variablen zeigt die Ausgabe deren Speicherformat (*int* für "integer", *num* für "numeric" - beides Zahlenwerte, *Factor* für nicht-numerische Variablen) und die jeweils ersten Werte im Datensatz. Bei Verwendung von R-Studio liefert der **Data Viewer** zudem einen Einblick in den Datensatz als Datentabelle. Aufgerufen wird er mit der Funktion View(dat) So sieht ein Ausschnitt aus dem Data Viewer aus: ![r_data_viewer_ausschnitt.png](index.php?rex_media_type=markitupImage&rex_media_file=r_data_viewer_ausschnitt.png)" ["CodeTitle"]=> string(0) "" ["CodeCode"]=> string(0) "" ["CodeType"]=> string(0) "" ["SliderTitle"]=> string(0) "" ["SliderText"]=> string(0) "" ["REX_MEDIALIST_1"]=> string(0) "" ["AccordeonTitle"]=> string(0) "" ["AccordeonItems"]=> string(0) "" } [2]=> array(21) { ["mblockType"]=> string(4) "Text" ["ShinyApp"]=> string(0) "" ["ShinyTitle"]=> string(0) "" ["ShinyDescription"]=> string(0) "" ["TextTitle"]=> string(0) "" ["TextCols"]=> string(1) "1" ["TextText1"]=> string(879) "### Spannweite Zur Bestimmung der Spannweite lassen wir uns Minimum und Maximum der Verteilung mit der Funktion *range()* anzeigen. Um das Merkmal *schlafdauer* auszuwählen, benutzen wir *dat$schlafdauer* und setzen dies in die Funktion range() ein: range(dat$schlafdauer) Wir erhalten das Ergebnis [1] 4.2 7.8 Die Differenz aus Maximum und Minimum ergibt die Spannweite. > 7.8-4.2 [1] 3.6 Mit *range(dat$schlafdauer)[1]* wählen wir direkt das erste Element aus *range(dat$schlafdauer)* aus, also das Minimum. Analog wählen wir mit *range(dat$schlafdauer)[2]* das zweite Element aus, also das Maximum. Damit können wir uns direkt die Spannweite berechnen lassen, ohne zuvor Maximum und Minimum abzulesen: range(dat$schlafdauer)[2] - range(dat$schlafdauer)[1] Die Spannweite des Merkmals Schlafdauer beträgt 3,6 Stunden. " ["TextText2"]=> string(0) "" ["H5pTitle"]=> string(0) "" ["H5pDescription"]=> string(0) "" ["H5pCode"]=> string(0) "" ["MtmTitle"]=> string(0) "" ["MtmText"]=> string(0) "" ["CodeTitle"]=> string(0) "" ["CodeCode"]=> string(0) "" ["CodeType"]=> string(0) "" ["SliderTitle"]=> string(0) "" ["SliderText"]=> string(0) "" ["REX_MEDIALIST_1"]=> string(0) "" ["AccordeonTitle"]=> string(0) "" ["AccordeonItems"]=> string(0) "" } [3]=> array(21) { ["mblockType"]=> string(4) "Text" ["ShinyApp"]=> string(0) "" ["ShinyTitle"]=> string(0) "" ["ShinyDescription"]=> string(0) "" ["TextTitle"]=> string(0) "" ["TextCols"]=> string(1) "1" ["TextText1"]=> string(600) "### Interquartilabstand Mit dem Befehl IQR() lässt sich der Interquartilabstand eines Merkmals berechnen. Für das Merkmal *lernzeit* verwenden wir: IQR(dat$lernzeit) Alternativ können wir selbst die Differenz zwischen dem dritten und dem ersten Quartil bilden. Dafür bestimmen wir das dritte Quartil mit *quantile(dat$lernzeit, 0.75)* und das erste Quartil mit *quantile(dat$lernzeit, 0.25)*: quantile(dat$lernzeit, 0.75) - quantile(dat$lernzeit, 0.25) Beide Varianten erzeugen das Ergebnis 2,875. Der Interquartilabstand des Merkmals Lernzeit beträgt knapp 3 Stunden. " ["TextText2"]=> string(0) "" ["H5pTitle"]=> string(0) "" ["H5pDescription"]=> string(0) "" ["H5pCode"]=> string(0) "" ["MtmTitle"]=> string(0) "" ["MtmText"]=> string(0) "" ["CodeTitle"]=> string(0) "" ["CodeCode"]=> string(0) "" ["CodeType"]=> string(0) "" ["SliderTitle"]=> string(0) "" ["SliderText"]=> string(0) "" ["REX_MEDIALIST_1"]=> string(0) "" ["AccordeonTitle"]=> string(0) "" ["AccordeonItems"]=> string(0) "" } [4]=> array(21) { ["mblockType"]=> string(4) "Text" ["ShinyApp"]=> string(0) "" ["ShinyTitle"]=> string(0) "" ["ShinyDescription"]=> string(0) "" ["TextTitle"]=> string(0) "" ["TextCols"]=> string(1) "1" ["TextText1"]=> string(428) "### Varianz und Standardabweichung Wir benutzen die Formel var() für die Berechnung der Varianz. Für die Varianz des Merkmals *punkte* schreiben wir var(dat$punkte) Die Varianz der Punktezahl beträgt 265,5. Die Standardabweichung lassen wir uns mit der Formel sd() berechnen: sd(dat$punkte) Als Ergebnis erhalten wir 16,29455. Die Standardabweichung des Merkmals Punktezahl beträgt 16,3 Punkte. " ["TextText2"]=> string(0) "" ["H5pTitle"]=> string(0) "" ["H5pDescription"]=> string(0) "" ["H5pCode"]=> string(0) "" ["MtmTitle"]=> string(0) "" ["MtmText"]=> string(0) "" ["CodeTitle"]=> string(0) "" ["CodeCode"]=> string(0) "" ["CodeType"]=> string(0) "" ["SliderTitle"]=> string(0) "" ["SliderText"]=> string(0) "" ["REX_MEDIALIST_1"]=> string(0) "" ["AccordeonTitle"]=> string(0) "" ["AccordeonItems"]=> string(0) "" } [5]=> array(21) { ["mblockType"]=> string(3) "Mtm" ["ShinyApp"]=> string(0) "" ["ShinyTitle"]=> string(0) "" ["ShinyDescription"]=> string(0) "" ["TextTitle"]=> string(0) "" ["TextCols"]=> string(1) "1" ["TextText1"]=> string(0) "" ["TextText2"]=> string(0) "" ["H5pTitle"]=> string(0) "" ["H5pDescription"]=> string(0) "" ["H5pCode"]=> string(0) "" ["MtmTitle"]=> string(51) "Wie wird der Variationskoeffizient mit r berechnet?" ["MtmText"]=> string(560) "Den Variationskoeffizienten berechnen wir anhand der Formel als Quotienten (Für den Operator *Geteilt* schreiben wir in R "/") aus der Standardabweichung (*sd()*) und dem arithmetische Mittel (*mean()*): sd(dat$lauf100)/mean(dat$lauf100) sd(dat$lauf1000)/mean(dat$lauf1000) sd(dat$lauf5000)/mean(dat$lauf5000) Wir erhalten die folgenden Ergebnisse: > sd(dat$lauf100)/mean(dat$lauf100) [1] 0.05912472 > sd(dat$lauf1000)/mean(dat$lauf1000) [1] 0.05791901 > sd(dat$lauf5000)/mean(dat$lauf5000) [1] 0.03337572" ["CodeTitle"]=> string(0) "" ["CodeCode"]=> string(0) "" ["CodeType"]=> string(0) "" ["SliderTitle"]=> string(0) "" ["SliderText"]=> string(0) "" ["REX_MEDIALIST_1"]=> string(0) "" ["AccordeonTitle"]=> string(0) "" ["AccordeonItems"]=> string(0) "" } [6]=> array(21) { ["mblockType"]=> string(4) "Text" ["ShinyApp"]=> string(0) "" ["ShinyTitle"]=> string(0) "" ["ShinyDescription"]=> string(0) "" ["TextTitle"]=> string(0) "" ["TextCols"]=> string(1) "1" ["TextText1"]=> string(557) "### Wichtige Befehlsoptionen #### *na.rm = TRUE* bei fehlenden Werten Liegen bei einer Variable im Datensatz nicht für alle Beobachtungsfälle Daten vor, können diese *fehlenden Werte* (als *NA* bezeichnet) bei der Berechnung des Interquartilabstands, der Varianz oder der Standardabweichung zu dem Ergebnis [1] NA führen. Um die fehlenden Werte bei der Berechnung auszuschließen, verwenden wir die Befehlsoption *na.rm = TRUE*: IQR(dat$lernzeit, na.rm = TRUE) var(dat$punkte, na.rm = TRUE) sd(dat$punkte, na.rm = TRUE)" ["TextText2"]=> string(0) "" ["H5pTitle"]=> string(0) "" ["H5pDescription"]=> string(0) "" ["H5pCode"]=> string(0) "" ["MtmTitle"]=> string(0) "" ["MtmText"]=> string(559) "### Wichtige Befehlsoptionen #### *na.rm = TRUE* bei fehlenden Werten Liegen bei einer Variable im Datensatz nicht für alle Beobachtungsfälle Daten vor, können diese *fehlenden Werte* (als *NA* bezeichnet) bei der Berechnung des Interquartilabstands, der Varianz oder der Standardabweichung zu dem Ergebnis [1] NA führen. Um die fehlenden Werte bei der Berechnung auszuschließen, verwenden wir die Befehlsoption *na.rm = TRUE*: IQR(dat$lernzeit, na.rm = TRUE) var(dat$punkte, na.rm = TRUE) sd(dat$punkte, na.rm = TRUE) " ["CodeTitle"]=> string(0) "" ["CodeCode"]=> string(0) "" ["CodeType"]=> string(0) "" ["SliderTitle"]=> string(0) "" ["SliderText"]=> string(0) "" ["REX_MEDIALIST_1"]=> string(0) "" ["AccordeonTitle"]=> string(0) "" ["AccordeonItems"]=> string(0) "" } }

Beispieldaten herunterladen: dat.csv

Datenbeispiel

Unser Beispieldatensatz (hypothetisches Datenbeispiel) liegt als .csv-Datei vor. Die Daten können mit der read.csv-Funktion in ein Objekt vom Typ data.frame eingelesen werden (der korrekte Pfad zum Speicherort muss angegeben werden):

dat <- read.csv("C:/... Pfad .../dat.csv")

Der Datensatz enthält u.a. die Variablen punkte (erzielte Punktzahl in einem Test), schlafdauer (Schlafdauer in der Nacht vor dem Test in Std.), lernzeit (insgesamt für den Test aufgewendete Lernzeit in Std.) und lsport (Lieblingssportart).

Für einen ersten Überblick über die Struktur des Datensatzes und die im Datensatz enthaltenen Variablen kann die Funktion str(dat) verwendet werden:

str(dat)

liefert das folgende Ergebnis:

 'data.frame':  120 obs. of  25 variables:
 $ X                     : int  94 66 78 28 3 113 16 11 96 99 ...
 $ punkte                : num  93 76.5 79.5 85 66.5 71 56.5 77 59 63.5 ...
 $ schlafdauer           : num  6.2 5.3 5.5 7 6.5 6.4 5.7 6.8 5.4 6.8 ...
 $ lernzeit              : num  8.2 7 6.8 7.3 7.3 3.9 4.9 7.6 2.5 9.2 ...
 $ nachhilfe             : int  1 1 1 1 1 0 0 1 0 0 ...
 $ zeugnis_mathe_roh     : num  101.3 89.7 86.2 83.6 86.8 ...
 $ zeugnis_mathe_punkte  : int  13 11 10 10 10 11 9 10 9 10 ...
 $ zeugnis_mathe_note    : Factor w/ 4 levels "ausreichend",..: 1 2 2 2 2 2 3 2 3 2 ...
 $ zeugnis_deutsch_punkte: int  8 9 10 6 10 10 9 12 5 13 ...
 $ zeugnis_deutsch_note  : Factor w/ 4 levels "ausreichend",..: 3 3 2 4 2 2 3 2 4 1 ...
 $ lsport                : Factor w/ 6 levels "Andere Sportart",..: 4 5 1 3 3 4 3 3 4 4 ...
 $ sport_fb              : int  0 1 0 1 1 1 1 1 1 1 ...
 $ sport_bb              : int  0 0 1 0 0 0 0 1 1 0 ...
 $ sport_sw              : int  1 1 1 1 0 0 1 1 1 1 ...
 $ sport_tn              : int  0 0 0 0 0 0 0 0 1 0 ...
 $ sport_an              : int  1 0 1 1 0 0 1 1 1 1 ...
 $ sport_no              : int  0 0 0 0 0 0 0 0 0 0 ...
 $ sport_test            : int  0 1 1 0 1 1 0 1 1 1 ...
 $ kantine_zufr          : int  4 4 3 5 3 2 2 1 3 2 ...
 $ taschengeld           : int  33 30 29 35 28 32 41 36 34 34 ...
 $ lauf100               : num  14.3 13.2 13.9 14 15 14.2 14.1 14.8 15.2 13.8 ...
 $ lauf1000              : num  234 229 210 222 227 ...
 $ lauf5000              : num  489 465 484 486 461 ...
 $ kugel                 : num  8.15 9.26 8.47 8.37 7.56 ...
 $ lfach                 : Factor w/ 7 levels "anderes Fach",..: 2 2 2 2 2 2 2 2 2 2 ...

Zu den einzelnen Variablen zeigt die Ausgabe deren Speicherformat (int für "integer", num für "numeric" - beides Zahlenwerte, Factor für nicht-numerische Variablen) und die jeweils ersten Werte im Datensatz.

Bei Verwendung von R-Studio liefert der Data Viewer zudem einen Einblick in den Datensatz als Datentabelle. Aufgerufen wird er mit der Funktion

View(dat)

So sieht ein Ausschnitt aus dem Data Viewer aus:

r_data_viewer_ausschnitt.png

Spannweite

Zur Bestimmung der Spannweite lassen wir uns Minimum und Maximum der Verteilung mit der Funktion range() anzeigen. Um das Merkmal schlafdauer auszuwählen, benutzen wir dat$schlafdauer und setzen dies in die Funktion range() ein:

range(dat$schlafdauer)

Wir erhalten das Ergebnis

[1] 4.2 7.8

Die Differenz aus Maximum und Minimum ergibt die Spannweite.

> 7.8-4.2
[1] 3.6

Mit range(dat$schlafdauer)[1] wählen wir direkt das erste Element aus range(dat$schlafdauer) aus, also das Minimum. Analog wählen wir mit range(dat$schlafdauer)[2] das zweite Element aus, also das Maximum. Damit können wir uns direkt die Spannweite berechnen lassen, ohne zuvor Maximum und Minimum abzulesen:

range(dat$schlafdauer)[2] - range(dat$schlafdauer)[1]

Die Spannweite des Merkmals Schlafdauer beträgt 3,6 Stunden.

Interquartilabstand

Mit dem Befehl IQR() lässt sich der Interquartilabstand eines Merkmals berechnen. Für das Merkmal lernzeit verwenden wir:

IQR(dat$lernzeit)

Alternativ können wir selbst die Differenz zwischen dem dritten und dem ersten Quartil bilden. Dafür bestimmen wir das dritte Quartil mit quantile(dat$lernzeit, 0.75) und das erste Quartil mit quantile(dat$lernzeit, 0.25):

quantile(dat$lernzeit, 0.75) - quantile(dat$lernzeit, 0.25)

Beide Varianten erzeugen das Ergebnis 2,875. Der Interquartilabstand des Merkmals Lernzeit beträgt knapp 3 Stunden.

Varianz und Standardabweichung

Wir benutzen die Formel var() für die Berechnung der Varianz. Für die Varianz des Merkmals punkte schreiben wir

var(dat$punkte)

Die Varianz der Punktezahl beträgt 265,5.

Die Standardabweichung lassen wir uns mit der Formel sd() berechnen:

sd(dat$punkte)

Als Ergebnis erhalten wir 16,29455. Die Standardabweichung des Merkmals Punktezahl beträgt 16,3 Punkte.

Den Variationskoeffizienten berechnen wir anhand der Formel als Quotienten (Für den Operator Geteilt schreiben wir in R "/") aus der Standardabweichung (sd()) und dem arithmetische Mittel (mean()):

sd(dat$lauf100)/mean(dat$lauf100)
sd(dat$lauf1000)/mean(dat$lauf1000)
sd(dat$lauf5000)/mean(dat$lauf5000)

Wir erhalten die folgenden Ergebnisse:

> sd(dat$lauf100)/mean(dat$lauf100)
[1] 0.05912472
> sd(dat$lauf1000)/mean(dat$lauf1000)
[1] 0.05791901
> sd(dat$lauf5000)/mean(dat$lauf5000)
[1] 0.03337572

Wichtige Befehlsoptionen

na.rm = TRUE bei fehlenden Werten

Liegen bei einer Variable im Datensatz nicht für alle Beobachtungsfälle Daten vor, können diese fehlenden Werte (als NA bezeichnet) bei der Berechnung des Interquartilabstands, der Varianz oder der Standardabweichung zu dem Ergebnis

[1] NA

führen. Um die fehlenden Werte bei der Berechnung auszuschließen, verwenden wir die Befehlsoption na.rm = TRUE:

IQR(dat$lernzeit, na.rm = TRUE)
var(dat$punkte, na.rm = TRUE)
sd(dat$punkte, na.rm = TRUE)
array(1) { [0]=> array(21) { ["mblockType"]=> string(4) "Text" ["ShinyApp"]=> string(0) "" ["ShinyTitle"]=> string(0) "" ["ShinyDescription"]=> string(0) "" ["TextTitle"]=> string(0) "" ["TextCols"]=> string(1) "1" ["TextText1"]=> string(4679) "*Beispieldaten herunterladen:* [daten_stata.dta](/media/daten_stata.dta) #### Datenbeispiel Der Beispieldatensatz kann mit der Funktion *use* geladen werden. Dafür muss zusätzlich der korrekte Pfad zum Speicherort der Datei *daten_stata.dta* angegeben werden: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stata use "C:\...Pfad...\daten_stata.dta" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #### Spannweite, Interquartilsabstand, Varianz und Standardabweichung Mit der Funktion *summarize* und der Option *detail* können u.a. die Spannweite und der Interquartilsabstand berechnet, sowie die Varianz und die Standardabweichung ausgegeben werden: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stata summarize schlafdauer, detail schlafdauer ------------------------------------------------------------- Percentiles Smallest 1% 4.5 4.2 5% 5 4.5 10% 5.15 4.8 Obs 120 25% 5.65 4.8 Sum of Wgt. 120 50% 6.2 Mean 6.185833 Largest Std. Dev. .7184596 75% 6.8 7.5 90% 7 7.5 Variance .5161842 95% 7.4 7.6 Skewness -.1875421 99% 7.6 7.8 Kurtosis 2.701023 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Die Funktion speichert ihre Ergebnisse im Hintergrund. Um die Spannweite der Variable *schlafdauer* zu berechnen, wird von der größten Ausprägung (gesichert als r(max)) die kleinste Ausprägung (r(min)) subtrahiert. Das Ergebnis der Subtraktion kann mit display ausgegeben werden: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stata display r(max)-r(min) >3.6 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Die Differenz aus Maximum und Minimum ergibt 3,6 Stunden. Der Interquartilsabstand berechnet sich aus der Differenz des 3. Quartils (r(p75)) und des 1. Quartils (r(p25)). Mit display kann auch hier das Ergebnis berechnet werden: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stata display r(p75)-r(p25) >1.15 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Der Interquartilsabstand der Variable *schlafdauer* beträgt 1,15 Stunden. Die Varianz (Variance) und die Standardabweichung (Std. Dev.) können direkt aus der Ausgabe der summarize Funktion ausgelesen werden. Die Varianz des Merkmals *schlafdauer* ist demnach ca. 0,52 Stunden und die Standardabweichung in etwa 0,72 Stunden. Die Kennzahlen können auch separat in Stata berechnet werden. #### Interquartilabstand Mit der Funktion tabstat und der Erweiterung stat(iqr) lässt sich der Interquartilsabstand berechnen, z.B. für die Variable *lernzeit*: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stata tabstat lernzeit, stat(iqr) > variable | iqr -------------+---------- lernzeit | 2.95 ------------------------ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Der Interquartilsabstand der Lernzeit vor der letzten Matheklausur beträgt knapp 3 Stunden. #### Varianz und Standardabweichung Auch die Varianz und die Standardabweichung lassen sich mit tabstat berechnen. Um die Varianz zu ermitteln, wird die Option stat(variance) genutzt. Für die Standardabweichung verwenden wir stat(sd): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stata tabstat punkte, stat(variance) > variable | variance -------------+---------- punkte | 265.5123 ------------------------ tabstat punkte, stat(sd) > variable | sd -------------+---------- punkte | 16.29455 ------------------------ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Die Varianz der Punktzahl in der letzten Matheklausur beträgt ca. 265,5 Punkte und die Standardabweichung in etwa 16,3 Punkte. #### Variationskoeffizient Den Variationskoeffizienten berechnen wir mit tabstat und der Option stat(cv): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stata tabstat lauf100 lauf1000 lauf5000, stat(cv) > stats | lauf100 lauf1000 lauf5000 ---------+------------------------------ cv | .0591247 .057919 .0333757 ---------------------------------------- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ]" ["TextText2"]=> string(0) "" ["H5pTitle"]=> string(0) "" ["H5pDescription"]=> string(0) "" ["H5pCode"]=> string(0) "" ["MtmTitle"]=> string(0) "" ["MtmText"]=> string(0) "" ["CodeTitle"]=> string(0) "" ["CodeCode"]=> string(0) "" ["CodeType"]=> string(5) "Stata" ["SliderTitle"]=> string(0) "" ["SliderText"]=> string(0) "" ["REX_MEDIALIST_1"]=> string(0) "" ["AccordeonTitle"]=> string(0) "" ["AccordeonItems"]=> string(0) "" } }

Beispieldaten herunterladen: daten_stata.dta

Datenbeispiel

<!-- Das Datenbeispiel befindet sich in dem heruntergeladenden ZIP-Ordner. Dieser enthält neben dem Beispieldatensatz *daten_stata.dta* ein do-File, in dem die hier verwendeten Funktionen dokumentiert worden sind. -->

Der Beispieldatensatz kann mit der Funktion use geladen werden. Dafür muss zusätzlich der korrekte Pfad zum Speicherort der Datei daten_stata.dta angegeben werden:

use "C:\...Pfad...\daten_stata.dta"

Spannweite, Interquartilsabstand, Varianz und Standardabweichung

Mit der Funktion summarize und der Option detail können u.a. die Spannweite und der Interquartilsabstand berechnet, sowie die Varianz und die Standardabweichung ausgegeben werden:

summarize schlafdauer, detail

                          schlafdauer
 -------------------------------------------------------------
       Percentiles      Smallest
  1%          4.5            4.2
  5%            5            4.5
 10%         5.15            4.8       Obs                 120
 25%         5.65            4.8       Sum of Wgt.         120
 50%          6.2                      Mean           6.185833
                         Largest       Std. Dev.      .7184596
 75%          6.8            7.5
 90%            7            7.5       Variance       .5161842
 95%          7.4            7.6       Skewness      -.1875421
 99%          7.6            7.8       Kurtosis       2.701023

Die Funktion speichert ihre Ergebnisse im Hintergrund. Um die Spannweite der Variable schlafdauer zu berechnen, wird von der größten Ausprägung (gesichert als r(max)) die kleinste Ausprägung (r(min)) subtrahiert. Das Ergebnis der Subtraktion kann mit display ausgegeben werden:

display r(max)-r(min)

>3.6

Die Differenz aus Maximum und Minimum ergibt 3,6 Stunden.

Der Interquartilsabstand berechnet sich aus der Differenz des 3. Quartils (r(p75)) und des 1. Quartils (r(p25)). Mit display kann auch hier das Ergebnis berechnet werden:

display r(p75)-r(p25)

>1.15

Der Interquartilsabstand der Variable schlafdauer beträgt 1,15 Stunden.

Die Varianz (Variance) und die Standardabweichung (Std. Dev.) können direkt aus der Ausgabe der summarize Funktion ausgelesen werden. Die Varianz des Merkmals schlafdauer ist demnach ca. 0,52 Stunden und die Standardabweichung in etwa 0,72 Stunden.

Die Kennzahlen können auch separat in Stata berechnet werden.

Interquartilabstand

<!--AN, 19.06.2020 Es wäre ja auch möglich, die Kennzahlen über summarize und r() aufzurufen. Ich finde es aber sinnvoller diese Möglichkeit hier nicht zu zeigen. Wenn es nur um die Kennzahl geht, ohne damit nachher weitere Berechnungen anzustellen, ist tabstat die bessere Wahl.-->

Mit der Funktion tabstat und der Erweiterung stat(iqr) lässt sich der Interquartilsabstand berechnen, z.B. für die Variable lernzeit:


tabstat lernzeit, stat(iqr)

>    variable |       iqr
 -------------+----------
     lernzeit |      2.95
 ------------------------

Der Interquartilsabstand der Lernzeit vor der letzten Matheklausur beträgt knapp 3 Stunden.

Varianz und Standardabweichung

Auch die Varianz und die Standardabweichung lassen sich mit tabstat berechnen. Um die Varianz zu ermitteln, wird die Option stat(variance) genutzt. Für die Standardabweichung verwenden wir stat(sd):


tabstat punkte, stat(variance)

>    variable |  variance
 -------------+----------
       punkte |  265.5123
 ------------------------

tabstat punkte, stat(sd)

>    variable |        sd
 -------------+----------
       punkte |  16.29455
 ------------------------

Die Varianz der Punktzahl in der letzten Matheklausur beträgt ca. 265,5 Punkte und die Standardabweichung in etwa 16,3 Punkte.

Variationskoeffizient

Den Variationskoeffizienten berechnen wir mit tabstat und der Option stat(cv):

tabstat lauf100 lauf1000 lauf5000, stat(cv)

>   stats |   lauf100  lauf1000  lauf5000
 ---------+------------------------------
       cv |  .0591247   .057919  .0333757
 ----------------------------------------

]

array(5) { [0]=> array(21) { ["mblockType"]=> string(4) "Text" ["ShinyApp"]=> string(0) "" ["ShinyTitle"]=> string(0) "" ["ShinyDescription"]=> string(0) "" ["TextTitle"]=> string(0) "" ["TextCols"]=> string(1) "1" ["TextText1"]=> string(77) "*Beispieldaten herunterladen:* [dat.sav](/media/dat.sav) ### Datenbeispiel" ["TextText2"]=> string(0) "" ["H5pTitle"]=> string(0) "" ["H5pDescription"]=> string(0) "" ["H5pCode"]=> string(0) "" ["MtmTitle"]=> string(0) "" ["MtmText"]=> string(0) "" ["CodeTitle"]=> string(0) "" ["CodeCode"]=> string(0) "" ["CodeType"]=> string(4) "SPSS" ["SliderTitle"]=> string(0) "" ["SliderText"]=> string(0) "" ["REX_MEDIALIST_1"]=> string(0) "" ["AccordeonTitle"]=> string(0) "" ["AccordeonItems"]=> string(0) "" } [1]=> array(21) { ["mblockType"]=> string(3) "H5p" ["ShinyApp"]=> string(0) "" ["ShinyTitle"]=> string(0) "" ["ShinyDescription"]=> string(0) "" ["TextTitle"]=> string(0) "" ["TextCols"]=> string(1) "1" ["TextText1"]=> string(0) "" ["TextText2"]=> string(0) "" ["H5pTitle"]=> string(0) "" ["H5pDescription"]=> string(0) "" ["H5pCode"]=> string(7) "1006342" ["MtmTitle"]=> string(0) "" ["MtmText"]=> string(0) "" ["CodeTitle"]=> string(0) "" ["CodeCode"]=> string(0) "" ["CodeType"]=> string(0) "" ["SliderTitle"]=> string(0) "" ["SliderText"]=> string(0) "" ["REX_MEDIALIST_1"]=> string(0) "" ["AccordeonTitle"]=> string(0) "" ["AccordeonItems"]=> string(0) "" } [2]=> array(21) { ["mblockType"]=> string(4) "Text" ["ShinyApp"]=> string(0) "" ["ShinyTitle"]=> string(0) "" ["ShinyDescription"]=> string(0) "" ["TextTitle"]=> string(0) "" ["TextCols"]=> string(1) "1" ["TextText1"]=> string(67) "### Spannweite, Interquartilabstand, Varianz und Standardabweichung" ["TextText2"]=> string(0) "" ["H5pTitle"]=> string(0) "" ["H5pDescription"]=> string(0) "" ["H5pCode"]=> string(0) "" ["MtmTitle"]=> string(0) "" ["MtmText"]=> string(0) "" ["CodeTitle"]=> string(0) "" ["CodeCode"]=> string(0) "" ["CodeType"]=> string(0) "" ["SliderTitle"]=> string(0) "" ["SliderText"]=> string(0) "" ["REX_MEDIALIST_1"]=> string(0) "" ["AccordeonTitle"]=> string(0) "" ["AccordeonItems"]=> string(0) "" } [3]=> array(21) { ["mblockType"]=> string(3) "H5p" ["ShinyApp"]=> string(0) "" ["ShinyTitle"]=> string(0) "" ["ShinyDescription"]=> string(0) "" ["TextTitle"]=> string(0) "" ["TextCols"]=> string(1) "1" ["TextText1"]=> string(0) "" ["TextText2"]=> string(0) "" ["H5pTitle"]=> string(0) "" ["H5pDescription"]=> string(0) "" ["H5pCode"]=> string(7) "1009809" ["MtmTitle"]=> string(0) "" ["MtmText"]=> string(0) "" ["CodeTitle"]=> string(0) "" ["CodeCode"]=> string(0) "" ["CodeType"]=> string(0) "" ["SliderTitle"]=> string(0) "" ["SliderText"]=> string(0) "" ["REX_MEDIALIST_1"]=> string(0) "" ["AccordeonTitle"]=> string(0) "" ["AccordeonItems"]=> string(0) "" } [4]=> array(21) { ["mblockType"]=> string(4) "Text" ["ShinyApp"]=> string(0) "" ["ShinyTitle"]=> string(0) "" ["ShinyDescription"]=> string(0) "" ["TextTitle"]=> string(0) "" ["TextCols"]=> string(1) "1" ["TextText1"]=> string(1793) "Statt durch Klicken durch das Menü können wir uns die Streuungsmaße über die Syntax ausgeben lassen. Dazu verwenden wir den folgenden Code: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ spss FREQUENCIES VARIABLES=punkte schlafdauer /NTILES=4 /STATISTICS=STDDEV VARIANCE RANGE MINIMUM MAXIMUM. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Wir verwenden den Befehl *FREQUENCIES* und geben nach *VARIABLES=* nacheinander alle gewünschten Variablen mit Leerzeichen getrennt an. Das Ergebnis wäre je eine Häufigkeitstabelle pro Variable. Um zusätzlich Streuungsmaße zu erhalten, geben wir den Unterbefehl */STATISTICS=* ein mit den Optionen *STDDEV VARIANCE RANGE MINIMUM MAXIMUM*. Dabei steht *STDDEV* für die Standardabweichung, *VARIANCE* für die Varianz, *RANGE* für die Spannweite sowie *MINIMUM* und *MAXIMUM* für den kleinsten und den größten Wert. Mit *NTILES=4* fordern wir Quartile an, d.h. die Verteilung wird in vier gleichgroße Gruppen geteilt. Mit *NTILES=10* würden wir dementsprechend Perzentile erhalten. Mit dem Punkt schließen wir den Befehl ab. Statt mit *FREQUENCIES* (im Menü: Analysieren -> Deskriptive Statistiken -> Häufigkeiten) können wir uns Maßzahlen alternativ mit *DESCRIPTIVES* berechnen. Dies kann bei metrischen Variablen mit großem Merkmalsraum von Vorteil sein, da keine Häufigkeitstabellen ausgegeben werden und über die Syntax schnell die gewünschten Maßzahlen angegeben werden können. Wir verwenden entweder den Code ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ spss DESCRIPTIVES VARIABLES=punkte /STATISTICS=STDDEV VARIANCE RANGE. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ oder Klicken durch das Menü: Analysieren -> Deskriptive Statistiken -> Deskriptive Statistik -> Variablen auswählen -> Optionen -> Std. abweichung, Varianz, Bereich -> weiter -> OK. " ["TextText2"]=> string(0) "" ["H5pTitle"]=> string(0) "" ["H5pDescription"]=> string(0) "" ["H5pCode"]=> string(0) "" ["MtmTitle"]=> string(0) "" ["MtmText"]=> string(0) "" ["CodeTitle"]=> string(0) "" ["CodeCode"]=> string(0) "" ["CodeType"]=> string(0) "" ["SliderTitle"]=> string(0) "" ["SliderText"]=> string(0) "" ["REX_MEDIALIST_1"]=> string(0) "" ["AccordeonTitle"]=> string(0) "" ["AccordeonItems"]=> string(0) "" } }

Beispieldaten herunterladen: dat.sav

Datenbeispiel

Spannweite, Interquartilabstand, Varianz und Standardabweichung

Statt durch Klicken durch das Menü können wir uns die Streuungsmaße über die Syntax ausgeben lassen. Dazu verwenden wir den folgenden Code:

FREQUENCIES VARIABLES=punkte schlafdauer 
  /NTILES=4 
  /STATISTICS=STDDEV VARIANCE RANGE MINIMUM MAXIMUM.

Wir verwenden den Befehl FREQUENCIES und geben nach VARIABLES= nacheinander alle gewünschten Variablen mit Leerzeichen getrennt an. Das Ergebnis wäre je eine Häufigkeitstabelle pro Variable. Um zusätzlich Streuungsmaße zu erhalten, geben wir den Unterbefehl /STATISTICS= ein mit den Optionen STDDEV VARIANCE RANGE MINIMUM MAXIMUM. Dabei steht STDDEV für die Standardabweichung, VARIANCE für die Varianz, RANGE für die Spannweite sowie MINIMUM und MAXIMUM für den kleinsten und den größten Wert. Mit NTILES=4 fordern wir Quartile an, d.h. die Verteilung wird in vier gleichgroße Gruppen geteilt. Mit NTILES=10 würden wir dementsprechend Perzentile erhalten. Mit dem Punkt schließen wir den Befehl ab.

Statt mit FREQUENCIES (im Menü: Analysieren -> Deskriptive Statistiken -> Häufigkeiten) können wir uns Maßzahlen alternativ mit DESCRIPTIVES berechnen. Dies kann bei metrischen Variablen mit großem Merkmalsraum von Vorteil sein, da keine Häufigkeitstabellen ausgegeben werden und über die Syntax schnell die gewünschten Maßzahlen angegeben werden können. Wir verwenden entweder den Code

DESCRIPTIVES VARIABLES=punkte 
  /STATISTICS=STDDEV VARIANCE RANGE.

oder Klicken durch das Menü: Analysieren -> Deskriptive Statistiken -> Deskriptive Statistik -> Variablen auswählen -> Optionen -> Std. abweichung, Varianz, Bereich -> weiter -> OK.

Creative Commons Lizenzvertrag

Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.

Autor*innen dieses Artikels

Sebastian Gerhartz, Adrian Neuser, Lisa Rüge

Diese Seite wurde zuletzt am 15.01.2024 aktualisiert.