Testen gepaarter Frequenzen auf Unabhängigkeit

8

Ich hoffe, das ist nicht viel zu einfach oder überflüssig. Ich habe mich nach Rat umgesehen, bin mir aber bisher noch nicht sicher, wie ich vorgehen soll.

Meine Daten bestehen aus Zählungen einer bestimmten Struktur, die in Gesprächen zwischen Gesprächspartnerpaaren verwendet werden. Die Hypothese, die ich testen möchte, lautet wie folgt: Eine häufigere Verwendung dieser Struktur durch einen Sprecher erhöht tendenziell die Häufigkeit der Struktur durch den anderen Sprecher (dh dies könnte ein Hinweis auf einen Priming-Effekt sein).

Ich habe also nur zwei Vektoren, die Anzahl für Sprecher A und die Anzahl für Sprecher B sind die Spalten, und wenn sie in einer Reihe stehen, repräsentiert jede Zeile eine bestimmte Konversation wie folgt:

AB
0 1
0 2
1 0
3 1
0 2
2 0
2 1

Es gibt ungefähr 420 Konversationen (Zeilen). Diese Daten enthalten viele Nullen.

Was wäre der beste Weg, um diese Daten zu analysieren? Ich benutze R, wenn das einen Unterschied macht.

Hier ist eine grafische Darstellung der Frequenzen (Zählungen). Die x-Achse ist die Anzahl der Verwendungen durch Sprecher A, die y-Achse die Anzahl der Verwendungen durch Sprecher B. Die Unterscheidung zwischen Sprechern bedeutet nur, dass Sprecher A zuerst sprach, und es gibt keinen besonderen Grund, warum sie dies taten. Ansonsten ist die Unterscheidung zwischen Sprecher A und Sprecher B grundsätzlich bedeutungslos:

Gültiges XHTML http://phonematic.com/convplot.jpg

Und dies ist die Häufigkeit im Verhältnis zur Anzahl der Sätze, die von jedem Sprecher in jedem Gespräch gesprochen werden. ::

Gültiges XHTML http://phonematic.com/rs_plot.jpg

(Ich sollte erwähnen, dass ich Gespräche ohne Treffer geführt habe, dh {0,0}.)

Alan H.
quelle
Ist jede Zeile die Anzahl einer anderen Struktur für dieselbe Konversation oder die Anzahl derselben Struktur für unterschiedliche Zeiträume?
RockScience
Jede Zeile ist die Gesamtzahl der Verwendungen derselben Struktur durch zwei verschiedene Personen, die miteinander sprechen. Wenn ich zum Beispiel passive Sätze zählen würde, wäre die Zahl in Spalte A die Anzahl der von Sprecher A verwendeten passiven Sätze und die Zahl in Spalte B die Anzahl der von Sprecher B verwendeten passiven Sätze. Jede Zeile ist also ein anderes Gespräch. Jedes Gespräch hat genau zwei Teilnehmer.
Alan H.
Ich habe auch die gleichen Daten berechnet in Bezug auf die Anzahl der Sätze, die von jedem Sprecher in jedem Gespräch gesprochen werden, wenn das einen Unterschied macht.
Alan H.
Es tut mir leid, wenn ich etwas langsam bin, aber ich habe immer noch Schwierigkeiten, Ihre Datenstruktur zu verstehen. Gibt es nur 2 Sprecher mit jeweils 420 wiederholten Messungen (ich meine eine Zeile = eine Art von Konversation, aber das gleiche Ergebnis wird aufgezeichnet, z. B. keine passiven Sätze)? Ich frage dies, weil Sie eine Art Matching oder Pairing (zwischen Subjekt A und B) haben, aber in diesem letzteren Fall müssten Sie sich auch mit wiederholten Messungen befassen, und dies macht Randmodelle für übereinstimmende Paare weniger relevant.
Chl
Nein, das sind alles verschiedene Lautsprecher. Diese Daten stammen aus einem Korpus aufgezeichneter Telefongespräche. Sprecher A in Gespräch 1 ist also nicht dieselbe Person wie Sprecher A in Gespräch 2.
Alan H.

Antworten:

10

Log-lineare Modelle sind möglicherweise eine weitere Option, wenn Sie Ihre bidirektionale Datenstruktur untersuchen möchten.

