chisquared

Werbung
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)
Herunterladen