Lösungen Aufgaben 1

Aufgabe 1.1: Grafiken mit ggplot2

Verschaffen Sie sich einen Überblick über die Datentabelle dat.studenten aus dem Paket DA.students, und finden Sie Antworten auf die folgenden Fragen

  1. Wie viele Studentinnen und Studenten wurden insgesamt befragt?

  2. Wie viele Merkmale wurden abgefragt?

  3. Gibt es einen Zusammenhang zwischen dem Alter des Vaters und dem Alter der jeweils befragten Person? (Was erwarten Sie? Stellen Sie eine Hypothese auf.)

  4. Ändern Sie den Grafen aus dem vorherigen Aufgabenteil derart, dass Sie einen Eindruck davon bekommen, wie viele Beobachtungen hinter jedem Datenpunkt stecken.

  5. Was steht im Merkmal MatheZufr?

  6. Warum ist ein Standard-Streudiagramm, das man mit

      ggplot(dat.studenten, aes(x=Wohnform, y=Geschlecht)) + geom_point()

    erzeugt, nutzlos?

  7. Welche der Merkmale in der Datentabelle sind kategorial, welche metrisch?

  8. Erstellen Sie einen Graphen, der den Altersunterschied zwischen der Studentin/ dem Student und dem Vater gegen den Alterssunterschied zwischen der Studentin/ dem Student und der Mutter gegeneinander aufträgt. Tipp: Es ist möglich den Aesthetics auch Summen oder Differenzen von Merkmalen zuzuordnen.

  9. Zeichnen Sie in den im vorherigen Aufgabenteil erstellten Graphen die Wohnform mit ein. Was fällt auf?

Lösung

# Lade die Notwendigen Pakete:
 
library(pacman)  # Lade pacman (Paketmanager)
p_load(tidyverse, DA.students) # Lade / Installiere Tidyverse und DA.students

Bemerkung: Das Paket DA.students kann nicht über den Befehl p_load() installiert werden, da es nicht auf CRAN ist, sondern muss lokal installiert gespeichert und dann installiert werden!

# i) / ii):

dat.studenten
# A tibble: 1,254 × 9
   Alter Groesse Geschlecht AlterV AlterM AnzSchuhe NoteMathe MatheZufr Wohnform
   <dbl>   <dbl> <fct>       <dbl>  <dbl>     <dbl>     <dbl> <fct>     <chr>   
 1    19     168 weiblich       54     50        90       3   geht so   WG      
 2    20     165 weiblich       52     52       100       3   geht so   Eltern  
 3    23     190 männlich       60     53        10      NA   <NA>      WG      
 4    19     178 männlich       51     46        11       4   unzufrie… Eltern  
 5    25     170 weiblich       59     54        25       2.3 zufrieden Eltern  
 6    20     169 weiblich       55     54        30       1.7 sehr zuf… Eltern  
 7    22     175 weiblich       49     56        60       2.7 zufrieden Sonstige
 8    23     177 männlich       55     50        70       2.3 sehr zuf… WG      
 9    21     189 männlich       50     50        10       5   unzufrie… Eltern  
10    21     183 männlich       54     54         6       2.7 zufrieden Eltern  
# ℹ 1,244 more rows
  • 9 Spalten: Merkmale
  • 1254 Zeilen: Beobachtungen / Anzahl der Studenten
# iii) / iv): erzeuge Streudiagramm: (alpha für bessere Sichtbakeit)

ggplot(data = dat.studenten, 
       mapping = aes(x = AlterV, y = Alter)) + 
         geom_point(alpha = 0.15) +
         geom_smooth()

# v)

ggplot(data = dat.studenten) + 
  geom_point(aes(x = Wohnform, y= Geschlecht), alpha = 0.01)

ggplot(data = dat.studenten) +
  geom_bar(aes(x = Wohnform, fill = Geschlecht))

ggplot(data = dat.studenten) +
  geom_bar(aes(x = Wohnform, fill = Geschlecht), position = "dodge")

  • <dbl> : double (Fließkommazahl)
  • <fct> : factor (kategoriales Merkmal)
  • <chr> : character (kategoriales Merkmal)
  • <ord> : ordered factor (ordinales Merkmal)
  • metrisch: Alter, Groesse, AlterV, AlterM, AnzSchuhe, NoteMathe
  • kategorial: Geschlecht, MatheZufr, Wohnform
  • (eigentlich ordinal: MatheZufr, NoteMathe)

Zusatzinformationen:

p_load(patchwork)   # um Gafiken nebeneinander zu setzen

p1 <- ggplot(data = dat.studenten) + 
        geom_point(mapping = aes(x = AlterV, y = Alter, color = Geschlecht), 
                   alpha = 0.25) 

p2 <- ggplot(data = dat.studenten) + 
        geom_point(mapping = aes(x = AlterV, y = Alter), 
                   color = "blue", 
                   alpha = 0.1)
(p1|p2)

