library(ggplot2)
library(dplyr)

############################# 
# 1. Laden Sie den dataframe
plosiv.df = read.table(file.path(pfadu, "plosiv.df.txt"))

# 15 Sprecher produzierten /p/ und /t/ Plosive.
# Die Energie-Werte der Plosive wurde gemessen. Werden die
# Energie-Werte (Spalte dB) von der Artikulationsstelle (Spalte K) beeinflusst?
# Bitte mit passender Abbildung und passendem statistischem Test!

with(plosiv.df,table(K,Vpn))
#Die Daten sind also gepaart (es liegen für jeden Sprecher ein /p/- und ein /t/-Wert vor)
#-->gepaarter t-Test
#Wir brauchen zunächst die Differenzen zwischen dB-Werten ( diff(dB) ) von t und p
#pro Versuchsperson ( group_by(Vpn) )
plosiv.df.diff = plosiv.df %>%
  group_by(Vpn) %>%
  summarise(dB = diff(dB))

# Dann nehmen wir den neuen dataframe und erstellen daraus den Plot:
ggplot(plosiv.df.diff) +
  aes(y = dB) +
  geom_boxplot()

# oder einfacher:
boxplot(plosiv.df.diff$dB)

#Testen, ob die Daten in plosiv.df.diff$dB wahrscheinlich normalverteilt sind
shapiro.test(plosiv.df.diff$dB)

#-->knapp abweichend von Normalverteilung 
#--> daher KEIN t.test(), sondern
wilcox.test(plosiv.df.diff$dB)

# "Ein Wilcoxon signed rank test zeigte, dass bei /t/ höhere dB-Werte erreicht wurden (V = 90.5, p < 0.05)."

############################# 
# 2. Laden Sie
alter.df = read.table(file.path(pfadu, "alter.df.txt"))
# Zeigen Sie durch eine Abbildung und einen statistischen Test, 
# ob die Werte in Spalte "grund" vom Alter ("Alter") abhängen.

alter.df$Alter
#--> ist kategorial, daher:

ggplot(alter.df) +
  aes(y = grund, x = Alter) +
  geom_boxplot()

#Normalverteilung beider Verteilungen prüfen
with(alter.df, tapply(grund, Alter, shapiro.test))

#Beide okay, also
t.test(grund ~ Alter, data = alter.df)
# "Ein t-Test ergab, dass Alter keinen signifikanten Einfluss auf die Werte in "grund" hatte."


#############################
# 3. Diese Daten:
fremd = read.table(file.path(pfadu, "fremd.df.txt"))
# zeigen fuer 30 Sprecher (Vpn) eine Messung der Sprechgeschwindigkeit (tempo),
# wenn sie in ihrer Muttersprache oder ihrer Zweitsprache (Sprache) reden.
# Pruefen Sie durch eine Abbildung und statistischen Test,
# inwiefern die Sprechgeschwindigkeit von der Sprache beeinflusst wird.

fremd.diff = fremd %>%
  group_by(Vpn) %>%
  summarise(tempodiff = diff(tempo))

ggplot(fremd.diff) +
  aes(y = tempodiff, x = "") +
  geom_boxplot() +
  ylab("Tempodifferenz") +
  xlab("foreign-native")

shapiro.test(fremd.diff$tempodiff)

#Okay, daher:
#entweder:
t.test(fremd.diff$tempodiff)
#oder
t.test(tempo ~ Sprache, paired = TRUE, data = fremd)

#"Das Tempo wurde signifikant davon beeinflusst, 
# ob die Sprecher in ihrer Muttersprache oder einer Zweitsprache sprachen
# (t[29] = 5.3, p < 0.001)"

#############################
# 4. Die VOT-Werte fuer /d/ von 15 deutschen monolingualen Sprechern waren:
mon = c(26, 26, 26, 28, 18, 21, 19, 25, 23, 29, 22, 22, 24, 23, 22)

# Die VOT-Werte fuer /d/ von 15 deutsch-franzoesisch bilingualen Sprechern waren:
bil = c(18, 20, 20, 26, 17, 23, 20, 16, 20, 18, 21, 29, 20, 25, 19)

# Pruefen Sie anhand einer Abbildungen und eines statistisches Tests, 
# ob VOT aufgrund der Sprachkenntnisse beeinflusst wird.

mb.df = data.frame(VOT = c(mon,bil),
                   Sprecher = paste("S",rep(1:30),sep="_"),
                   MonoBil = rep(c("mon","bil"),each=15)) 
# Spalte $Sprecher ist nicht unbedingt nötig (nur für Zeile 107), nur der Vollständigkeit halber;
# dann:
# wir wissen eigentlich aufgrund der Fragestellung, dass die Daten NICHT gepaart sind;
# dennoch:
with(mb.df,table(Sprecher,MonoBil))
#also ein "entweder-oder"-Fall: boxplot mit zwei Boxen und ungepaarter t-Test:

ggplot(mb.df) +
  aes(y = VOT, x = MonoBil) +
  geom_boxplot()

with(mb.df, tapply(VOT, MonoBil, shapiro.test))
#Beide nicht signifikant von Normalverteilung abweichend, also kein wilcox.test(), sondern
t.test(VOT ~ MonoBil, data = mb.df)
# Die bilingualen Sprecher produzierten eine signifikant niedrigere VOT als die monolingualen Sprecher
# (t[27,5] = 2.3, p < 0.05)
