Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Umgang mit der Statistiksoftware R

Umgang mit der Statistiksoftware R

Ein wichtiges Gebiet der Informations- und Datenanalyse sowie deren Auswertung stellt die Statistik dar. Mit ihr lassen sich gezielt Daten aller möglichen Informationsträger sammeln, analysieren und interpretieren. Um diese komplexe Fülle an Daten einfach auswerten zu können, wird die Statistiksoftware R eingesetzt. Mit ihr ist es möglich, selbst hochgradig komplexe Daten auszulesen und zu analysieren, um auf Basis dessen statistisch korrekte Ergebnisse, etwa in Form von Diagrammen, zu erzeugen.
In dieser Präsentation werden die Grundbausteine der umfangreichen Softwareumgebung aufgezeigt und diese kurz anhand ihrer wichtigsten Bausteine eingeführt. Dabei wird nicht vertiefend auf bestimmte statistische oder anderweitig verfügbare Funktionen eingegangen, sondern lediglich die wichtigsten Hauptbestandteile in ihren Grundfunktionen erläutert und anhand von Beispielen veranschaulicht. Ziel ist es, eine Einführung in die relevanten Datenstrukturen sowie die Datenverarbeitung in R vom Import bis zum fertigen Diagramm zu geben.

Avatar for Elias Häußler

Elias Häußler

May 03, 2016
Tweet

More Decks by Elias Häußler

Other Decks in Programming

