R語言--方差分析1(單因素方差分析、協方差分析、評估驗證)


1 方差分析 ANOVA

當包含的因子是解釋變量時,我們關注的重點通常會從預測轉向組別差異的分析,這種分析方法稱作方差分析(ANOVA

 

2 單因素方差分析

2.1 單因素比較

install.packages("multcomp")

library(multcomp)

dat<-cholesterol  #此數據集只有兩列,第一列是使用的方法,第二列是指標

 

attach(dat)

table(dat)

aggregate(response,by=list(trt),FUN=mean)  #查看每種方法的平均,可以看出平均數差別很大

fit<-aov(response~trt)  #做方差分析模型

summary(fit)  #查看方差分析的結果

 

結果分析:看到Pr(>F)值很小,小於0.05,並且后面有三顆星星,說明結果是非常顯著的,說明這五種方法的療效是有區別的

 

2.2 多重比較

TukeyHSD(fit)

 

結果分析:觀察 p adj,即P值,P值小於0.05,說明這兩個方法的差異顯著,若P值大於0.05,說明這兩個方法的的效果相差不大

 

par(las=2)

par(mar=c(5,8,4,2))

plot(TukeyHSD(fit))

  

結果分析:如圖所示,黑色橫線觸碰到了豎着的虛線,就說明這兩個方法之間的療效不顯著

 

2.3 評估檢驗的假設條件

1)因變量y服從正太分布

library(car)

dat<-cholesterol

qqPlot(lm(response~trt,data=dat),simulate = T)

  

結果分析:樣本基本在兩條虛線之間,就說明此樣本服從正太分布

 

2)各組之間方差相等

library(car)

dat<-cholesterol

bartlett.test(response~trt,data=dat)

 

結果分析:p-value = 0.9653P值很大,說明這五組的方差沒有很大的不同,可以滿足方差齊次性的假設

 

3 單因素協方差分析

3.1 ANOVA的實線

library(multcomp)

data(litter,package="multcomp")

attach(litter)

table(litter$dose)  #統計不同劑dose量的頻數

 

aggregate(litter$weight,by=list(litter$dose),FUN=mean)

解釋:根據劑量dose的不同,查看重量weight的平均值mean

 

 

 

fit<-aov(litter$weight~litter$gesttime+litter$dose)

解釋:方差分析的順序特別重要,與回歸分析不一樣,litter$weight~litter$gesttime+litter$dose這樣寫的意思是排除協變量litter$gesttime的影響,分析變量litter$doselitter$weight的影響

summary(fit)

 

結果分析:P值小於0.05,后面就會有星星,說明統計是顯著的,說明劑量dose會影響重量weight

 

 

錯誤:參數的長度必需一樣

 

修正:要指定具體的是哪一個表的哪一列

 

 

 

3.2 評估檢驗的假設條件

fit2<-aov(weight~gesttime*dose,data=litter)  

解釋:把 + 換成了 * ,這兩項gesttimedose就變成了交互項

summary(fit2)

 

 

 

3.3 結果的可視化

install.packages("HH")

library(HH)

ancova(weight~gesttime+dose,data=litter)

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM