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"))
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:
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()
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
?
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?
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)