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.πa b<πa bπa b>πa b∀ a , 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:u1≤ ⋯ ≤ujeXOuiuneb
Journalμa b= λ +λune+λb+ βub+λa b
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 .λa b=λb aa < bJournalμa b= λ +λXune+λOuib+λa bλa b= 0λOuib-λXb= βubJournal(πa b/πb a) = β(ub-uune)a ≤ b
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| β|πa bπb aβ= 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