pfadu = "http://www.phonetik.uni-muenchen.de/~jmh/lehre/Rdf"

library(ggplot2)
library(dplyr)
source(file.path(pfadu, "sig.fn.R"))



######################################################################
# Die Logistische Regression
######################################################################
# Zur Erinnerung:
# In der logistischen Regression ist die
# abhaengige Variable eine binaere Kategorie (z.B. /p/ oder /b/)
# Die unabhaengige Variable kann numerisch oder kategorial sein.

# 1 ############################################## Unabhaengige Variable ist numerisch
l.df = read.table(file.path(pfadu, "l.df.txt"))
# Inwiefern wird das Urteil (ob "leiden" oder "leiten") vom Stimulus beeinflusst?
# Wo ist der Umkipppunkt? (= der Stimulus-Wert zu dem die Wahrscheinlichkeit
# von "leiden" oder "leiten"= 0.5?)
head(l.df)


ggplot(l.df) +
  aes(x = stim,fill=Urteil)+
  geom_bar(position="fill")
# Hier ist geom_bar okay, da stim mit 1,2,3,4,5,6,7 sowohl als Faktor (mit sieben Stufen), 
# aber auch als numerische Variable gesehen werden kann


levels(l.df$Urteil)
P = l.df$Urteil == "leiten"
Q = !P
l.df = data.frame(l.df,P,Q)

l.sum = l.df %>%
  group_by(stim) %>%
  summarise(P =sum(P),Q = sum(Q))%>%
  mutate(p = P/(P+Q))

plot(p ~ stim,data=l.sum)

l.glm = glm(Urteil ~ stim,
             data = l.df,
             family ="binomial")

l2.glm = glm(cbind(P,Q) ~ stim,
            data = l.sum,
            family ="binomial")

anova(l.glm,test="Chisq")
anova(l2.glm,test="Chisq")

# Stimulus beeinflusste die leiden/leiten-Urteile
# (X^2[1]=93.8, p < 0.001)

ggplot(l.df) +
  aes(x = stim, fill = Urteil) +
  geom_bar(position="fill")

l.glm = glm(Urteil~stim,data=l.df,family=binomial)

anova(l.glm,test="Chisq")
# Ja, das Urteil war abhängig vom Stimulus (Chi^2[1] = 93.8, p < 0.001).

coef(l.glm)
umkipp = -coef(l.glm)[1]/coef(l.glm)[2]
umkipp

levels(l.df$Urteil)

P = l.df$Urteil == "leiten"
Q = !P

l.df = data.frame(l.df,P,Q)

l.sum = l.df %>%
  group_by(stim) %>%
  summarise(P = sum(P),Q = sum(Q)) %>%
  mutate(p = P/(P+Q))

plot(p ~ stim, data = l.sum)
abline(v = umkipp)
sig(coef(l.glm)[1],coef(l.glm)[2],add=T)

abline(h = 0.5)

ggplot(l.sum) +
  aes(x = stim, y = p) +
  geom_point()


# 2 ############################################## Unabhaengige Variable ist kategorial
tap = read.table(file.path(pfadu, "alvtap.txt"))

# Der Data-Frame zeigt wie oft australisch-englische
# Sprecher einen post-vokalischen Alveolar (in z.B. water)
# mit einem /ɾ/ (einem Tap) (JA) oder einem /t/ (NEIN) produziert haben.
# Wird die Wahl vom Konsonanten (K) als Tap (J) oder
# /t/ (N) vom Herkunftsland (Her: "E" oder "I") beeinflusst?


# 3 ########
read.table(file.path(pfadu, "franken.txt"))
fr = read.table(file.path(pfadu, "franken.txt"))

# In einem Experiment mussten Hörer Wörter identifizieren.
# Der Faktor Correct bestimmt, ob der Hörer das Wort richtig (TRUE)
# identifiziert hatte oder nicht (FALSE).
# Inwiefern beeinflusste die Altersgruppe, ob die Wörter richtig identifiziert wurden?


# 4 ######## 
read.table(file.path(pfadu, "adaten.df.txt"))
f1 = read.table(file.path(pfadu, "adaten.df.txt"))
# In diesem Experiment haben Hörer aufgrund
# von F1 Änderungen entschieden, ob sie /a/ oder /a:/ wahrgenommen haben.
# Wird die Wahl zwischen /a, a:/ von F1 beeinflusst? Überlagern Sie eine Sigmoid
# -Funktion auf die Proportion der /a:/-Urteile als Funktion von F1.



