1、单因素随机区组方差分析 VS t检验
当你想要比较A、B两种处理的效果时,第一次实验数据如下:
A1 <- c(2.68, 2.47, 2.62 )
B1 <- c(2.69, 2.78, 2.66 )
t.test(A1, B1)
p-value = 0.189 > 0.05
第二次实验数据如下:
A2 <- c(3.07, 3.14, 3.23)
B2 <- c(3.26, 3.26, 3.29)
t.test(A2, B2)
p-value = 0.1108 > 0.05
第三次实验数据如下:
A3 <- c(2.84, 2.85,2.92)
B3 <- c(2.92, 3.02,2.99)
t.test(A3, B3)
p-value = 0.05318 > 0.05
实验做到这一步,你可能要疯了,毕竟做了三次,p值都大于0.05。当然,你可能会想到把三次实验的数据放一起分析。
A <- c(2.68, 2.47, 2.62, 3.07, 3.14, 3.23, 2.84, 2.85, 2.92)
B <- c(2.69, 2.78, 2.66, 3.26, 3.26, 3.29, 2.92, 3.02, 2.99)
t.test(A, B)
p-value = 0.3344 > 0.05,终于,你忍不住要发pyq了。
事实上,如果你认真观察会发现,每次实验得到的数据存在些许差异,你看看下面均值的变化:
A1: 2.59 B1: 2.71
A2: 3.15 B2: 3.27
A3: 2.87 B3: 2.98
不同“批次”实验间的差异,可能是由于每次实验的材料、测量仪器的工作状态或者实验员实验熟练程度等非实验因素条件造成的,你可以把每一次实验都看做一个“区组”,区组内非试验因素差异最小而区组间内非试验因素差异最大,当你直接用t检验的时候,会将区组间非试验因素的差异并入误差项,使得原本显著差异的结果变得不显著。
如果你用单因素随机区组的方法分析,便可以将批次间的差异剔除出。
res <- c(2.68, 2.47, 2.62, 3.07, 3.14, 3.23, 2.84, 2.85, 2.92,
2.69, 2.78, 2.66,3.26, 3.26, 3.29, 2.92, 3.02, 2.99)
trt <- factor(c(rep('A', 9), rep('B', 9))) # 处理因素
bk <- factor(c(1,1,1,2,2,2,3,3,3,1,1,1,2,2,2,3,3,3)) # 区组因素
data <- data.frame(trt, bk, res)
aov <- aov(res ~ trt + bk, data = data)
summary(aov)
Df Sum Sq Mean Sq F value Pr(>F)
trt 1 0.0613 0.0613 15.89 0.00135 **
bk 2 0.9353 0.4677 121.32 1.44e-09 ***
Residuals 14 0.0540 0.0039
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
结果表明,处理因素间存在极显著差异(p = 0.00135 < 0.01),同时,结果也表明区组间也存在极显著差异(p = 1.44e-09 < 0.01),说明采用这种方法进行分析是一种d明智且正确的选择。
2、随机区组设计助你合理规划实验
随机区组设计(randomized blocks design):指根据局部控制和随机原则进行的,将试验单位按性质不同分成与重复数一样多的区组(窝组),使区组内非试验因素差异最小而区组间内非试验因素差异最大,每个区组均包括全部的处理。区组内各处理随机排列,各区组独立随机排列。
随机区组设计通过划分区组降低对试验单位的整体要求,只要求各区组内非试验因素条件尽量一致,能有效减少非试验因素的单向差异,降低试验误差,广泛应用于生物实验设计。但也存在不足之处,即不允许处理数太多。当处理数太多,或需要在区组内设置重复时,必然导致区组规模增大,组内误差相应增大,就达不到局部控制的效果。——常规应用场景
把随机区组的观念灵活应用在实验中,可以是这样的:试验单位满足试验的整体要求,即各试验材料差异很小,且材料充足。但试验的重复数较多,在一次试验中难以完成。试验者可分批次进行试验,每一批次即为一个区组,根据自身情况合理分配每一批次试验的重复数,从而将繁重的工作平均分配到各批次试验。
在之前的一篇文章《原创 R语言告诉你该做几个实验重复》中,给出了一种估计实验重复数的方法,通过功效分析,你想要有90%的把握得到p<0.05的数据需要做9个重复,如果实验不复杂,不耗时耗力,也不缺材料,你当然可以在一次实验中做9个重复,如果实验一次做完9个重复,或者你不想一次做那么多,想要做半天玩半天,完全可以分3次,每次3个重复来开展实验。
以下提供一个轻松做实验的“套路”:
1)当你做完一次实验后,p>0.05,先别急着继续干,可根据《原创 R语言告诉你该做几个实验重复》中的方法做一个功效分析,看看自己该做几个重复比较合适;
2)当你知道该做几个重复数之后,可以这样安排实验:
N=4~6:一次做4~6个重复
N=7~12:3~4批次,每次3~4个重复
N=13~20:3~4批次,每次4~5个重复
如果重复数很大,你可能需要衡量下这个实验是否有继续的必要性,或许你的处理本来就是没有效果的,就算你做再多也做不出来。每个人可以根据实验的复杂性,个人精力,时间的紧迫性合理安排自己的实验,以上仅是一些建议。
3、小结
本文的例子是单因素两水平的,你还可以将其扩展到单因素多水平,双因素甚至三因素的应用上。
值得注意的是,试验者得到多个批次的试验数据后,可能未意识到这是随机区组设计,统计分析时没有加上批次这一因素,导致误差变大:①当批次间差异较小时,单因素与单因素随机区组的统计结果是相差不多的,下次进行类似试验的设计时可不考虑批次的影响;②当批次间差异较大时,可以通过统计分析剔除批次间的差异,说明在重复数多的情况下,采用随机区组设计,进行多批次试验做法是可行的;③多批次试验数据的分析,倘若忽略“批次”这个因素,可能使原本显著差异的结果变得不显著。