Wenn Sie davon ausgehen, dass die beiden Stichproben übereinstimmen (dh es besteht eine gewisse Abhängigkeit zwischen den beiden Reihen von Positionen), und Sie berücksichtigen, dass es sich bei den Daten tatsächlich um Zählungen handelt, die als Bewertungen oder geordnete Antworten betrachtet werden können (wie von @caracal vorgeschlagen) ), dann können Sie sich auch Randmodelle für Matched-Pair-Modelle ansehen, bei denen normalerweise eine quadratische Kontingenztabelle analysiert wird. Es muss nicht unbedingt der Fall sein, dass Sie eine solche quadratische Tabelle erhalten, aber wir können auch eine Obergrenze für die Anzahl der z. B. passiven Sätze festlegen. Wie auch immer, Modelle für übereinstimmende Paare werden in Kapitel 10 von Agresti, Kategoriale Datenanalyse, gut erklärt . Relevante Modelle für Ordnungskategorien in quadratischen Tabellen testen auf Quasi-Symmetrie(Der Unterschied in der Wirkung einer Kategorie von einem Fall zum anderen folgt einem linearen Trend in den Kategoriewerten), bedingte Symmetrie ( oder , ) und quasi-einheitliche Assoziation (linear-durch-lineare Assoziation außerhalb der Hauptdiagonale, was im Fall von Scores mit gleichem Intervall eine einheitliche lokale Assoziation bedeutet). Die ordinale Quasi-Symmetrie (OQS) ist ein Sonderfall des linearen Logit-Modells und kann mit einem einfacheren Modell verglichen werden, bei dem bei einem LR-Test nur eine marginale Homogenität gilt, da ordinale Quasi-Symmetrie + marginale Homogenität Symmetrie.πab<πabπab>πaba,b=

Nach Agrestis Notation (S. 429) betrachten wir geordnete Scores für die Variable (in Zeilen) und die Variable (in Spalten); oder bezeichnet eine beliebige Zeile oder Spalte. Das OQS-Modell lautet wie folgt: logarithmisch lineares Modell:u1uIXYab

logμab=λ+λa+λb+βub+λab

wobei für alle . Im Vergleich zum üblichen QS-Modell für das , würde die Unabhängigkeit zwischen den beiden Variablen bedeuten Im OQS-Modell wir ( die Idee eines linearen Trends eingeführt wird). Die äquivalente Logit-Darstellung lautet für .λab=λbaa<blogμab=λ+λaX+λbY+λabλab=0λbYλbX=βublog(πab/πba)=β(ubua)ab

