Test des fréquences appariées pour l'indépendance

8

J'espère que ce n'est ni trop basique ni redondant. J'ai cherché des conseils mais jusqu'à présent, je ne sais toujours pas comment procéder.

Mes données consistent en des dénombrements d'une structure particulière utilisée dans les conversations entre paires d'interlocuteurs. L'hypothèse que je veux tester est la suivante: une utilisation plus fréquente de cette structure par un locuteur aura tendance à augmenter la fréquence de la structure par l'autre locuteur (c'est-à-dire que cela pourrait être la preuve d'un effet d'amorçage).

Je n'ai donc que deux vecteurs, les nombres pour le locuteur A et les nombres pour le locuteur B sont les colonnes, et s'ils sont alignés, chaque ligne représente une conversation particulière, comme ceci:

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

Il y a environ 420 conversations (rangées). Il y a beaucoup de zéros dans ces données.

Quelle serait la meilleure façon d'analyser ces données? J'utilise R, si cela fait une différence.

Voici un tracé des fréquences (comptes). L'axe des x est le nombre d'utilisations par le locuteur A, le nombre d'axes des utilisations par le locuteur B. La distinction entre les locuteurs signifie uniquement que le locuteur A a parlé en premier, et il n'y a aucune raison particulière pour laquelle ils l'ont fait. Sinon, la distinction entre l'orateur A et l'orateur B est fondamentalement dénuée de sens:

XHTML valide http://phonematic.com/convplot.jpg

Et c'est la fréquence par rapport au nombre de phrases prononcées par chaque locuteur dans chaque conversation. :

XHTML valide http://phonematic.com/rs_plot.jpg

(Je dois mentionner que j'ai jeté des conversations sans aucun résultat, c'est-à-dire {0,0}.)

Alan H.
la source
Est-ce que chaque ligne est le nombre d'une structure différente pour la même conversation, ou le nombre de la même structure pour différentes périodes de temps?
RockScience
Chaque ligne est le nombre total d'utilisations de la même structure par deux personnes différentes qui se parlent. Ainsi, par exemple, si je comptais les phrases passives, le nombre dans la colonne A serait le nombre de phrases passives utilisées par le locuteur A, et le nombre dans la colonne B le nombre de phrases passives utilisées par le locuteur B. Donc, chaque ligne est une conversation différente. Chaque conversation a exactement deux participants.
Alan H.
J'ai également les mêmes données calculées par rapport au nombre de phrases prononcées par chaque locuteur dans chaque conversation, si cela fait une différence.
Alan H.
Désolé si je suis un peu lent, mais j'ai encore du mal à comprendre votre structure de données. Y a-t-il seulement 2 locuteurs, avec 420 mesures répétées collectées sur chacun (je veux dire une ligne = un type de conversation, mais le même résultat est enregistré, par exemple, des phrases passives)? Je pose cette question parce que vous avez une sorte d'appariement ou d'appariement (entre les sujets A et B), mais dans ce dernier cas, vous devrez également faire face à des mesures répétées, ce qui rend les modèles marginaux pour les paires appariées moins pertinents.
chl
Non, ce sont également des enceintes différentes. Ces données ont été extraites d'un corpus de conversations téléphoniques enregistrées. Le locuteur A dans la conversation 1 n'est donc pas la même personne que le locuteur A dans la conversation 2.
Alan H.

Réponses:

10

Les modèles log-linéaires peuvent être une autre option à envisager si vous souhaitez étudier votre structure de données bidirectionnelle.

Si vous supposez que les deux échantillons sont appariés (c'est-à-dire qu'il existe une sorte de dépendance entre les deux séries de locutions) et que vous prenez en considération que les données sont en fait des décomptes qui peuvent être considérés comme des scores ou des réponses ordonnées (comme suggéré par @caracal ), vous pouvez également examiner les modèles marginaux pour les paires appariées, qui impliquent généralement l'analyse d'un tableau de contingence carré. Il se peut que vous ne vous retrouviez pas nécessairement avec un tel tableau carré, mais nous pouvons également décider d'une limite supérieure pour le nombre de phrases passives, par exemple. Quoi qu'il en soit, les modèles de paires appariées sont bien expliqués au chapitre 10 d'Agresti, Analyse des données catégorielles ; les modèles pertinents pour les catégories ordinales dans les tables carrées testent la quasi-symétrie(la différence dans l'effet d'une catégorie d'un cas à l'autre suit une tendance linéaire dans les scores des catégories), symétrie conditionnelle ( ou , ), et une association quasi uniforme ( association linéaire par linéaire hors de la diagonale principale, ce qui dans le cas de scores à intervalles égaux signifie une association locale uniforme). La quasi-symétrie ordinale (OQS) est un cas particulier du modèle logit linéaire, et il peut être comparé à un modèle plus simple où seule l'homogénéité marginale tient avec un test LR, car quasi-symétrie ordinale + homogénéité marginale symétrie.πab<πabπab>πaba,b=

Suivant la notation d'Agresti (p. 429), nous considérons les scores ordonnés pour la variable (en lignes) et la variable (en colonnes); ou désigne n'importe quelle ligne ou colonne. Le modèle OQS se lit comme le modèle log-linéaire suivant:u1uIXYab

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

où pour tout . Comparé au modèle QS habituel pour les données nominales qui est , où signifierait l'indépendance entre les deux variables , dans le modèle OQS nous (introduisant ainsi l'idée d'une tendance linéaire). La représentation logit équivalente est , pour .λab=λbaa<blogμab=λ+λaX+λbY+λabλab=0λbYλbX=βublog(πab/πba)=β(ubua)ab

Si , alors nous avons la symétrie comme cas spécial de ce modèle. Si , alors nous avons des marges ordonnées stochastiquement, c'est-à-dire signifie que la moyenne de la colonne est plus élevée que la moyenne de la ligne (et plus , plus les différences entre les deux distributions de probabilités conjointes sont grandes et sont, ce qui se reflétera dans les différences entre les distributions marginales des lignes et des colonnes). Un test de correspond à un test d'homogénéité marginale. L'interprétation du estimé est simple: la probabilité estimée que le score sur la variable soitβ=0β0β>0|β|πabπbaβ=0βXx unités plus positives que le score sur est fois la probabilité inverse. Dans votre cas particulier, cela signifie que pourrait permettre de quantifier l'influence qu'un haut-parleur particulier exerce sur l'autre.Yexp(β^x)β^

Il convient de noter que tout le code R a été mis à disposition par Laura Thompson dans son manuel S pour accompagner l'analyse de données catégorielles d'Agresti .

Ci-après, je fournis un exemple de code R pour que vous puissiez jouer avec lui sur vos propres données. Essayons donc de générer d'abord des données:

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()

Visuellement, la classification croisée ressemble à ceci:

   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

Maintenant, nous pouvons adapter le modèle OQS. Contrairement à Laura Thompson qui utilisait la glm()fonction de base et une matrice de conception personnalisée pour la symétrie, nous pouvons compter sur le paquetage gnm ; nous devons cependant ajouter un vecteur pour les scores numériques afin d'estimer dans le modèle ci-dessus.β

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)

