R語言--方差分析2(雙因素方差分析、多元方差分析、可視化)


1 雙因素方差分析

 1.1 雙因素方差分析的實線

dat<-ToothGrowth

dat

attach(dat)

table(dat$supp,dat$dose)

 

aggregate(len,by=list(dat$supp,dat$dose),FUN=mean) 

解釋:根據投方式(橙汁OJ,維CVCsupp和劑量dose來對牙齒的長度len進行求均值

 

 

 

dose<-factor(dose)  

解釋:為了避免把dose變量認為是數值變量,而是把dose認為成分組變量,所以設置成因子類型factor

fit<-aov(dat$len~dat$supp*dat$dose)  

解釋:aov()做方差分析,把 + 換成了 * ,這兩項dat$suppdat$dosee就變成了交互項

summary(fit)

 

結果分析:可以看出P值很小,三個P值都小於0.05,說明不同的投喂方式supp對牙齒的生長長度len是有顯著影響的;說明不同的劑量dose對牙齒的生長長度len是有顯著影響的;說明在兩種投喂方式下,不同的投喂方式supp和劑量dose的交互效應對牙齒的生長長度len是有顯著影響的

  

1.2 可視化方法1

interaction.plot(dat$dose,dat$supp,dat$len,type = "b",

                 col=c("red","blue"),pch=c(16,18),main="XX")

 

 

1.3 可視化方法2

library(gplots)

plotmeans(dat$len~interaction(dat$supp,dat$dose,sep=" "),

          connect=list(c(1,3,5),c(2,4,6)),col=c("red","blue"),main="XX",xlab="xlab")

 

 

 

1.4 可視化方法3

library(HH)

interaction2wt(dat$len~dat$supp*dat$dose)

 

 

 

 

2 重復測量方差分析

dat<-CO2

CO2$conc<-factor(CO2$conc)

w1b1<-subset(CO2,Treatment=="chilled")

 

uptake是植物光合作用對二氧化碳的吸收量,是因變量ytype是組間因子,是互斥的,表示的是兩個不同地區的植物類型,要么是加拿大的植物,要么是美國的植物,不可能兩個地方都是,conc是不同的二氧化碳的濃度,每一種植物都在所有的二氧化碳濃度下,所以conc是組內因子

研究不同地區的植物作用,在某種二氧化碳的濃度作用下,對植物的光合作用效果有沒有影響

2.1 含有單個組內因子w和單個組間因子B的重復測量ANOVA

fit<-aov(uptake~conc*Type+Error(Plant/(conc)),w1b1)

summary(fit)

 

結果分析:二氧化碳濃度和類型對植物光合作用都有顯著影響

 

2.2 可視化圖形呈現

1)方式一

par(las=2)

par(mar=c(10,4,4,2))

with(w1b1,interaction.plot(conc,Type,uptake,type = "b",

                           col=c("red","blue"),pch=c(16,18)))

 

2)方式二

boxplot(uptake~Type*conc,data=w1b1,col=c("red","blue"))

 

 

 

3 多元方差分析

library(MASS)

attach(UScereal)

dat<-UScereal

shelf<-factor(shelf)

y<-cbind(calories,fat,sugars)

fit<-manova(y~shelf)

summary(fit)

 

結果分析:不同的貨架shelf上,食物的熱量calories,脂肪含量fat和含糖量sugars是非常顯著不同的

 

3.1 多元正態性

center<-colMeans(y) 

n<-nrow(y)  #行數

p<-ncol(y)  #列數

cov<-cov(y)  #計算方差

d<-mahalanobis(y,center,cov)

coord<-qqplot(qchisq(ppoints(n),df=p),d)  #畫圖

abline(a=0,b=1)  #畫參考線

identify(coord$x,coord$y,labels = row.names(UScereal))  #給出交互式標出離群點

 

 

3.2 穩健多元方差分析

install.packages("rrcov")

library(rrcov)

wilks.test(y,shelf,method="mcd")

結果分析:P值小於0.05,說明結果是顯著性的,即不同貨架上食物的熱量calories,脂肪含量fat和含糖量sugars是非常顯著不同的

 

4 用回歸來做ANOVA

library(multcomp)

dat<-cholesterol

levels(dat$trt)

fit.aov<-aov(response~trt,data=dat)

summary(fit.aov)

 

結果分析:aov方差分析,trtresponse的影響非常顯著

fit.lm<-lm(response~trt,data=dat)

summary(fit.lm)

 

結果分析:lm回歸分析,trtresponse的影響非常顯著,並且trt的每一項都顯示出來了


免責聲明!

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



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