library(ggplot2)
asp = read.table(file.path(pfadu, "asp.txt"))
coronal = read.table(file.path(pfadu, "coronal.txt"))
int.df = read.table(file.path(pfadu, "intdauer.txt"))

1. Zwei Unabhängige Variablen

In der Regel haben wir es mit einer abhängigen Variable zu tun, die vermutlich von mindestens einer anderen Variable (die wir dann unabhängige Variable(n) nennen) abhängig ist (daher der Name “abhängige Variable”), d.h. sich durch deren Einfluss verändert (so vermuten wir zumindest).

Bislang haben wir Abbildungen erzeugt, die jeweils darstellen sollten, wie eine Variable sich durch den Einfluss einer anderen Variable ändert. Wir können aber auch abbilden, wie die abhängige Variable durch zwei oder drei unabhängige Variablen beeinflusst wird. Hierzu verteilen wir eine der unabhängigen Variablen wie bislang auf die x-Achse (entweder kontinuierlich, oder als stufiger, kategorialer Faktor).

head(asp)
##        d             Wort Vpn Kons Bet
## 1 26.180 Fruehlingswetter k01    t  un
## 2 23.063          Gestern k01    t  un
## 3 26.812           Montag k01    t  un
## 4 14.750            Vater k01    t  un
## 5 42.380            Tisch k01    t  be
## 6 21.560           Mutter k01    t  un

Nehmen wir nun an, wir wollen wissen, wie die Dauerwerte in d in Abhängigkeit von sowohl Kons als auch von Bet variiert. Die Dauerwerte sind kontinuierlich und numerisch, sowohl die Konsonantenkategorien als auch die Betonung (unbetont vs. betont) sind kategorial. Für eine numerische abhängige Variable und eine kategoriale unabhängige Variable benutzen wir eine Boxplot-Darstellung:

ggplot(asp) + 
  aes(y = d, x = Kons) + 
  geom_boxplot() 

ggplot(asp) + 
  aes(y = d, x = Bet) + 
  geom_boxplot() 

Wie man sieht, beschreiben beide Abbildungen jeweils auf der y-Achse die Werte für d, wenn eine der jeweils zwei Bedingungen auf der x-Achse gegeben ist. Bezeichnen wir also die Abhängigkeit einer Variable y durch eine Variable x mit

y ~ x

Einen solchen Zusammenhang kann man sehr gut in einer zweidimensionalen Ebene abbilden, da wir es eben mit zwei Dimensionen zu tun haben. Wir haben es aber hier mit zwei unabhängigen Variablen und damit also mit drei Dimensionen zu tun:

y ~ x1 + x2

Wir haben nun zwei Möglichkeiten: Wir können die zusätzliche Variable:

Farbe (col = x2 in aes())

# y ~ x1 + x2
ggplot(asp) + 
  aes(y = d, x = Kons, col = Bet) + 
  geom_boxplot() 

# kann auch y ~ x2 + x1 sein
ggplot(asp) + 
  aes(y = d, x = Bet, col = Kons) + 
  geom_boxplot() 

Panels (facet_wrap(~x2))

# Zu ii. Getrennte Panels, x1 in einem Panel, x2 in dem anderen mit der Funktion facet_wrap()
ggplot(asp) + 
  aes(y = d, x = Kons) + 
  geom_boxplot() + 
  facet_wrap(~Bet)

Was ist der Einfluss des Dialektes (Region) und Sozialklasse (Socialclass) auf die Artikulationsstelle (Fr) in dem Data-Frame coronal?

  • y (Fr): kategorial
  • x1 (Region): kategorial
  • x2 (Sozialklasse): kategorial

Alle Variablen in y ~ x1 + x2 sind kategorial: daher geom_bar():

# Nur x1 (also ohne zwischen den Sozialklassen zu differenzieren)
p1 = ggplot(coronal) + 
  aes(fill = Fr, x = Region) + 
  geom_bar() 
p1

# Mit x2
p2 = facet_wrap(~Socialclass)
p1 + p2

# Mit eigenen Farben
farben = c("cyan", "gold")
p3 = scale_fill_manual(values = farben) 
p1 + p2 + p3

Inwiefern wird die Dauer (Dauer) von der Intensität (dB) - getrennt pro Person (Vpn) - im Data-Frame int.df beeinflusst?

  • y: Dauer (numerisch)
  • x1: Intensität (numerisch)
  • x2: Vpn (kategorial)

In y ~ x1 + x2 sind zwei Variablen (eine davon die abhängige) numerisch. Daher benutzen wir geom_point():

ggplot(int.df) + 
  aes(y = dB, x = Dauer, col = Vpn) + 
  geom_point() 

Oder:

# Getrennte Panels, x1 in einem Panel, x2 in dem anderen.
ggplot(int.df) + 
  aes(y = dB, x = Dauer) + 
  geom_point() + 
  facet_wrap(~Vpn)

Selbstverständlich geht auch eine Kombination von farblicher Kodierung und getrennten Panels:

ggplot(int.df) + 
  aes(y = dB, x = Dauer, col = Vpn) + 
  geom_point() + 
  facet_wrap(~Vpn)