Die Analyse von Proportionen: c2 und Logistic Regression Jonathan Harrington Befehle: proportion.txt Kontinuierlich und kategorisch Kontinuierlich Was ist die Wahrscheinlichkeit, dass: F2 von [i:] höher ist als von [I] (t-test) F1 und Dauer von [a] miteinander korreliert sind (Regression)? Kategorial Was ist die Wahrscheinlichkeit, dass: Eine steigende Melodie in Aussagen von jugendlichen im Vergleich zu älteren Personen verwendet wird? Ein [r] statt [R] in Bayern im Vergleich zu Schleswig-Holstein verwendet wird? In einer kategorialen Analyse werden meistens 2 Proportionen miteinander verglichen. zB wir zählen wie oft steigende Melodien in Aussagen bei jugendlichen (35%) und älteren Leuten (11%) vorkommen. Sind diese Proportionen (35%, 11%) signifikant unterschiedlich? Die tests dafür: c2 und Logistic Regression. Solche Methoden haben insbesondere in der Soziolinguistik/phonetik eine Anwendung, in der sehr oft auditiv die Proportionen wahrgenommener Allophone miteinander als Funktion von Alter, Dialekt usw. verglichen werden, ohne unbedingt die kontinuierlichen akustischen (oder artikulatorischen) Parameter (Dauer, Formanten usw.) zu analysieren. (In der Soziolinguistik: Logistic Regression = VARBRUL) Terminologie: Faktoren und Ebenen (levels) Ein Faktor Was ist die Wahrscheinlichkeit, dass ein silbenfinaler /t/ gelöst wird? Faktor = silbenfinaler /t/ mit 2 Ebenen: gelöst oder nicht gelöst. Was ist die Wahrscheinlichkeit, dass ein silbenfinaler /t/ gelöst, nicht-gelöst oder lenisiert wird? Faktor = silbenfinaler /t/ mit 3 Ebenen (gelöst, nicht-gelöst, lenisiert) Zwei Faktoren Wird ein silbenfinaler /t/ häufiger in Bayern als in Hessen gelöst? F1: /t/ mit 2 Ebenen (gelöst, nicht-gelöst) F2: Dialekt mit 2 Ebenen (bayerisch, hessisch). Ist die Verteilung der /t/ Realisierungen – ob sie gelöst, lenisiert oder nicht-gelöst werden – dieselbe in Bayern, Hessen, und Sachsen? Zwei Faktoren ( /t/ und Dialekt) jeweils mit 3 Ebenen. Drei Faktoren Unterscheidet sich die Häufigkeit der /l/-Vokalisierungen zwischen Männern und Frauen in Bayern und Hessen? F1: /l/ mit 2 Ebenen (vokalisiert oder nicht) F2: Geschlecht mit 2 Ebenen: (M, F) F3: Dialekt mit 2 Ebenen (Bayern, Hessen). Die statistische Analyse von Proportionen Eine oder zwei Faktoren Analyse von Proportionen prop.test() = c2-test chisq.test() (aber prop.test() kann nicht eingesetzt werden, wenn beide Faktoren mehr als 2 Ebenen haben) Mehr als 2 Faktoren** Logistic Regression (kann auch bei 2 Faktoren eingesetzt werden**, und gibt fast das gleiche Ergebnis wie ein c2-test). glm() = generalized linear model (der Name soll an lm() erinnern – da sie miteinander viele Ähnlichkeiten haben) **Ein Faktor muss 2 Ebenen haben 1. Ein Faktor, zwei Ebenen (Faktor = Münze, Ebenen = Kopf, Zahl) Ich werfe eine Münze 20 Mal und bekomme 5 Mal Kopf. Ist die Münze gezinkt? d.h. weicht die Proportion 5/20 = ¼ signifikant von 10/20 = ½ ab? prop.test(5, 20, .5) data: 5 out of 20, null probability 0.5 X-squared = 4.05, df = 1, p-value = 0.04417 alternative hypothesis: true p is not equal to 0.5 95 percent confidence interval: 0.0959326 0.4941155 sample estimates: p 0.25 Die Münze ist gezinkt: c2(1) = 4.05, p < 0.05 2 Faktoren jeweils 2 Ebenen Die Anzahl der glottalisierten silbenfinalen /t/s ist in einem englischen Dialekt getrennt fuer Männer und Frauen gemessen worden. Silbenfinaler /t/ Geschlecht glottalisiert nicht-glottalisiert n Männer 110 90 200 Frauen 82 108 190 Kommt die Glottalisierung häufiger bei Männern vor? Die Frage in eine Proportion umsetzen: unterscheiden sich die Proportionen der Glottalisierungen zwischen M und F? Genauer: sind 110/200 und 82/190 voneinander signifikant unterschiedlich? Silbenfinaler /t/ Geschlecht glottalisiert nicht-glottalisiert n Männer 110 90 200 Frauen 82 108 190 prop.test(c(110, 82), c(200, 190)) data: c(110, 82) out of c(200, 190) X-squared = 5.0034, df = 1, p-value = 0.0253 alternative hypothesis: two.sided 95 percent confidence interval: 0.01473134 0.22211077 sample estimates: prop 1 prop 2 0.5500000 0.4315789 Männer und Frauen dieses Dialekts unterscheiden sich in der Häufigkeit der silbenfinalen /t/Glottalisierung c2(1) = 5.00, p < 0.05. Diese Daten zeigen, inwiefern in der Erzeugungen einiger Sätze H* im Gegensatz zu L*+H in akzentuierten Wörtern von Versuchspersonen aus München und Hamburg erzeugt wurden. L*+H H* München 25 14 Hamburg 56 93 Gibt es zwischen München und Hamburg einen signifikanten Unterschied in der Verteilung dieser Tonakzente? 2 Faktoren, ein Faktor mit 2 Ebenen, die andere mit mehr als 2 Ebenen Die Verteilung der /l/ Vokalisierungen in einem Dialekt in 4 Altersgruppen ist wie folgt: pfad = "das Verzeichnis der gespeicherten Datei lvoc.txt" lvoc = as.matrix(read.table(paste(pfad, "lvoc.txt", sep="/"))) Alter /l/ vok nicht-vok A20min A20bis30 A31bis40 A41plus 58 55 62 38 34 49 84 59 Hat Alter einen signifikanten Einfluss auf /l/-Vokalisierung? = ist die Verteilung der /l/s in den Alterstufen unterschiedlich? barplot(lvoc, beside=T, legend=T) lvoc vok nicht-vok A20min A20bis30 A31bis40 A41plus 58 55 62 38 34 49 84 59 In Proportionen umwandeln – und dazu brauchen wir die jeweiligen Gruppensummen apply(lvoc, 2, sum) A20min A20bis30 A31bis40 92 104 146 A41plus 97 und vergleichen dann miteinander 58/92, 55/104, 62/146, 38/97 prop.test(c(58, 55, 62, 38), c(92, 104, 146, 97)) prop.test(c(58, 55, 62, 38), c(92, 104, 146, 97)) data: c(58, 55, 62, 38) out of c(92, 104, 146, 97) X-squared = 14.0959, df = 3, p-value = 0.002778 alternative hypothesis: two.sided sample estimates: prop 1 prop 2 prop 3 prop 4 0.6304348 0.5288462 0.4246575 0.3917526 Alter hat einen signifikanten Einfluss auf /l/-Vokalisierung, c2(3) = 14.10, p < 0.01 Das gleiche mit chisq.test() chisq.test(lvoc) Pearson's Chi-squared test data: lvoc X-squared = 14.0959, df = 3, p-value = 0.002778 Wie wird c2 berechnet? c2 ist die Abweichung der tatsächlich vorkommenden (Observed) von den zu erwartenden (Expected) Verteilungen, unter der Annahme (Null Hypothese) dass die Verteilungen pro Gruppe gleich sind. vok nicht-vok A20min A20bis30 A31bis40 A41plus 58 55 62 38 34 49 84 59 Null Hypothese: die Proportion der vokalisierten /l/s ist in allen 4 Gruppen gleich. Proportion der vok /l/s unabhängig vom Alter = Anzahl der vokalisierten /l/s dividiert durch Anzahl aller /l/s. sum(lvoc[1,])/sum(lvoc) [1] 0.4851936 d.h. unter der Null-Hypothese müssten 0.4851936 der /l/s in jeder Altersgruppe vokalisiert sein. zB für A20min: 0.4851936 * sum(lvoc[,1]) [1] 44.63781 Observed vok nicht-vok A20min A20bis30 A31bis40 A41plus 58 55 62 38 34 49 84 59 0.4851936 * sum(lvoc[,1]) Expected A20min A20bis30 A31bis40 A41plus vok nicht-vok 44.63781 47.36219 (1- 0.4851936) * sum(lvoc[,1]) oder sum(lvoc[,1])- 44.63781 r = chisq.test(lvoc) r$expected A20min A20bis30 A31bis40 A41plus vok 44.63781 50.46014 70.83827 47.06378 nicht-vok 47.36219 53.53986 75.16173 49.93622 Wie wird c2 berechnet? Wir wollen die Größe der Abweichung, d, zwischen Observed und Expected prüfen (die Null Hypothese: d = 0). O = lvoc (O E )2 d E = r$expected E d = (O - E)^2/E d <20 30s 40s >41 mitvok 3.999928 0.4084483 1.102723 1.745549 ohnevok 3.769844 0.3849535 1.039292 1.645141 Je größer die Abweichung von 0 (Null) umso mehr trägt eine Zelle zum signifikanten Ergebnis bei. c2 ist dann einfach die Summe der Abweichungen: sum(d) 14.0959 c2-Test für einen Trend pfad = "das Verzeichnis der gespeicherten Datei lost.txt" lost = as.matrix(read.table(paste(pfad, "lost.txt", sep="/"))) In der Standardaussprache von England, RP, wurde von einer vornehmeren Schichte der Gesellschaft vor 50 Jahren 'lost' mit einem hohen Vokal gesprochenen (auch 'often'). Hier ist die Häufigkeit der Verwendung von /lo:st/ (Vokal = high) oder /lɔst/ (Vokal = low) in Sprechern, die in 6 verschiedenen Jahren aufgenommen wurden (hypothetische Daten). In 1950 produzierten 30 high low Sprecher /lo:st/ und 5 /lɔst/. 1950 30 5 1960 1971 1980 1993 2005 18 15 13 4 2 21 26 20 32 34 Gibt es einen Trend? d.h. nimmt die Proportion der /lɔst/ Erzeugungen zu? Abbildung prop.trend.test(x, n, score) x: die Anzahl von /lo:st/ n: Gesamtanzahl pro Jahr 0.6 0.4 0.2 Test: Proportion 0.8 Wir standardisieren die Jahre, sodass 0 = 1950. jahr = as.numeric(rownames(lost)) Proportionen von /lo:st/ jahr = jahr - 1950 über 55 Jahre # Proportion von /lo:st/ berechnen p = lost[,1]/apply(lost, 1, sum) plot(jahr, p, type="b") 0 score: die X-Achsen Werte, für die wir einen linearen Trend berechnen wollen. 10 20 30 jahr 40 50 # Spalte 1 hat die Anzahl von /lo:st/ x = lost[,1] # Summe lo:st + lɔst getrennt pro Jahr n = apply(lost, 1, sum) prop.trend.test(lost[,1], n, jahr) data: lost[, 1] out of n , using scores: 0 10 21 30 43 55 X-squared = 54.506, df = 1, p-value = 1.550e-13 Die Proportion von /lo:st/ nimmt in späteren Jahren signifikant ab (c2(1) = 54.5, p < 0.001)