Aufgabe 1.2: Facetten und Boxplot

Sie benötigen den Datensatz: dat.studenten aus dem Paket DA.students.

  1. Stellen Sie den Zusammenhang zwischen Schuhpaaranzahl und Alter der Person dar. Was fällt auf?
  2. Färben Sie die Punkte in der vorherigen Grafik je nach Geschlecht. Was fällt auf?
  3. Zeichen Sie für die ursprünglichen Graphik je Geschlecht eine Facette. Was sind die Vor- und Nachteile dieser Grafik im Vergleich zur eingefärbten?
  4. Zeichnen Sie nun je Geschlecht eine Facette mit dem Boxplot der Schuhpaaranzahl um Ihre Vermutung aus den vorherigen Aufgabenteilen zu bestätigen.

Lösung

library(pacman)
p_load(tidyverse, DA.students, patchwork)

# Mit dem Paket patchwork können die Grafiken angeordnet werden.
# i)

G1 <- dat.studenten |>  ggplot(aes(x = Alter, y= AnzSchuhe)) +
                           geom_point(alpha = 0.2) 

G2 <- dat.studenten |>  ggplot(aes(x = Alter, y= AnzSchuhe)) +
                           geom_jitter(alpha = 0.1, height = 0)

(G1|G2)

# ii)

G3 <- dat.studenten |>  ggplot(aes(x = Alter, y= AnzSchuhe, 
                                   color = Geschlecht)) +
                           geom_point(alpha = 0.2)

G4 <- dat.studenten |>  ggplot(aes(x = Alter, y= AnzSchuhe, 
                                    color = Geschlecht)) +
                            geom_jitter(alpha = 0.1, height = 0)

(G3|G4)

# iii)

dat.studenten |>  ggplot(aes(x = Alter, y= AnzSchuhe)) +
                    geom_point(alpha = 0.2) + 
                    facet_wrap (~Geschlecht)

# iv) 

dat.studenten |> ggplot(aes(x = Geschlecht, y = AnzSchuhe)) +
                    geom_boxplot() 

dat.studenten |> ggplot(aes(y = AnzSchuhe, x = "")) +
                    geom_boxplot() + 
                    facet_wrap(~Geschlecht)

Aufgabe 1.3: Säulendiagramme

Sie benötigen den Datensatz: dat.studenten aus dem Paket DA.students.

Analysieren Sie mit nach dem Geschlecht gruppierten Säulendiagrammen den Zusammenhang zwischen der Wohnform und dem Geschlecht. Verwenden Sie die dazu die Einstellungen stack, fill und dodge für den Parameterposition der geom_bar()-Funktion und klären Sie folgende Fragen:

  1. Wurden mehr Frauen oder mehr Männer befragt?
  2. Bei welchem Geschlecht ist der Anteil der Personen höher, die in einer WG wohnen?
  3. Leben von den Befragten mehr Frauen oder mehr Männer in einem Appartement?

Lösung

# Laden der Pakete:
library(pacman)
p_load(tidyverse, DA.students)
# i)
ggplot(data = dat.studenten) + 
   geom_bar(aes(x = Geschlecht))

ggplot(dat.studenten) + 
  geom_bar(aes(x = Geschlecht, fill = Wohnform))

# ii)
ggplot(data = dat.studenten) + 
   geom_bar(aes(x = Wohnform, fill = Geschlecht)) 

# entspricht position = "stack"

ggplot(data = dat.studenten) + 
   geom_bar(aes(x = Wohnform, fill = Geschlecht), position = "dodge")

# Um den Anteil sichtbar zu machen:
ggplot(data = dat.studenten) + 
   geom_bar(aes(x = Wohnform, 
                y = after_stat(prop),
                group = Geschlecht,
                fill = Geschlecht), position = "dodge")

Im letzten Diagramm werden jeweils Männer und Frauen auf 100% skaliert. Man kann also erkennen, dass circa 65% der Männer, aber nur etwas über 40% der Frauen noch bei den Eltern leben.

# iii)
ggplot(dat.studenten) + 
  geom_bar(aes(x = Geschlecht, fill = Wohnform), position = "dodge")

Aufgabe 1.4: Säulen- und Balkendiagramme

Sie benötigen den Datensatz: dat.studenten aus dem Paket DA.students.

Veranschaulichen Sie die Verteilung der Zufriedenheit mit der Mathenoten (Merkmal: MatheZufr) jeweils in einem Säulen- und in einem Balkendiagramm. Welches Diagramm ist dafür besser geeignet?

Lösung

library(pacman)
p_load(tidyverse, DA.students)

ggplot(dat.studenten) + 
  geom_bar(aes(x = MatheZufr))

ggplot(dat.studenten) + 
  geom_bar(aes(x = MatheZufr)) + 
  coord_flip()

ggplot(dat.studenten) + 
  geom_bar(aes(y = MatheZufr, fill = Geschlecht), 
           position = "dodge")