Processing math: 100%

实验的方差分析(R语言)

实验设计与数据处理(大数据分析B中也用到F分布,故总结一下,加深印象)第3课小结——实验的方差分析(one-way analysis of variance)

概述#

  • 实验结果S受多个因素Ai影响,但影响的程度各不相同,如何通过实验数据来确定因素的影响程度呢?其函数关系为

S=f(A1,A2,,An)

  • 方差

标准差的平方,表征xiˉx偏离程度

  • 方差分析(ANalysis Of VAriance,简称ANOVA
    利用实验数据与均值的偏离程度来判断各因素对实验结果影响显著性程度的方法。方差分析实质上是研究自变量(因素)与因变量(实验结果)的相互关系

  • 指标(experimental index)

衡量或考核实验效果的参数 。

  • 因素(experimental factor)

影响实验指标的条件,可控因素

  • 水平

因素的不同状态或内容

单因素实验的方差分析#

单因素实验方差分析基本问题#

(1)目的:检验一个因素对实验结果的影响是否显著性

单因素实验方差分析基本步骤#

1)计算平均值#

组内平均值(同一水平的平均值)

¯xi=1ninij=1xij

总平均值

¯xi=1nri=1nij=1xij

2)计算离差平方和#

  • 总离差平方和SST(sum of squares for total)

SST=ri=1nij=1(xij¯x)2

Copy Highlighter-hljs
表示了各实验值与总平均值的偏差的平方和
反映了实验结果之间存在的总差异
  • 组间离差平方和 SSA (sum of square for factor A)

SSA=ri=1nij=1(¯xi¯x)2=ri=1ni(¯xi¯x)2

Copy Highlighter-hljs
反映了各组内平均值之间的差异程度
由于因素A不同水平的不同作用造成的
  • 组内离差平方和SSe(sum of square for error)

SST=ri=1nij=1(xij¯xi)2

Copy Highlighter-hljs
反映了在各水平内,各实验值之间的差异程度
由于随机误差的作用产生
  • 三种离差平方和之间关系:

SST=SSA+SSe

3)计算自由度(degree of freedom)#

  • 总自由度(SST对应的自由度):dfT=n1
  • 组间自由度(SSA对应的自由度):dfA=r1
  • 组内自由度(SSe对就的自由度):dfe=nr

三者关系:dfT=dfA+dfe

4)计算平均平方#

  • 均方 = 离差平方和除以对应的自由度

MSA=SSA/dfAMSe=SSe/dfe

式中,MAA——组间均方,MSe——组内均方/误差的均方

5)F检验#

FA==MSAMSe

  • 服从自由度为(dfA,dfe)F分布(F distribution)

  • 对于给定的显著性水平α,从F分布表查得临界值Fα(dfA,dfe)

  • 如果FA>Fα(dfA,dfe),则认为因素A对实验结果有显著影响,否则认为因素A对实验结果没有显著影响

6)方差分析表#

差异源 SS df MS F 显著性
组间(因素A) SSA r1 MSA=SSA/(r1) MSA/MSe
组内(误差) SSe nr MSe=SSe/(nr)
总和 SST n1
  • FA>F0.01(dfA,dfe),称因素A对实验结果有非常显著的影响,用**号表示;
  • F0.05(dfA,dfe)<FA<F0.01(dfA,dfe),则因素A对实验结果有显著的影响,用*号表示;
  • FA<F0.05(dfA,dfe),称因素A对实验结果的影响不显著

双因素实验的方差分析#

  • 讨论两个因素对实验结果影响的显著性,以称二元方差分析

双因素无重复实验的方差分析#

双因素无重复实验

B1 B2 Bs
A1 x11 x12 x1s
A2 x21 x22 x2s
Ar xr1 xr2 xrs

1)计算平均值#

总平均:

¯x=1rsri=1sj=1xij

Ai水平时:

¯xi=1ssj=1xij

Bj水平时:

¯xj=1rsi=1xij

2)计算离差平方和#

  • 总离差平方和:

¯x=ri=1sj=1(xij¯x)2

  • 因素A引起离差平方和:

