Contingency-Tables
nxm 列聯表的統計檢驗
我有一個由三組元素組成的數據集,我們稱它們為 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.nb
package的功能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)