Wenn , haben wir Symmetrie als Sonderfall dieses Modells. Wenn , dann haben wir stochastisch geordnete Ränder, dh bedeutet, dass der Spaltenmittelwert im Vergleich zum Zeilenmittelwert höher ist (und je größer , desto größer sind die Unterschiede zwischen den beiden gemeinsamen Wahrscheinlichkeitsverteilungen und sind, was sich in den Unterschieden zwischen Zeilen- und Spaltenrandverteilungen widerspiegelt. Ein Test von entspricht einem Test der marginalen Homogenität. Die Interpretation des geschätzten ist einfach: Die geschätzte Wahrscheinlichkeit, dass die Variable istβ 0 β > 0 | β | π a b π b ein β = 0 β X x Y exp ( β x ) ββ=0β0β>0|β|πabπbaβ=0βXx Einheiten, die positiver als die Punktzahl auf sind mal die umgekehrte Wahrscheinlichkeit. In Ihrem speziellen Fall bedeutet dies, dass möglicherweise die Quantifizierung des Einflusses ermöglicht, den ein bestimmter Sprecher auf den anderen ausübt.Yexp(β^x)β^

Zu beachten ist, dass Laura Thompson den gesamten R-Code in ihrem S-Handbuch zur Begleitung der kategorialen Datenanalyse von Agresti zur Verfügung stellte .

Im Folgenden stelle ich einen Beispiel-R-Code zur Verfügung, damit Sie mit Ihren eigenen Daten spielen können. Versuchen wir also zunächst, einige Daten zu generieren:

set.seed(56)
d <- as.data.frame(replicate(2, rpois(420, 1.5)))
colnames(d) <- paste("S", 1:2, sep="")
d.tab <- table(d$S1, d$S2, dnn=names(d)) # or xtabs(~S1+S2, d)
library(vcdExtra)
structable(~S1+S2, data=d)
# library(ggplot2)
# ggfluctuation(d.tab, type="color") + labs(x="S1", y="S2") + theme_bw()

Optisch sieht die Kreuzklassifizierung folgendermaßen aus:

   S2  0  1  2  3  4  5  6
S1                        
0     17 35 31  8  7  3  0
1     41 41 30 23  7  2  0
2     19 43 18 18  5  0  1
3     11 21  9 15  2  1  0
4      0  3  4  1  0  0  0
5      1  0  0  2  0  0  0
6      0  0  0  1  0  0  0

Jetzt können wir das OQS-Modell anpassen. Im Gegensatz zu Laura Thompson, die die glm()Basisfunktion und eine benutzerdefinierte Designmatrix für die Symmetrie verwendete, können wir uns auf das gnm- Paket verlassen. Wir müssen jedoch einen Vektor für numerische Scores hinzufügen, um im obigen Modell zu schätzen .β

library(gnm)
d.long <- data.frame(counts=c(d.tab), S1=gl(7,1,7*7,labels=0:6),
                     S2=gl(7,7,7*7,labels=0:6))
d.long$scores <- rep(0:6, each=7)
summary(mod.oqs <- gnm(counts~scores+Symm(S1,S2), data=d.long, 
                       family=poisson))
anova(mod.oqs)

Hier haben wir , und somit ist die Wahrscheinlichkeit, dass Sprecher B 4 Punkte erzielt, wenn Sprecher A 3 Punkte erzielt, fache der Wahrscheinlichkeit, dass Sprecher B eine Punktzahl von 3 hat, während Sprecher A eine Punktzahl hat von 4.exp(0,123)=1,13β^=0.123exp(0.123)=1.13

Ich bin kürzlich auf das catspec R-Paket gestoßen , das ähnliche Einrichtungen zu bieten scheint, aber ich habe es nicht ausprobiert. Es gab ein gutes Tutorial bei UseR! 2009 über all diese Dinge: Einführung in generalisierte nichtlineare Modelle in R , aber siehe auch die beigefügte Vignette, Generalisierte nichtlineare Modelle in R: Ein Überblick über das gnm-Paket .

Wenn Sie die Idee mit realen Daten erfassen möchten, enthält das vcdExtra- Paket von Michael Friendly viele Beispiele mit realen Datensätzen . Über das OQS-Modell verwendete Agresti Daten zum vorehelichen und außerehelichen Geschlecht (Tabelle 10.5, S. 421). Die Ergebnisse werden in § 10.4.7 (S. 430) diskutiert, und wurde auf -2,86 geschätzt. Der folgende Code ermöglicht (teilweise aus Thompsons Lehrbuch entnommen) die Reproduktion dieser Ergebnisse. Wir müssten die Faktorstufen neu bestimmen, um die gleiche Basislinie wie bei Agresti festzulegen.β^

table.10.5 <- data.frame(expand.grid(PreSex=factor(1:4),
                                     ExSex=factor(1:4)),
                         counts=c(144,33,84,126,2,4,14,29,0,2,6,25,0,0,1,5))
table.10.5$scores <- rep(1:4,each=4)
summary(mod.oqs <- gnm(counts~scores+Symm(PreSex,ExSex), data=table.10.5, 
                       family=poisson)) # beta = -2.857
anova(mod.oqs) # G^2(5)=2.10
chl
quelle
Wow, das sieht wirklich nützlich aus. Ich werde so bald wie möglich eine Kopie dieses Buches erwerben, da es anscheinend von allen zitiert wird. In der Zwischenzeit nur eine naive Frage: Können diese Modelle mit einer beliebigen Anzahl zufälliger Effekte umgehen? Ich glaube ich brauche 3 in meinem Modell.
Alan H.
@ Alan Beachten Sie, dass wir (@caracal und ich) nicht dasselbe Buch zitieren. CDA ist die vollständigere, aber Laura Thompsons Lehrbuch enthält bereits etwa 10 Seiten Zusammenfassung für jedes Kapitel. Schau dir zuerst ihr Lehrbuch an. Ich denke, ICDA ist in Google-Büchern verfügbar.
Chl
Tippfehler in der Definition der bedingten Symmetrie? oder , π a b > π b aa < bπab<πbaπab>πbaa<b
Scortchi - Reinstate Monica
2

Sie scheinen kategoriale Daten geordnet zu haben, daher schlage ich einen linearen Test vor, wie er von Agresti (2007, S. 229 ff.) Beschrieben wurde. Die Funktion lbl_test()des Pakets coinimplementiert es in R.

Agresti, A. (2007). Einführung in die kategoriale Datenanalyse. 2nd Ed. Hoboken, New Jersey: John Wiley & Sons. Hoboken, NJ: Wiley.

Karakal
quelle
0

Ich würde vielleicht mit einer Rangkorrelationsanalyse beginnen .
Das Problem ist, dass Sie möglicherweise sehr geringe Korrelationen haben, da die Effekte, die Sie erfassen möchten, gering sind.

Sowohl Kendall- als auch Spearman-Korrelationskoeffizienten sind in R in implementiert

cor(x=A, y=B, method = "spearman")  
cor(x=A, y=B, method = "kendall")
RockScience
quelle
1
Beide nehmen kontinuierliche Variablen an, so dass die Wahrscheinlichkeit von Bindungen innerhalb einer Stichprobe beträgt . Mit den gegebenen Daten wird es viele Bindungen geben. 0
Caracal
Ich habe es versucht. Aber bei so vielen Nullen bin ich mir nicht sicher, was ich davon halten soll. Ich habe versucht, Gespräche auszuschließen, in denen einer der Sprecher keine dieser Konstruktionen verwendete (dh der Datenpunkt würde entlang einer der Achsen fallen), aber die resultierende Spearman-Korrelation war nicht signifikant (und der Koeffizient war sehr klein).
Alan H.