Test statystyczny dla tabel kontyngencji nxm


12

Mam zestaw danych złożony z elementów z trzech grup, nazwijmy je G1, G2 i G3. Przeanalizowałem niektóre cechy tych elementów i podzieliłem je na 3 rodzaje „zachowania” T1, T2 i T3 (w tym celu wykorzystałem analizę skupień).

Więc teraz mam taką tabelę zdarzeń 3 x 3 z liczbą elementów w trzech grupach podzielonych według typu:

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

Teraz mogę uruchomić test Fishera na tych danych w języku R.

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

i rozumiem

   Fisher's Exact Test for Count Data

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

Więc moje pytania to:

  • czy poprawne jest użycie testu Fishera w ten sposób?

  • skąd mam wiedzieć, kto różni się od kogo? Czy mogę skorzystać z testu post hoc? Patrząc na dane powiedziałbym 3 rd grupa ma inny zachowania od dwóch pierwszych, w jaki sposób pokazują, że statystycznie?

  • ktoś wskazał mi logować modele: czy są realną opcją dla tego rodzaju analizy?

  • jakaś inna opcja analizy tego typu danych?

Dziękuję bardzo

Nico

Odpowiedzi:


13

Na początku myślę, że test Fishera jest używany poprawnie.

Dane zliczania są lepiej obsługiwane przy użyciu modeli logarytmiczno-liniowych (nie logit, aby upewnić się, że dopasowane wartości są ograniczone poniżej). W R możesz określić family=poisson(który ustawia błędy = Poisson i link = log). Łącze dziennika zapewnia, że ​​wszystkie dopasowane wartości są dodatnie, podczas gdy błędy Poissona uwzględniają fakt, że dane są liczbami całkowitymi i mają wariancje równe ich środkom. np glm(y~x,poisson). model jest wyposażony w link log i błędy Poissona (w celu wyjaśnienia nienormalności).

W przypadkach, w których występuje nadmierna dyspersja (resztkowe odchylenie powinno być równe pozostałym stopniom swobody, jeśli założenie o błędach Poissona jest właściwe), zamiast używać quasipoissonjako rodziny błędów, można dopasować ujemny model dwumianowy. (Dotyczy to funkcji glm.nbz pakietu MASS)

W twoim przypadku możesz dopasować i porównać modele za pomocą następujących poleceń:

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)

Zawsze upewnij się, że twój minimalny model zawiera wszystkie uciążliwe zmienne.

Jeśli chodzi o to, skąd wiemy, kto jest różny od kogo, istnieją pewne wątki, które mogą ci pomóc. Funkcja R assocplottworzy wykres asocjacji wskazujący odchylenia od niezależności wierszy i kolumn w dwuwymiarowej tabeli kontyngencji.

Oto te same dane wykreślone jak wykres mozaiki

mosaicplot(data, shade = TRUE)

Dziękuję, właśnie tego potrzebowałem. Nie jestem całkowicie pewien, co masz na myśli, mówiąc o naddyspersji (przepraszam, nie jestem statystykiem, może to coś bardzo podstawowego) ... Mówisz, że odchylenie resztkowe powinno być równe pozostałym stopniom swobody ... jak bym to sprawdzić?
— nico

Jeśli dasz summary(model1), zobaczysz coś w styluResidual deviance: -2.7768e-28 on 0 degrees of freedom
— George Dontas

4

Można użyć multinom z pakietu nnet regresji wielomianowej. W testach post-hoc można zastosować hipotezę liniową z pakietu samochodowego. Test niezależności można przeprowadzić za pomocą hipotezy linearnej (test Walda) lub anova (test LR).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.