Ici, nous avons , et donc la probabilité que le haut-parleur B marque 4 lorsque le haut-parleur A marque 3 est fois la probabilité que le haut-parleur B ait un score de 3 tandis que le haut-parleur A a un score de 4.β^=0.123exp(0.123)=1.13

J'ai récemment rencontré le package catspec R qui semble offrir des installations similaires, mais je ne l'ai pas essayé. Il y avait un bon tutoriel à UseR! 2009 à propos de tout ça: Introduction aux modèles non linéaires généralisés dans R , mais voir aussi la vignette qui l'accompagne, Modèles non linéaires généralisés dans R: un aperçu du paquetage gnm .

Si vous souhaitez saisir l'idée avec des données réelles, il existe de nombreux exemples avec des ensembles de données réels dans le package vcdExtra de Michael Friendly. Concernant le modèle OQS, Agresti a utilisé des données sur le sexe avant le mariage et le sexe hors mariage (tableau 10.5, p. 421). Les résultats sont discutés au §10.4.7 (p. 430), et été estimé à -2.86. Le code ci-dessous permet (partiellement extrait du manuel de Thompson) de reproduire ces résultats. Il nous faudrait revaloriser les niveaux de facteurs de manière à établir la même base de référence qu'Agresti.β^

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
la source
Wow, cela semble vraiment utile. Je vais acquérir une copie de ce livre dès que possible, car tout le monde semble le citer. En attendant, juste une question naïve: ces modèles peuvent-ils traiter un nombre arbitraire d'effets aléatoires? Je pense que j'en ai besoin de 3 dans mon modèle.
Alan H.
@Alan Sachez que nous (@caracal et moi) ne citons pas le même livre. Le CDA est le plus complet, mais le manuel de Laura Thompson comprend déjà environ 10 pages de résumé pour chaque chapitre. Regardez d'abord son manuel. ICDA est disponible sur Google books je pense.
chl
Faute de frappe dans la définition de la symétrie conditionnelle? πab<πba ou πab>πba, a<b
Scortchi - Réintégrer Monica
2

Vous semblez avoir ordonné des données catégorielles, donc je suggère un test linéaire par linéaire comme décrit par Agresti (2007, p229 ff). La fonction lbl_test()du package l' coinimplémente dans R.

Agresti, A. (2007). Introduction à l'analyse des données catégoriques. 2nd Ed. Hoboken, New Jersey: John Wiley & Sons. Hoboken, NJ: Wiley.

caracal
la source
0

Je commencerais peut-être par une analyse de corrélation de rang .
Le problème est que vous pouvez avoir de très faibles corrélations car les effets que vous essayez de capturer sont faibles.

Les coefficients de corrélation de Kendall et Spearman sont implémentés dans R dans

cor(x=A, y=B, method = "spearman")  
cor(x=A, y=B, method = "kendall")
RockScience
la source
1
Les deux supposent des variables continues, de sorte que la probabilité de liens au sein d'un échantillon est 0. Avec les données fournies, il y aura beaucoup de liens.
caracal
J'ai essayé ça. Mais avec autant de 0, je ne sais pas quoi en penser. J'ai essayé d'exclure toutes les conversations dans lesquelles l'un des locuteurs n'utilisait aucune de ces constructions (c'est-à-dire que le point de données tomberait le long de l'un ou l'autre axe), mais la corrélation Spearman résultante n'était pas significative (et le coefficient était très petit).
Alan H.