Contingency-Tables

nxm 列聯表的統計檢驗

  • July 29, 2010

我有一個由三組元素組成的數據集,我們稱它們為 G1、G2 和 G3。我分析了這些元素的某些特徵,並將它們分為3種“行為”T1、T2和T3(我使用聚類分析來做到這一點)。

所以,現在我有一個像這樣的 3 x 3 列聯表,其中三組中的元素數量除以類型:

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

現在,我可以在 R 中對這些數據進行 Fisher 測試

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

我得到

  Fisher's Exact Test for Count Data

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

所以我的問題是:

  • 以這種方式使用 Fisher 測試是否正確?
  • 我怎麼知道誰和誰不同?有我可以使用的事後測試嗎?看看數據,我會說第三組的行為與前兩組不同,我如何在統計上顯示這一點?
  • 有人向我指出 logit 模型:它們是此類分析的可行選擇嗎?
  • 分析此類數據的任何其他選擇?

非常感謝

妮可

起初我認為Fisher檢驗是正確使用的。

計數數據最好使用對數線性模型(不是 logit,以確保擬合值有界)處理。在 R 中,您可以指定family=poisson(設置錯誤 = Poisson 和鏈接 = log)。對數鏈接確保所有擬合值都是正數,而泊松誤差考慮到數據是整數並且方差等於它們的平均值的事實。例如glm(y~x,poisson),該模型配備了對數鏈接和泊松誤差(以考慮非正態性)。

在存在過度離散的情況下(如果泊松誤差假設合適,則剩餘偏差應等於剩餘自由度),而不是quasipoisson用作誤差族,您可以擬合負二項式模型。(這涉及到glm.nbpackage的功能MASS

在您的情況下,您可以使用以下命令擬合和比較模型:

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)

始終確保您的最小模型包含所有令人討厭的變量。

至於我們如何知道誰與誰不同,有一些情節可能會對您有所幫助。R 函數assocplot生成一個關聯圖,指示二維列聯表中行和列獨立性的偏差。

這是繪製為馬賽克圖的相同數據

mosaicplot(data, shade = TRUE)

引用自:https://stats.stackexchange.com/questions/961

comments powered by Disqus

相關問答