#檢定多於兩組(多組)的觀察值之間是否有差異
#重複測量(Repeated measures): Friedman檢定、重複測量變異數分析
#Friedman檢定 (重複測量): 二因子變異數分析對應的無母數檢定。對資料分布沒有任何假設,只要求資料是可排序的。只有在每個因子值組合僅有一個觀察值時適用。
#Example: 選擇四天分別取出六個池塘的水樣計算藍藻數(個/mm3),每次取樣只取一個樣本,就可使用該檢定。

pondcells<- matrix(c(130,125,350,375,225,235,
                     115,120,375,200,250,200,
                     145,170,235,275,225,155,
                     200,230,140,325,275,215),
                   nrow=4,byrow = T,
                   dimnames = list(1:4,c("A","B","C","D","E","F"))) #此檢定要將資料整理成矩陣形式
friedman.test(pondcells) #自由度為池塘數減一

#重複測量變異數分析 (Repeated-measures ANOVA): 此種試驗設計下,每個因子值組合都只有一個才可以執行二因子變異數分析。在重複測量的設計下,影響因子需互相獨立或是得大量降低自由度。
pond<-c("A","A","A","A",
        "B","B","B","B",
        "C","C","C","C",
        "D","D","D","D",
        "E","E","E","E",
        "F","F","F","F")
cells<-c(130,115,145,200,
         125,120,170,230,
         350,375,235,140,
         375,200,275,325,
         225,250,225,275,
         235,200,155,215)
day<- c(rep(1:4,6))
summary(aov(cells~pond*day + Error(cells/(pond*day))))

#單因子變異數分析 (One-way ANOVA): 三組以上的ANOVA所做的假設跟兩組的版本相同:資料連續、各組資料趨近常態且變異數相等。
#變異數分析的策略是把虛無假設設定為"組內變異數與組間變異數相等",關鍵變量為組間變異數和組內變異數的比值 (F值)。
#Example: 某研究人員取得三個品種的穀物重量資料,並且想判斷他們重量是否有差異?

grain<- c(24.5,23.4,22.1,25.3,23.4,
          26.4,27.0,25.2,25.8,27.1,
          25.5,25.7,26.8,27.3,26.0)
cultivar<- c("P","P","P","P","P",
            "S","S","S","S","S",
            "D","D","D","D","D")
oneway<- data.frame(cultivar,grain)
cultivar<- as.factor(cultivar)
summary(aov(grain~cultivar))

#事後檢定: 在做完變異數分析之後 (Post testing after one-way ANOVA)
#做完單因子變異數分析後再探討那些組別之間有差異

labs<- c("Dupa","Premier","Super")
plot(oneway, xlab= "cultivar" ,ylab= "grain size (mg)", name= labs) #將分析結果視覺化,製成箱型圖
TukeyHSD(aov(grain~cultivar))

#Kruskal-Wallis檢定: 此檢定為單因子變異數分析對應的無母數版本。
kruskal.test(grain~cultivar) #拒絕三組資料來自於同中位數分布的虛無假設
TukeyHSD(kruskal.test(grain~cultivar))

#事後檢定: 做完Kruskal-Wallis檢定之後 (post hoc testing: after the Kruskal-Wallis test)
wilcox.test(oneway$grain[cultivar=="P"],oneway$grain[cultivar=="D"])
wilcox.test(oneway$grain[cultivar=="S"],oneway$grain[cultivar=="D"])
wilcox.test(oneway$grain[cultivar=="S"],oneway$grain[cultivar=="P"])

 

提供R srcipt參考

參考來源: 生物統計學:如何選擇與應用

arrow
arrow

    猛犬 發表在 痞客邦 留言(0) 人氣()