¯x=ri=1sj=1(xi¯x)2=srj=1(xi¯x)2

  • 因素B引起的离差平方和:

¯x=ri=1sj=1(xj¯x)2=rsj=1(xj¯x)2

  • 误差平方和:

¯x=ri=1sj=1(xijxixj¯x)2

3)计算自由度#

SSA的自由度 SSB的自由度 SSe的自由度 SST的自由度
dfA=r1 dfB=s1 dfe=(r1)(sf) dfT=n1=rs1

4)计算均方#

A均方 B均方 e均方
MSA=SSAdfA=SSAr1 MSB=SSBdfA=SSBs1 MSe=SSedfe=SSe(r1)(s1)

5)F 检验#

  • FA服从自由度为(dfA,dfe)的F分布:FA=MSAMSe
  • FB服从自由度为(dfB,dfe)的F分布:FA=MSBMSe
  • 对于给定的的显著性水平α,查F分布表:

Fα(dfA,dfe)Fα(dfB,dfe)

  • 如果FA>Fα(dfA,dfe),则认为因素A对实验结果有显著影响,否则认为因素A对实验结果没有显著影响
  • 如果FB>Fα(dfB,dfe),则认为因素A对实验结果有显著影响,否则认为因素A对实验结果没有显著影响

6)无重复实验双因素方差分析表#

差异源 SS df MS F 显著性
因素A SSA r1 MSA=SSA/(r1) MSA/MSe
因素B SSB s1 MSB=SSB/(s1) MSB/MSe
误差 SSe (r1)(s1) MSe=SSe/((r1)(s1))
总和 SST rs1

双因素重复实验基本问题#

  • 交互作用——因素间的联全作用称为交互作用

  • 因素间没有联合作用——相互独立,独立效应

  • 因素间有联合作用——交互作用,交互效应

双因素重复实验方差分析基本步骤#

1)计算平均值#

  • 组合水平Ai,Bi上的c次实验值的算术平均值

¯xij=1cck=1xijk,i=1,2,,r;j=1,2,,s

  • Ai水平时所有实验值的算术平均值:

¯xi=1scsj=1xijk=1ssj=1xijk,i=1,2,,r

  • Bj水平时:

¯xi=1rcsj=1xijk=1rrj=1xij,j=1,2,,s

  • 所有实验的总平均值:

¯x=1rscri=1sj=1ck=1xijk

2)计算离差平方和#

  • 总离差平方和:

SST=1rscri=1sj=1ck=1(xijk¯x)2=SSA+SSB+SSA×B+SSe

  • SSA为A引起的离差平方和:

SSA=scri=1(¯xi¯x)2

  • SSB为B引起的离差平方和:

SSB=rcsj=1(¯xj¯x)2

  • SSA×BA×B引起的离差平方和:

SSA×B=cri=1j=1s(¯xij¯xi¯xj+¯x)2

  • SSe为误差平方和:

¯x=ri=1sj=1ck=1(xijk¯xij)2

3)计算自由度#

SSA的自由度 SSB的自由度 SSA×B的自由度 SSe的自由度 SST的自由度
dfA=r1 dfB=s1 dfA×B=(r1)(n1) dfe=rs(c1) dfT=n1=rsc1

4)计算均方#

A均方 B均方 A×B均方 e均方
MSA=SSAdfA=SSAr1 MSB=SSBdfA=SSBs1 MSA×B=SSA×B(r1)(s1) MSe=SSedfe=SSers(c1)

5)F 检验#

  • FA服从自由度为(dfA,dfe)的F分布:FA=MSAMSe
  • FB服从自由度为(dfB,dfe)的F分布:FA=MSBMSe
  • FA×B服从自由度为(dfA×B,dfe)的F分布:FA=MSA×BMSe
  • 对于给定的的显著性水平α,查F分布表:

Fα(dfA,dfe)Fα(dfB,dfe)Fα(dfA×B,dfe)

  • 如果FA>Fα(dfA,dfe),则认为因素A对实验结果有显著影响,否则认为因素A对实验结果没有显著影响
  • 如果FB>Fα(dfB,dfe),则认为因素B对实验结果有显著影响,否则认为因素B对实验结果没有显著影响
  • 如果FA×B>Fα(dfA×B,dfe),则认为交互作用A×B对实验结果有显著影响,否则认为因素A×B对实验结果没有显著影响

6)重复实验双因素方差分析表#

差异源 SS df MS F 显著性
因素A SSA r1 MSA=SSA/(r1) MSA/MSe
因素B SSB s1 MSB=SSB/(s1) MSB/MSe
交互作用 SSA×B (r1)(s1) MSA×B=SSA×B(r1)(s1) MSA×B/MSe
误差 SSe rs(c1) MSc=SSe/(rs(c1))
总和 SST rsc1

R语言方差分析#

R语言重复实验方差分析#

例:下表中给出了某种化式产品在3种浓度、4种温度水平下得率的数据,试检验各因素及交互作用对产品得率的影响是否显著。

浓度/% 10℃ 24℃ 38℃ 52℃
2 14,11 11,11 13,9 10,12
4 9,7 10,8 7,11 6,10
6 5,11 13,14 12,13 14,10

我们令:A因素:浓度,B因素:温度,由题可得,重复次数c=2

可以分析出如下表:

(c1,c2) B1 B2 B3 B4
浓度/% 10℃ 24℃ 38℃ 52℃
A1 2 14,11 11,11 13,9 10,12
A2 4 9,7 10,8 7,11 6,10
A3 6 5,11 13,14 12,13 14,10

接下来,我们在RStudio(如果RStudio没有安装的,网上有大量的教程)中录入我们的数据,代码如下

Copy Highlighter-hljs
X <- c(14,9,5,11,10,13,13,7,12,10,6,14,10,7,11,11,8,14,9,11,13,12,10,10)
chemistryProduct<-data.frame(X,A=gl(3,1,24),B=gl(4,3,24),c=gl(12,1,24))
chemistryProduct.aov<-aov(X~A*B,data = chemistryProduct)
summary(chemistryProduct.aov)

说明:对上述代码的第1行和第2行简单说明一下。
第1行中,X数据的输入,是以列的方向输入,先输入第1次实验的数据,输入完成后再按第1次的顺序输入第2次实验数据。

第2行中,A=gl(3,1,24),第一个数3表示有3行,第二个数1表示行方向只增加1,第三个数24表示总共有24个数据。后面的同理。可以查看一下它的输出如下,不难发现其中的输入规律。

可以在RStudio中查看chemistryProduct的数据结构,多试一下,自行体会一下其中的A,B,c的规律。

Copy Highlighter-hljs
> chemistryProduct
X A B c
1 14 1 1 1
2 9 2 1 2
3 5 3 1 3
4 11 1 2 4
5 10 2 2 5
6 13 3 2 6
7 13 1 3 7
8 7 2 3 8
9 12 3 3 9
10 10 1 4 10
11 6 2 4 11
12 14 3 4 12
13 10 1 1 1
14 7 2 1 2
15 11 3 1 3
16 11 1 2 4
17 8 2 2 5
18 14 3 2 6
19 9 1 3 7
20 11 2 3 8
21 13 3 3 9
22 12 1 4 10
23 10 2 4 11
24 10 3 4 12

可以看到如下输出结果:

Copy Highlighter-hljs
Df Sum Sq Mean Sq F value Pr(>F)
A 2 44.33 22.167 4.092 0.0442 *
B 3 11.50 3.833 0.708 0.5657
A:B 6 27.00 4.500 0.831 0.5684
Residuals 12 65.00 5.417
---
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

将实验结果写成上文所述的方差分析表,如下

差异源 df SS MS F 显著性
因素A 2 44.33 22.167 4.092 *
因素B 3 11.50 3.833 0.708
交互作用 6 27.00 4.500 0.831
误差 12 65.00 5.417
总和

由分析结果可知,因素A对产品得率有显著性影响。

posted @   EndlessCoding  阅读(4225)  评论(0编辑  收藏  举报
编辑推荐:
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
阅读排行:
· JDK 24 发布,新特性解读!
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· Ollama系列05:Ollama API 使用指南
· 为什么AI教师难以实现
点击右上角即可分享
微信分享提示
CONTENTS