Deskriptive Statistik

Analyse
R
Chunk
Tidyverse
dplyr::select
summarytools::descr
Mean
Median
SD
Boxplot
Author

Martin Burk

Published

September 6, 2022

Deskriptive Statistik zur Datenbereinigung

Der nächste Schritt in der Datenbereinigung ist eine erste Sichtung mit einfachen deskriptiven statistischen Methoden. Mich interessiert zuerst die Verteilung der Werte einzelner Variablen. In R sind für diese zentrale Funktion “Deskriptive Statistik” zahlreiche Programm-Pakete und enthaltene Funktionen verfügbar. R selbst bietet Basisfunktionen wie “mean()” oder “sd()” im Rahmen des Kern-Paketes “stats” an.

Für mich ist auch die Art der Ausgabe wichtig, und die Kompatibilität mit anderen Paketen.

Ich habe mich hier dazu entschieden, aus dem Paket “summarytools” die Funktion “descr” zu verwenden. Diese Funktion bietet einen üersichtlichen ersten Zugang zur “univariaten Statistik numerischer Daten”. Das Gesamtpaket führt mit sich eine Fülle an Optionen, die mittels der Funktion “st_options” auch global verwaltet werden können. Wir würden es aber zunächst mit den Standardoptionen versuchen, bzw. bei jedem Aufruf individuell formulierte Optionen nutzen…

library(tidyverse)
library(summarytools)

GTDSpart <- GTDSroh %>% dplyr::select(DIAALTER)

summarytools::descr(GTDSpart, stats = "common")

Tatsächlich wollen wir uns, für einen ersten Überblick, einige ausgewählte Datenbank-Parameter der in einem früheren Beitrag erstellten Datei “GTDSroh” anschauen. Wir haben für diese Auswahl bereits in einem vorherigen Post die Funktion “select” aus der Bibliothek “dplyr” des “Tidyverse” verwendet, so dass ich diese Funktion nicht mehr vorstellen muss.

Uns interessieren zunächst einige häufig verwendete statistische Werte, die in der “descr”-Funktion mit der Option “stats=common” angewählt werden können.

DIAALTER DIAALTERkorr
Mean 64.81 65.47
Std.Dev 35.38 12.84
Min -1747.00 8.79
Median 67.00 67.00
Max 103.00 103.00
N.Valid 9931.00 9927.00
Pct.Valid 98.50 98.46

Auf den ersten Blick fällt auf, dass in der Spalte des Alters bei Diagnosestellung DIAALTER als Minimum ein Alter “-1747” ausgewiesen wird. Andere Kenndaten entsprechen dagegen durchaus meiner Erwartung an die Altersverteilung einer Population (fast ausschließlich) erwachsener onkologischer Patienten.

Ein Blick in meine Rohdaten zeigt mir, dass das bereits in der Tumordatenbank errechnete Alter bei Diagnosestellung wegen Tippfehlern bei der Eingabe des Diagnosedatums falsch ermittelt wurde. Die Datenbank hat offensichtlich ein Datum mit der Jahreszahl (z.B.) “0200” zugelassen, obwohl “2000” gemeint war. Die Kontrolle der Eingabewerte der Tumordatenbank wurde in diesem Fall umgangen, da Jahre zuvor einige Datensätze aus einer anderen Dokumentationssoftware importiert wurden, und wohl fehlerbehaftet waren. So sind reale Daten …

Hier hilft tatsächlich die Redundanz der Tumordatenbank.

Man könnte z.B. so vorgehen: falls das Diagnosealter negativ wäre, würde das Diagnosealter ersatzweise neu berechnet, z.B: aus dem Geburtsdatum und dem Datum des histologischen Befundes, oder falls dieser fehlt, dem Datum des Therapiebeginns.

Die Tabelle hat deshalb eine zweite Spalte “DIAALTERkorr” bekommen, die ein korrigiertes Diagnosealter enthält. Während sich die anderen Kenngrößen praktisch nicht geändert haben, liegt das niedrigste Diagnosealter nun bei (glaubhaften) knapp 9 Jahren.

Im folgenden Post möchte ich einen kurzen Exkurs zum Arbeiten mit Datumswerten machen. Wir besprechen eine hierzu hilfreiche Bibliothek im Tidyverse-Universum. Danach werden wir unsere Erwartungen an die deskriptive Statistik unter Verwendung der Funktion dfSummary1 deutlich anheben - lass Dich überraschen!

— | This page brought to you by https://onkostats.de . . . . . — Made with R, RStudio, Quarto, Pandoc, Mermaid, Tidyverse and GTDS … Thank you! — The R logo is copyright © R foundation, licence CC-BY-SA 4.0

Footnotes

  1. summarytools::dfSummary bietet eine ansprechende, auch grafische Analyse statistischer Kenngrößen, beispielhaft bei hier.↩︎