Test statistique pour les tables de contingence nxm

12

J'ai un ensemble de données composé d'éléments de trois groupes, appelons-les G1, G2 et G3. J'ai analysé certaines caractéristiques de ces éléments et les ai divisés en 3 types de "comportement" T1, T2 et T3 (j'ai utilisé l'analyse en grappes pour cela).

Donc, maintenant j'ai une table de contingence 3 x 3 comme celle-ci avec les nombres d'éléments dans les trois groupes divisés par type:

      |    T1   |    T2   |    T3   |
------+---------+---------+---------+---
  G1  |   18    |   15    |   65    | 
------+---------+---------+---------+---
  G2  |   20    |   10    |   70    |
------+---------+---------+---------+---
  G3  |   15    |   55    |   30    |

Maintenant, je peux exécuter un test Fisher sur ces données dans R

data <- matrix(c(18, 20, 15, 15, 10, 55, 65, 70, 30), nrow=3)
fisher.test(data)

et je reçois

   Fisher's Exact Test for Count Data

data:  data 
p-value = 9.028e-13
alternative hypothesis: two.sided     

Mes questions sont donc:

  • est-il correct d'utiliser le test Fisher de cette façon?

  • comment savoir qui est différent de qui? Existe-t-il un test post-hoc que je peux utiliser? En regardant les données, je dirais que le troisième groupe a un comportement différent des deux premiers, comment puis-je le montrer statistiquement?

  • quelqu'un m'a indiqué des modèles logit: sont-ils une option viable pour ce type d'analyse?

  • une autre option pour analyser ce type de données?

Merci beaucoup

Nico

Nico
la source

Réponses:

13

Au début, je pense que le test de Fisher est utilisé correctement.

Les données de comptage sont mieux gérées à l'aide de modèles log-linéaires (et non logit, pour garantir que les valeurs ajustées sont limitées ci-dessous). Dans R, vous pouvez spécifier family=poisson(qui définit les erreurs = Poisson et lien = log). Le lien log s'assure que toutes les valeurs ajustées sont positives, tandis que les erreurs de Poisson tiennent compte du fait que les données sont entières et ont des variances égales à leurs moyennes. par exemple glm(y~x,poisson)et le modèle est équipé d'un lien logarithmique et d'erreurs de Poisson (pour tenir compte de la non-normalité).

Dans les cas où il y a surdispersion (la déviance résiduelle doit être égale aux degrés de liberté résiduels, si l'hypothèse des erreurs de Poisson est appropriée), au lieu de l'utiliser quasipoissoncomme famille d'erreurs, vous pouvez ajuster un modèle binomial négatif. (Cela implique la fonction glm.nbdu package MASS)

Dans votre cas, vous pouvez ajuster et comparer des modèles à l'aide de commandes telles que les suivantes:

observed <- as.vector(data)
Ts<-factor(rep(c("T1","T2","T3"),each=3))
Gs<-factor(rep(c("G1","G2","G3"),3))

model1<-glm(observed~Ts*Gs,poisson)

#or and a model without the interaction terms
model2<-glm(observed~Ts+Gs,poisson)


#you can compare the two models using anova with a chi-squared test
anova(model1,model2,test="Chi")
summary(model1)

Assurez-vous toujours que votre modèle minimal contient toutes les variables de nuisance.

Quant à savoir comment savoir qui est différent de qui, il existe des parcelles qui peuvent vous aider. La fonction R assocplotproduit un tracé d'association indiquant les écarts par rapport à l'indépendance des lignes et des colonnes dans un tableau de contingence bidimensionnel.

Voici les mêmes données tracées en mosaïque

mosaicplot(data, shade = TRUE)
George Dontas
la source
Merci, c'est exactement ce dont j'avais besoin. Je ne suis pas tout à fait sûr de ce que vous voulez dire lorsque vous parlez de surdispersion (désolé, je ne suis pas un statisticien, c'est peut-être quelque chose de très basique) ... Vous dites que la déviance résiduelle devrait être égale aux degrés de liberté résiduels ... comment pourrais-je vérifier cela?
nico
Si vous donnez, summary(model1)vous verrez quelque chose commeResidual deviance: -2.7768e-28 on 0 degrees of freedom
George Dontas
4

Vous pouvez utiliser multinom à partir du package nnet pour la régression multinomiale. Des tests post-hoc, vous pouvez utiliser linearHypothesis à partir du package de voiture. Vous pouvez effectuer un test d'indépendance en utilisant une hypothèse linéaire (test de Wald) ou anova (test LR).

Wojtek
la source