Test statistico per le tabelle di contingenza nxm


12

Ho un set di dati composto da elementi di tre gruppi, chiamiamoli G1, G2 e G3. Ho analizzato alcune caratteristiche di questi elementi e li ho divisi in 3 tipi di "comportamento" T1, T2 e T3 (per fare ciò ho usato l'analisi dei cluster).

Quindi, ora ho una tabella di contingenza 3 x 3 come questa con i conteggi degli elementi nei tre gruppi divisi per tipo:

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

Ora, posso eseguire un test Fisher su questi dati in R

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

e ho capito

   Fisher's Exact Test for Count Data

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

Quindi le mie domande sono:

  • è corretto utilizzare il test Fisher in questo modo?

  • come faccio a sapere chi è diverso da chi? Esiste un test post-hoc che posso usare? Guardando i dati direi che il terzo gruppo ha un comportamento diverso dai primi due, come posso mostrarlo statisticamente?

  • qualcuno mi ha indicato di accedere ai modelli: sono un'opzione praticabile per questo tipo di analisi?

  • qualche altra opzione per analizzare questo tipo di dati?

Grazie mille

nico

Risposte:


13

All'inizio penso che il test Fisher sia usato correttamente.

I dati di conteggio vengono gestiti meglio utilizzando i modelli log-linear (non logit, per garantire che i valori adattati siano limitati di seguito). In R è possibile specificare family=poisson(che imposta errori = Poisson e link = log). Il collegamento del registro garantisce che tutti i valori adattati siano positivi, mentre gli errori di Poisson tengono conto del fatto che i dati sono interi e presentano varianze uguali alle loro medie. ad es. glm(y~x,poisson)e il modello è dotato di un collegamento di registro e di errori di Poisson (per tenere conto della non normalità).

In caso di sovradispersione (la deviazione residua dovrebbe essere uguale ai gradi di libertà residua, se il presupposto degli errori di Poisson è appropriato), invece di utilizzare quasipoissoncome famiglia di errori, è possibile inserire un modello binomiale negativo. (Ciò implica la funzione glm.nbdal pacchetto MASS)

Nel tuo caso potresti adattare e confrontare i modelli usando comandi come i seguenti:

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)

Assicurati sempre che il tuo modello minimo contenga tutte le variabili di disturbo.

Per quanto riguarda come sappiamo chi è diverso da chi, ci sono alcune trame che potrebbero aiutarti. La funzione R assocplotproduce un diagramma di associazione che indica le deviazioni dall'indipendenza di righe e colonne in una tabella di contingenza bidimensionale.

Ecco gli stessi dati tracciati come trama a mosaico

mosaicplot(data, shade = TRUE)

Grazie, è esattamente quello di cui avevo bisogno. Non sono completamente sicuro di cosa intendi quando parli della sovradispersione (scusa, non sono uno statistico, forse è qualcosa di molto basilare) ... Dici che la devianza residua dovrebbe essere uguale ai gradi di libertà residua ... come lo controllerei?
nico,

Se dai summary(model1), vedrai qualcosa del genereResidual deviance: -2.7768e-28 on 0 degrees of freedom
George Dontas,

4

È possibile utilizzare multinom dalla confezione nnet per la regressione multinomiale. Test post-hoc è possibile utilizzare l' ipotesi lineare dal pacchetto auto. È possibile condurre un test di indipendenza usando l' ipotesi lineare (test di Wald) o anova (test di LR).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.