Transcript

  1. Umgang mit der Statistiksoftware R > Agenda 2 | 39

    Agenda 1. Überblick └ └ Was ist R? └ └ Software └ └ Datenanalyse 2. Datenstrukturen └ └ Übersicht └ └ Schreibweisen └ └ Datentypen 3. Datenverarbeitung └ └ Im- und Export └ └ Daten vorbereiten └ └ Mit Daten arbeiten 4. Diagramme erstellen └ └ Devices └ └ Grafiken exportieren └ └ Grafikfunktionen
  2. Überblick > Was ist R? 4 | 39 Was ist

    R? 〉 〉 Umgebung zur computergestützten statistischen Datenverarbeitung 〉 〉 Daten können organisiert, transformiert, ausgewertet und in Form von Diagrammen dargestellt werden 〉 〉 vektorbasierte Sprache
  3. Überblick > Software 5 | 39 Software 〉 〉 Homepage:

    http://www.r-project.org/ 〉 〉 R-Basispaket └ └ enthält komplette R-Syntax └ └ Konsole 〉 〉 RStudio └ └ grafische Benutzeroberfläche └ └ Konsole, Editor, Workspace └ └ Plot zur grafischen Darstellung von Diagrammen
  4. Überblick > Software 5 | 39 Software 〉 〉 Homepage:

    http://www.r-project.org 〉 〉 R-Basispaket └ └ enthält komplette R-Syntax └ └ Konsole 〉 〉 RStudio └ └ grafische Benutzeroberfläche └ └ Konsole, Editor, Workspace └ └ Plot zur grafischen Darstellung von Diagrammen
  5. Überblick > Datenanalyse 6 | 39 Datenanalyse 〉 〉 Benutzer

    gibt eine Abfolge von Befehlen in Textform ein  erhält dadurch eine Auswertung 〉 〉 Jeder Befehl stellt einen eigenen Auswertungsschritt dar 〉 〉 Eine Datenanalyse besteht aus der Abfolge mehrerer Auswertungsschritte
  6. Datenstrukturen > Übersicht 8 | 39 Übersicht 〉 〉 vector

    eindimensionale Vektoren 〉 〉 matrix zweidimensionale Matrizen 〉 〉 list Listen 〉 〉 data.frame Datensätze 〉 〉 function Funktionen
  7. Datenstrukturen > Übersicht 9 | 39 Übersicht 〉 〉 alle

    Eigenschaften einer Datenstruktur werden insgesamt als Klasse bezeichnet 〉 〉 Daten werden in Objekten zusammengefasst 〉 〉 Objekt ist eine konkrete Verkörperung einer Klasse
  8. Datenstrukturen > Schreibweisen 10 | 39 Schreibweisen 〉 〉 Funktionsaufruf

    └ └ Funktionsargumente sollten immer Argumentnamen beinhalten └ └ Reihenfolge der Argumente ist irrelevant, wenn Argumentnamen genannt werden └ └ round(<zahl>, digits=0) ⇔ round(digits=0, x=<zahl>) 〉 〉 Mögliche Zuweisung von Objekten └ └ x1 <- 4.5 (bevorzugt) └ └ x1 = 4.5 (= sollte Funktionsargumenten vorbehalten sein)
  9. Datenstrukturen > Datentypen 11 | 39 Datentypen 〉 〉 NULL

    leere Menge 〉 〉 logical logische Werte TRUE, FALSE 〉 〉 numeric ganze und reelle Zahlen 3.296 〉 〉 character Zeichenfolgen "Hallo Welt"
  10. Datenverarbeitung > Im- und Export 13 | 39 Im- und

    Export 〉 〉 lokale Daten, Zwischenablage (begrenzt) oder online verfügbare Daten 〉 〉 Import aus Datei └ └ aufgebaut in Spalten (Variablennamen) und Zeilen (Werte) └ └ alle Variablen sollten gleich viele Objekte beinhalten  rechteckige Datenmatrix └ └ Import mit read.table() 〉 〉 Export in Datei └ └ write.table()
  11. Datenverarbeitung > Im- und Export 14 | 39 Im- und

    Export 〉 〉 R-Objekte laden └ └ load(file="<Dateiname>") Objekte in binärer Darstellung (plattformunabhängig) └ └ source(file="<Dateiname>") Objekte in Textform 〉 〉 R-Objekte speichern └ └ save(<data>, file="<Dateiname>") in binärer Form (plattformunabhängig) └ └ dump("<Objekt>", file="<Dateiname>") in Textform
  12. Datenverarbeitung > Im- und Export 15 | 39 Im- und

    Export 〉 〉 Datenbanken └ └ Pakete für ODBC-, MySQL-, Oracle- und SQLite-Datenbanken sowie die Java Datenbankschnittstelle vorhanden └ └ SQL-Kommandos können in der üblichen Syntax angewendet werden └ └ sinnvoll bei extrem großen Datensätzen
  13. Datenverarbeitung > Daten vorbereiten > Vektoren 16 | 39 Daten

    vorbereiten > Vektoren 〉 〉 Vektoren erzeugen └ └ numeric(4) Zahlen-Vektor der Länge 4 └ └ c(10, 20, 30, 40) Vektor (Datentyp automatisch bestimmt) └ └ c(elem1="nr. 1", elem2="nr. 2") Vektor mit Index-Benennung └ └ 14:19 ⇔ c(14, 15, 16, 17, 18, 19) numerische Sequenz
  14. Datenverarbeitung > Daten vorbereiten > Vektoren 17 | 39 Daten

    vorbereiten > Vektoren test <- c(a=12, b=34, c=56, d=78, e=90) 〉 〉 Vektoren auslesen └ └ test[1] ⇔ test["a"] 12  Erster Index ist 1, nicht 0! └ └ Indexvektor: idx <- c(1, 5, 6) test[idx] 12 90 NA └ └ in R bereits vordefiniert: letters und LETTERS
  15. Datenverarbeitung > Daten vorbereiten > Vektoren 18 | 39 Daten

    vorbereiten > Vektoren test <- c(156, 98, 48, -82, 12) 〉 〉 Vektoren ändern └ └ test[5] <- 92 156 98 48 -82 92 └ └ test[c(4, 5)] <- c(80, 90) 156 98 48 80 90 └ └ test <- test[-3] 156 98 48 80 90 └ └ test <- sort(test) 80 90 98 156
  16. Datenverarbeitung > Daten vorbereiten > Vektoren 19 | 39 Daten

    vorbereiten > Vektoren test <- c(156, 98, 48, -82, 12) 〉 〉 Weitere Informationen aus Vektoren abrufen └ └ max(test) 156 └ └ which.min(test) 4 └ └ range(test) -82 156 └ └ mean(test) 46.4 └ └ median(test) 48 └ └ sum(test) 232
  17. Datenverarbeitung > Daten vorbereiten > Matrizen 20 | 39 Daten

    vorbereiten > Matrizen vec <- seq(from=10, to=60, by=10) 〉 〉 Matrix erzeugen └ └ mat <- matrix(vec, nrow=2, ncol=3, byrow=FALSE) [,1] [,2] [,3] [1,] 10 30 50 [2,] 20 40 60
  18. Datenverarbeitung > Daten vorbereiten > Matrizen 21 | 39 Daten

    vorbereiten > Matrizen vec <- seq(from=10, to=60, by=10) mat <- matrix(vec, nrow=2, ncol=3, byrow=FALSE) 〉 〉 Matrix-Funktionen └ └ Matrix-Transformation: t(mat) └ └ Element auslesen: mat[2, 2] 40 └ └ Alle Elemente einer Zeile oder Spalte auslesen: mat[2,] 20 40 60 (2. Zeile) mat[,2] 30 40 (2. Spalte)
  19. Datenverarbeitung > Daten vorbereiten > Zeichenketten 22 | 39 Daten

    vorbereiten > Zeichenketten 〉 〉 Zeichenketten erzeugen: char <- "abc" 〉 〉 Zeichenketten-Funktionen └ └ Zeichenketten zusammenfügen: char2 <- paste(1:5, letters[1:5], sep=".", collapse=",␣") "1.a, 2.b, 3.c, 4.d, 5.e" └ └ Teilfolgen aus Zeichenketten auslesen: substring(char2, first=6, last=nchar(char2)-5) "2.b, 3.c, 4.d"
  20. Datenverarbeitung > Daten vorbereiten > Datensätze 23 | 39 Daten

    vorbereiten > Datensätze 〉 〉 Datensätze eignen sich, um Daten von (unterschiedlichen) Datentypen zusammengefasst darzustellen 〉 〉 Vektoren und Matrizen können nur Daten gleichen Datentyps speichern 〉 〉 Listen (list) verhalten sich ähnlich wie Datensätze, einziger Unterschied: Spalten müssen nicht gleich lang sein 〉 〉 Datensatz erzeugen: data.frame(<obj1>, <obj2>, <obj3>, ...)
  21. Datenverarbeitung > Daten vorbereiten > Datensätze 24 | 39 Daten

    vorbereiten > Datensätze id <- 1:10 name <- character(10) age <- sample(18:99, size=10) IQ <- sample(90:140, size=10, replace=TRUE) student <- sample(c(TRUE, FALSE), size=10, replace=TRUE) for(i in 1:10) name[i] <- paste(sample(LETTERS, size=7), collapse="") # Zu einem Datensatz kombinieren user <- data.frame(id, name, age, IQ, student)
  22. Datenverarbeitung > Mit Daten arbeiten 25 | 39 Mit Daten

    arbeiten 〉 〉 Funktionstypen └ └ d<Funktionsfamilie> Dichtefunktionen └ └ p<Funktionsfamilie> Verteilungsfunktionen └ └ q<Funktionsfamilie> Quantilfunktionen
  23. Datenverarbeitung > Mit Daten arbeiten 26 | 39 Mit Daten

    arbeiten 〉 〉 Funktionsfamilie: Binomialverteilung (binom) 〉 〉 Wahrscheinlichkeit, bei 10 Mal Würfeln genau zwei 6er zu erhalten: └ └ dbinom(2, size=10, prob=1/6) 0.29071 └ └ pbinom(2, size=10, prob=1/6) 0.7752268
  24. Datenverarbeitung > Mit Daten arbeiten 27 | 39 Mit Daten

    arbeiten 〉 〉 Funktionsfamilie: Normalverteilung (norm) └ └ rnorm(12, mean=100, sd=15) zufällige Normalverteilung └ └ pnorm(1.5, mean=0, sd=1) 0.9331928 └ └ qnorm(0.9, mean=0, sd=1) 1.281552 〉 〉 Funktionsfamilie: Gleichverteilung (unif) └ └ dunif(...) └ └ punif(...) └ └ qunif(...)
  25. Datenverarbeitung > Mit Daten arbeiten 28 | 39 Mit Daten

    arbeiten 〉 〉 Weiteres Beispiel: Binomialtest └ └ Eine Münze wird 20 Mal geworfen. Es wird erwartet, dass sie 8 Mal "Kopf" anzeigt. └ └ (Zweiseitiges) Intervall mit der Trefferwahrscheinlichkeit: binom.test(8, n=20, p=0.5) 0.1911901 0.6394574 └ └ Rechtsseitiges Intervall mit der Trefferwahrscheinlichkeit: binom.test(..., alternative="greater") 0.2170686 1.0 └ └ Linksseitiges Intervall mit der Trefferwahrscheinlichkeit: binom.test(..., alternative="less") 0.0 0.6064151
  26. Diagramme erstellen > Devices 30 | 39 Devices 〉 〉

    Ausgabe von durch Befehle erstellten Grafiken in verschiedenen Ausgabekanälen (Devices) 〉 〉 Device ≙ leeres Blatt Papier, auf dem Inhalte eingezeichnet werden 〉 〉 Inhalte werden mithilfe von Funktionen eingezeichnet 〉 〉 Plot in RStudio stellt auch ein Device dar
  27. Diagramme erstellen > Devices 31 | 39 Devices 〉 〉

    Neues Device öffnen └ └ windows(width=<Breite>, height=<Hoehe>) Windows └ └ quartz(...) OS X └ └ x11(...) Linux └ └ dev.new(...) plattformunabhängig 〉 〉 Device schließen └ └ dev.off() aktuelles Device schließen └ └ graphics.off() alle Devices schließen
  28. Diagramme erstellen > Grafiken exportieren 32 | 39 Grafiken exportieren

    〉 〉 unterschiedliche Formate möglich └ └ pdf() PDF └ └ postscript() PostScript └ └ svg() SVG └ └ png() PNG └ └ jpeg() JPEG └ └ bmp() BMP └ └ tiff() TIFF └ └ u.v.m.
  29. Diagramme erstellen > Grafiken exportieren 33 | 39 Grafiken exportieren

    1. Device festlegen └ └ pdf(file="<Dateiname>", width=<Breite>, height=<Hoehe>) └ └ jpeg(filename="<Dateiname>", width=<Breite>, height=<Hoehe>, units="<px|in|cm|mm>", quality=<Bildkompression>) 2. Grafikfunktionen ausführen (werden direkt in die Datei geschrieben) 3. Ausgabe in die Datei beenden und Device schließen dev.off() oder graphics.off()
  30. Diagramme erstellen > Grafikfunktionen 34 | 39 Grafikfunktionen 〉 〉

    plot() Streudiagramme in zweidimensionalem Koordinatensystem mit Wertepaaren in Form von Punkten und/oder Linien └ └ x, y x- bzw. y-Koordinaten der Punkte in Form von Vektoren └ └ type Darstellungsform der Wertepaare 〉 〉 matplot() wie plot(), allerdings können mehrere Datenreihen (in Form von Matrizen) gleichzeitig abgebildet werden
  31. Diagramme erstellen > Grafikfunktionen 34 | 39 Grafikfunktionen 〉 〉

    plot() Streudiagramme in zweidimensionalem Koordinatensystem mit Wertepaaren in Form von Punkten und/oder Linien └ └ x, y x- bzw. y-Koordinaten der Punkte in Form von Vektoren └ └ type Darstellungsform der Wertepaare 〉 〉 matplot() wie plot(), allerdings können mehrere Datenreihen (in Form von Matrizen) gleichzeitig abgebildet werden -6 -4 -2 0 2 4 6 -2 -1 0 1 2 Sinuskurven
  32. Diagramme erstellen > Grafikfunktionen 35 | 39 Grafikfunktionen 〉 〉

    barplot() Säulendiagramme zur Darstellung von Werten für verschiedene Gruppen └ └ height Größen der einzelnen Werte in Form eines Vektors └ └ horiz wenn TRUE, dann werden horizontale anstelle von vertikalen Säulen verwendet └ └ names.arg Beschriftung der einzelnen Säulen in Form eines Vektors
  33. Diagramme erstellen > Grafikfunktionen 35 | 39 Grafikfunktionen 〉 〉

    barplot() Säulendiagramme zur Darstellung von Werten für verschiedene Gruppen └ └ height Größen der einzelnen Werte in Form eines Vektors └ └ horiz wenn TRUE, dann werden horizontale anstelle von vertikalen Säulen verwendet └ └ names.arg Beschriftung der einzelnen Säulen in Form eines Vektors 0 bis 19 20 bis 39 40 bis 59 60 bis 79 80 bis 99 Altersverteilung
  34. Diagramme erstellen > Grafikfunktionen 36 | 39 Grafikfunktionen 〉 〉

    pie() Kreisdiagramm zur Darstellung von Größen einzelner Werte in Form von Kreissektoren └ └ x Größen der einzelnen Werte in Form eines Vektors (keine negativen Angaben erlaubt!) └ └ labels Beschriftungen der einzelnen Kreissektoren 〉 〉 weitere Merkmale (Farben, Achsenbeschriftung, Titel usw.) können eingestellt werden
  35. Diagramme erstellen > Grafikfunktionen 36 | 39 Grafikfunktionen 〉 〉

    pie() Kreisdiagramm zur Darstellung von Größen einzelner Werte in Form von Kreissektoren └ └ x Größen der einzelnen Werte in Form eines Vektors (keine negativen Angaben erlaubt!) └ └ labels Beschriftungen der einzelnen Kreissektoren 〉 〉 weitere Merkmale (Farben, Achsenbeschriftung, Titel usw.) können eingestellt werden [0 bis 19]: 10% [20 bis 39]: 60% [40 bis 59]: 10% [60 bis 79]: 10% [80 bis 99]: 10% Altersverteilung (in Prozent)
  36. Diagramme erstellen > Grafikfunktionen 36 | 39 Grafikfunktionen 〉 〉

    pie() Kreisdiagramm zur Darstellung von Größen einzelner Werte in Form von Kreissektoren └ └ x Größen der einzelnen Werte in Form eines Vektors (keine negativen Angaben erlaubt!) └ └ labels Beschriftungen der einzelnen Kreissektoren 〉 〉 weitere Merkmale (Farben, Achsenbeschriftung, Titel usw.) können eingestellt werden
  37. Herzlichen Dank für Ihre Aufmerksamkeit! nach: Daniel Wollschläger R kompakt

    – Der schnelle Einstieg in die Datenanalyse Springer-Verlag Berlin Heidelberg 2013
  38. Umgang mit der Statistiksoftware R > Literatur 38 | 39

    Literatur 〉 〉 D. Wollschläger/R kompakt – Der schnelle Einstieg in die Datenanalyse └ └ Springer-Verlag, 2013 └ └ ISBN 978-3-642-40310-1 〉 〉 D. Wollschläger/Grundlagen der Datenanalyse mit R – Eine anwendungsorientierte Einführung └ └ 3. Auflage └ └ Springer-Verlag, 2014 └ └ ISBN 978-3-662-45506-7
  39. Umgang mit der Statistiksoftware R > Hilfreiche Links 39 |

    39 Hilfreiche Links 〉 〉 Projekt-Website http://www.r-project.org/ 〉 〉 Dokumentation http://cran.r-project.org/manuals.html 〉 〉 RStudio http://www.rstudio.com/ 〉 〉 Fragen und Antworten http://stackoverflow.com/tags/R