楼主: 宇文鸿傲
15242 8

[学科前沿] 【数据分析第一弹】方差分析(ANOVA) [推广有奖]

  • 0关注
  • 1粉丝

初中生

9%

还不是VIP/贵宾

-

威望
0
论坛币
12 个
通用积分
1.0046
学术水平
8 点
热心指数
8 点
信用等级
0 点
经验
401 点
帖子
7
精华
0
在线时间
13 小时
注册时间
2014-10-9
最后登录
2014-11-22

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

什么是方差分析?

方差分析是基于平方和分解的一种统计方法,其目的在与推断两组或多组资料的均值是否相等,检验两个或多个均值的差异是否在统计意义上显著。

1)单因素方差分析(One-way ANOVA

图片1.png

平方和分解:

图片2.GIF

总平方和(SST)=组内平方和(SSE)+组间平方和(SSB)      (均是离均差平方和)

自由度  n-1    =    n-g      +   g-1

离均差平方和自能反应变异的绝对大小,变异程度除与离均差平方和的大小有关外,还与其自由度有关。引入均方差(MS)来反映变异程度:

                     捕获.GIF


                    组内均方差MSE=SSE/(n-g)

                    组间均方差MSB=SSB/(g-1)

构造F统计量:        F=MSB/MSE~F(g-1,n-g)

                      H0:不存在处理效应  

                      H1:存在处理效应

即:

                     H0:mu1=mu2==mug

                    H1:mu1mu2、…、mug不全部相等

H0成立则组内变异与组间变异都只反应随机误差大小,MSEMSB相当,F接近1

H0不成立,即存在处理效应,则组内变异仍只反映随机误差的大小,但组间变异不仅反映随机误差大小还有处理效应,此时组内均方差MSB>组内均方差MSE。因此F远大于1,即MSB远大于MSE即认为存在处理效应,H0不成立。

应用条件:(1)个观测值相互独立(这一条一般跟实验设计有关,数据处理时不做检验,只要实验设计得当,这一条一般认为满足)

         (2)服从正态分布

         (3)方差齐性

Example1:

为研究煤矿粉尘作业环境对尘肺的影响,将18只大鼠随机分到ABC 3个组,每组6只,分别在地面办公楼、煤炭仓库和矿井下染尘,12周后测量大鼠全肺湿重(g),数据如下表,问不同环境下大鼠全肺湿重有无差别?


图片3.png


Rcode:

####(1)one-way ANOVA

#创建数据

XA=c(4.2,3.3,3.7,4.3,4.1,3.3)

XB=c(4.5,4.4,3.5,4.2,4.5,4.2)

XC=c(5.6,3.6,4.5,5.1,4.9,4.7)

X=c(XA,XB,XC)

Treat=gl(3,6,label=c("A","B","C"))

#正态性检验

qqnorm(X)

qqline(X)

library(fBasics)

normalTest(X)

jarqueberaTest(X)

#方差齐性检验

bartlett.test(X~Treat)

#先画个箱线图看看各组均值是否大致在一个水平上

plot(X~Treat)

#方差分析

fit=aov(X~Treat)

summary(fit)

####模型诊断

layout(matrix(c(1,2,3,4),2,2)) # optional layout

plot(fit)



图片4.png

图片5.png

两种正态性检验的结果,p值均大于0.1,所以不能否定数据服从正态分布


图片6.png

Bartlett检验结果,p值大于0.1,不能否定各组数据方差相等。

图片7.png

箱线图显示各组均值存在较明显差异,有可能存在处理效应


图片8.png

ANOVA结果显示,P值小于0.05,,所以在alpha=0.05的显著性水平上,我们认为H0不成立,即有95%把握认为存在处理效应,不同环境下大鼠全肺湿重有差别。


图片9.png

模型诊断图:上左和上右表示残差的波动程度基本不随观测值而变化,下左看残差是否服从正态分布,下右各个因子水平上残差波动程度相当;上左、上右,下右是对方差齐性的诊断

,下左是对正态性的诊断。


(2)two-way ANOVA(双因素方差分析)

<1>不可重复(无交互效应)

图片10.png


平方和分解:

图片11.GIF

总离差平方和(SST)=随机误差平方和(SSE)+行因素误差平方和(SSR)+列因素误差平方和(SSC)

自由度关系:

     kr-1=           (k-1)(r-1)         +          k-1           +       r-1

MSE=SSE/(k-1)(r-1)           MSR=SSR/(k-1)            MSC=SSC/(r-1)

行因素检验统计量: F=MSR/MSE~F(k-1(k-1)(r-1))

列因素检验统计量: F=MSC/MSE~F(r-1(k-1)(r-1))

Example2

研究ABC三种营养素对小白鼠体重增加的影响,已知窝别为影响因素。拟用6窝小白鼠,每窝3只,随机地安排喂养ABC三种营养素之一种,8周后观察小白鼠体重增加情况,数据如下表。问:(1)不同营养素之间小白鼠的体重增加是否不同?(2)不同窝别之间小白鼠的体重增加是否不同?

图片12.png

Rcode:

##############创建数据集

XA=c(64,53,71,41,50,42)

XB=c(65,54,68,46,58,40)

XC=c(73,59,79,38,65,46)

X=c(XA,XB,XC)

nut=gl(3,6,label=c("A","B","C"))

loc=gl(6,1,length=18)

#############正态性检验及方差齐性检验#################

normalTest(X)

##############画箱线图初步分析营养液和窝点两因素各自的效应

par(mfrow = c(1, 2))

plot(X~nut+loc)

#############ANOVA

fit2=aov(X~nut+loc)

summary(fit2)

##########ANOVA模型诊断图

par(mfrow=c(2,2))

plot(fit2)

图片13.png

P>0.1,正态性检验通过


图片14.png

行因素列因素方差齐性检验p值均大于0.1,方差齐性检验通过。


图片15.png

箱线图结果表明行因素列因素均对X产生影响(由图可知均值不在一个level上)

图片16.png

Anova结果显示行因素(loc)列因素(nutF检验P值均小于0.05,故认为行因素和列因素对X均有显著影响。



==========================================================

关于我们:

创作团队:数据加工厂

淘宝店地址:http://shop114096406.taobao.com/?spm=a230r.7195193.1997079397.40.asBLlF

或者在淘宝首页搜店铺“数据加工厂”,我们的logo如下:

图片25.jpg




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:ANOVA 数据分析 方差分析 anov Nov 自由度 统计 资料

捕获.GIF (3.57 KB)

捕获.GIF

图片24.png (7.12 KB)

图片24.png

图片23.png (14.8 KB)

图片23.png

图片22.png (8.29 KB)

图片22.png

图片21.png (7.39 KB)

图片21.png

图片20.png (4.81 KB)

图片20.png

图片19.png (15.83 KB)

图片19.png

图片18.png (13.01 KB)

图片18.png

图片17.GIF (4.83 KB)

图片17.GIF

捕获.GIF (1.3 KB)

捕获.GIF

沙发
宇文鸿傲 发表于 2014-10-12 15:42:49 |只看作者 |坛友微信交流群

<2>可重复(交互效应)

若“重复”m次实验,行因素有rlevel,列因素有klevel

    SST     =      SSE     +     SSR      +    SSC      +    SSRC

总离差平方和 = 误差项平方和 + 行因素平方和 + 列因素平方和 + 交互作用平方和

自由度:

   n-1      =     kr(m-1)   +    k-1        +    r-1        +     (k-1)(r-1)

MSE=SSE/kr(m-1)       MSR=SSR/(k-1)      MSC=SSC/(r-1)   MSRC=SSRC/(k-1)(r-1)

行因素检验统计量: F=MSR/MSE~F(k-1kr(m-1))

列因素检验统计量: F=MSC/MSE~F(r-1kr(m-1))

交互效应检验统计量:F=MSRC/MSE~F((k-1)(r-1),kr(m-1))

Example3

有一个关于检验毒品强弱的试验, 48只老鼠注射IIIIII三种毒药(行因素), 同时有ABCD 4种治疗方案(列因素), 这样的试验在每一种因素组合下都重复四次测试老鼠的存活时间, 数据如下表. 试分析毒药和治疗方案以及它们的交互作用对老鼠存活时间有无显著影响。


Rcode:

#################创建数据集

rats<-data.frame(

   Time=c(0.31, 0.45, 0.46, 0.43, 0.82, 1.10, 0.88, 0.72, 0.43, 0.45,

          0.63, 0.76, 0.45, 0.71, 0.66, 0.62, 0.38, 0.29, 0.40, 0.23,

          0.92, 0.61, 0.49, 1.24, 0.44, 0.35, 0.31, 0.40, 0.56, 1.02,

          0.71, 0.38, 0.22, 0.21, 0.18, 0.23, 0.30, 0.37, 0.38, 0.29,

          0.23, 0.25, 0.24, 0.22, 0.30, 0.36, 0.31, 0.33),

          Toxi=gl(3, 16, 48, labels = c("I", "II", "III")),

          Cure=gl(4, 4, 48, labels = c("A", "B", "C", "D"))

)

###############正态性检验

normalTest(rats$Time)

####################不满足正态进行box-cox变换

boxcox(rats$Time~rats$Toxi*rats$Cure)

boxcox(rats$Time~rats$Toxi*rats$Cure,lambda = seq(-1, 0, 0.05))

box_cox <- function(x, lambda=1) {

  if (lambda==0) {

  stopifnot(all(x)>0)

  log(x)}

  else {((x)^lambda - 1)/lambda}

}

Time.hat=box_cox(rats$Time,-0.8)

normalTest(Time.hat)

####检查每个格子里的数据方差是否大致相等(方差齐性检验)        

leveneTest(Time.hat~rats$Toxi*rats$Cure)

#########box-cox变换后的数据与行因素列因素重新整合到一个数据集中

Rats=data.frame(time=Time.hat,toxi=rats$Toxi,cure=rats$Cure)

############画箱线图初步分析毒药和治疗法案两因素各自的效应

par(mfrow=c(1, 2))

plot(time~toxi+cure, data=Rats)

####交互作用图,可初步判断,一般若相交则存在交互作用,若平行则不存在交互作用

par(mfrow=c(1, 2))

with(Rats,interaction.plot(toxi, cure, time, trace.label="cure"))

with(Rats,interaction.plot(cure, toxi, time, trace.label="toxi"))

######ANOVA

fit3<-aov(time~toxi*cure, data=Rats)

summary(fit3)

#####诊断图

par(mfrow=c(2,2))

plot(fit3)


P值小于0.1,正态性检验没通过,需进行box-cox变换


由极大似然函数图知在lambda=-0.8时似然函数值最大。取lambda=-08进行box-cox变换。

变换后数据p>0.1,通过正态性检验


变换后数据也通过了方差齐性检验(若通不过,一般进行平方根、对数、反正弦等变换)


箱线图表明行因素列因素均对结果有显著影响(均值不在一个level上)

交互作用图没有显示明显的平行于交叉,还需通过ANOVA进行更精确的分析。


ANOVA结果表明行因素(toxi)列因素(cure)均对结果有显著影响(P<0.1)

但交互作用(toxi:cure)不显著(p>0.1)





==========================================================================
关于我们:

创作团队:数据加工厂

淘宝店地址:http://shop114096406.taobao.com/?spm=a230r.7195193.1997079397.40.asBLlF

或者在淘宝首页搜店铺“数据加工厂”,我们的logo如下:

logo.jpg



使用道具

藤椅
宇文鸿傲 发表于 2014-10-12 16:20:11 |只看作者 |坛友微信交流群

<2>可重复(交互效应)

若“重复”m次实验,行因素有rlevel,列因素有klevel

1.GIF

    SST     =      SSE     +     SSR      +    SSC      +    SSRC

总离差平方和 = 误差项平方和 + 行因素平方和 + 列因素平方和 + 交互作用平方和

自由度:

   n-1      =     kr(m-1)   +    k-1        +    r-1        +     (k-1)(r-1)

MSE=SSE/kr(m-1)       MSR=SSR/(k-1)      MSC=SSC/(r-1)   MSRC=SSRC/(k-1)(r-1)

行因素检验统计量: F=MSR/MSE~F(k-1kr(m-1))

列因素检验统计量: F=MSC/MSE~F(r-1kr(m-1))

交互效应检验统计量:F=MSRC/MSE~F((k-1)(r-1),kr(m-1))

Example3

有一个关于检验毒品强弱的试验, 48只老鼠注射IIIIII三种毒药(行因素), 同时有ABCD 4种治疗方案(列因素), 这样的试验在每一种因素组合下都重复四次测试老鼠的存活时间, 数据如下表. 试分析毒药和治疗方案以及它们的交互作用对老鼠存活时间有无显著影响。

2.png

Rcode:

#################创建数据集

rats<-data.frame(

   Time=c(0.31, 0.45, 0.46, 0.43, 0.82, 1.10, 0.88, 0.72, 0.43, 0.45,

          0.63, 0.76, 0.45, 0.71, 0.66, 0.62, 0.38, 0.29, 0.40, 0.23,

          0.92, 0.61, 0.49, 1.24, 0.44, 0.35, 0.31, 0.40, 0.56, 1.02,

          0.71, 0.38, 0.22, 0.21, 0.18, 0.23, 0.30, 0.37, 0.38, 0.29,

          0.23, 0.25, 0.24, 0.22, 0.30, 0.36, 0.31, 0.33),

          Toxi=gl(3, 16, 48, labels = c("I", "II", "III")),

          Cure=gl(4, 4, 48, labels = c("A", "B", "C", "D"))

)

###############正态性检验

normalTest(rats$Time)

####################不满足正态进行box-cox变换

boxcox(rats$Time~rats$Toxi*rats$Cure)

boxcox(rats$Time~rats$Toxi*rats$Cure,lambda = seq(-1, 0, 0.05))

box_cox <- function(x, lambda=1) {

  if (lambda==0) {

  stopifnot(all(x)>0)

  log(x)}

  else {((x)^lambda - 1)/lambda}

}

Time.hat=box_cox(rats$Time,-0.8)

normalTest(Time.hat)

####检查每个格子里的数据方差是否大致相等(方差齐性检验)        

leveneTest(Time.hat~rats$Toxi*rats$Cure)

#########box-cox变换后的数据与行因素列因素重新整合到一个数据集中

Rats=data.frame(time=Time.hat,toxi=rats$Toxi,cure=rats$Cure)

############画箱线图初步分析毒药和治疗法案两因素各自的效应

par(mfrow=c(1, 2))

plot(time~toxi+cure, data=Rats)

####交互作用图,可初步判断,一般若相交则存在交互作用,若平行则不存在交互作用

par(mfrow=c(1, 2))

with(Rats,interaction.plot(toxi, cure, time, trace.label="cure"))

with(Rats,interaction.plot(cure, toxi, time, trace.label="toxi"))

######ANOVA

fit3<-aov(time~toxi*cure, data=Rats)

summary(fit3)

#####诊断图

par(mfrow=c(2,2))

plot(fit3)

图片3.png

P值小于0.1,正态性检验没通过,需进行box-cox变换

图片4.png

由极大似然函数图知在lambda=-0.8时似然函数值最大。取lambda=-08进行box-cox变换。

图片5.png

变换后数据p>0.1,通过正态性检验

图片6.png

变换后数据也通过了方差齐性检验

图片7.png

箱线图表明行因素列因素均对结果有显著影响(均值不在一个level上)

图片8.png

交互作用图没有显示明显的平行于交叉,还需通过ANOVA进行更精确的分析。

图片9.png

ANOVA结果表明行因素(toxi)列因素(cure)均对结果有显著影响(P<0.1)

但交互作用(toxi:cure)不显著(p>0.1)


============================================================================================================================================

创作团队:数据加工厂

淘宝店地址:http://shop114096406.taobao.com/?spm=a230r.7195193.1997079397.40.asBLlF

(可复制打开)

或者在淘宝首页搜店铺“数据加工厂”,我们的logo如下:

logo.jpg



使用道具

板凳
gxnnhsd 发表于 2014-10-12 17:13:13 |只看作者 |坛友微信交流群
好!顶顶顶顶!

使用道具

报纸
gaojianwqjk 发表于 2014-10-12 18:52:03 |只看作者 |坛友微信交流群

使用道具

地板
ancientdemos 发表于 2016-5-15 22:13:56 |只看作者 |坛友微信交流群
謝謝,入門幫助很大

使用道具

7
tianwk 发表于 2019-5-7 15:49:41 |只看作者 |坛友微信交流群
thanks for sharing

使用道具

8
Candice_s 发表于 2020-4-30 16:57:00 |只看作者 |坛友微信交流群
请问显著水平怎么调成0.01?

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-30 19:37