Nxm olasılık tabloları için istatistiksel test


12

Üç gruptan oluşan bir veri setim var, onlara G1, G2 ve G3 diyelim. Bu öğelerin belirli özelliklerini analiz ettim ve bunları 3 tip "davranış" T1, T2 ve T3'e böldüm (bunu yapmak için küme analizini kullandım).

Şimdi, üç gruptaki elemanların sayılarına göre bölünmüş şekilde 3 x 3 olasılık tablosuna sahibim:

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

Şimdi, R'deki bu veriler üzerinde bir Fisher testi yapabilirim

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

ve anladım

   Fisher's Exact Test for Count Data

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

Yani sorularım:

  • Fisher testini bu şekilde kullanmak doğru mu?

  • kimin kimden farklı olduğunu nasıl bilebilirim? Kullanabileceğim bir post-hoc test var mı? Verilere baktığımda, 3. grubun ilk ikisinden farklı bir davranışı olduğunu söyleyebilirim, bunu istatistiksel olarak nasıl gösterebilirim?

  • birisi bana modelleri logit etmem için işaret etti: bu tür analizler için uygun bir seçenek mi?

  • Bu tür verileri analiz etmek için başka bir seçenek var mı?

Çok teşekkür ederim

nico

Yanıtlar:


13

İlk başta Fisher testinin doğru kullanıldığını düşünüyorum.

Sayım verileri log-lineer modeller kullanılarak daha iyi ele alınır (takılan değerlerin aşağıda sınırlandırıldığından emin olmak için logit değil). R'de belirtebilirsiniz family=poisson(hataları ayarlar = Poisson ve link = log). Günlük bağlantısı, takılan tüm değerlerin pozitif olmasını sağlarken Poisson hataları, verilerin tamsayı olduğunu ve araçlarına eşit varyansları olduğunu dikkate alır. örneğin glm(y~x,poisson)ve model bir günlük bağlantısı ve Poisson hataları ile donatılmıştır (normal olmayanlığı hesaba katmak için).

Aşırı dağılmanın olduğu durumlarda (kalan sapma, serbestlik derecelerine eşit olmalıdır, eğer Poisson hata varsayımı uygunsa), quasipoissonhata ailesi olarak kullanmak yerine, negatif bir binom modeli takabilirsiniz. (Bu glm.nbpaketteki işlevi içerir MASS)

Sizin durumunuzda, aşağıdaki gibi komutları kullanarak modelleri sığdırabilir ve karşılaştırabilirsiniz:

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)

Her zaman minimal modelinizin tüm sıkıntı değişkenlerini içerdiğinden emin olun.

Kimin kimden farklı olduğunu nasıl biliyoruz, size yardımcı olabilecek bazı planlar var. R işlevi assocplot, iki boyutlu bir olasılık tablosunda satır ve sütunların bağımsızlığından sapmaları gösteren bir ilişkilendirme grafiği oluşturur.

İşte mozaik grafikle çizilen aynı veriler

mosaicplot(data, shade = TRUE)

Teşekkür ederim, tam da ihtiyacım olan şey bu. Aşırı dağılım hakkında konuşurken ne demek istediğinizden tam olarak emin değilim (özür dilerim, ben bir istatistikçi değilim, belki de çok temel bir şeydir) ... Artık sapmanın artık serbestlik derecelerine eşit olması gerektiğini söylüyorsunuz ... bunu nasıl kontrol ederim?
nico

Eğer verirseniz summary(model1)böyle bir şey görürsünüzResidual deviance: -2.7768e-28 on 0 degrees of freedom
George Dontas

4

Multinom regresyonu için nnet paketinden multinom kullanabilirsiniz . Post-hoc testler araç paketinden linearHypothesis kullanabilirsiniz . Bağımsızlık testini linearHypothesis (Wald testi) veya anova (LR testi) kullanarak yapabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.