1. 单因素组间实验设计(焦虑症治疗)
1A. 背景
焦虑症现有两种治疗方案:认知行为疗法(CBT)和眼动脱敏再加工法
(EMDR)。招募10位焦虑症患者作为志愿者,随机分配一半的人接受
为期五周的CBT,另外一半接受为期五周的EMDR,在治疗结束时,每位
患者都填写状态特质焦虑问卷(STAI),进行自我评测报告。
1B. 设计
只有治疗方案一个变化因素,志愿者只接受其中一个治疗方案(CBT或
EMDR),所以称为单因素组间实验。由于在每种治疗方案下观测数相等
(下表格中两列行数相同),也称为均衡设计(balanced design);若观
测数不同,则称作非均衡设计(unbalanced design)。
CBT | EMDR |
---|---|
s1 | s6 |
s2 | s7 |
s3 | s8 |
s4 | s9 |
s5 | s10 |
2. 单因素组内实验设计(依旧是焦虑症治疗)
2A. 背景
研究某一种方案,比如CBT,在不同时间(5周或者6个月)对焦虑症的
治疗效果(即STAI结果)。
2B. 设计
此处变化的因素是时间,每个志愿者两个水平都会经历,所以叫做单因素
组内实验。
志愿者 | 时间1 - 5周 | 时间2 - 6个月 |
---|---|---|
s1 | ||
s2 | ||
s3 | ||
s4 | ||
s5 | ||
s6 | ||
s7 | ||
s8 | ||
s9 | ||
s10 |
3. 含组间和组内因子的双因素(依旧是焦虑症治疗)
3A. 背景
研究两种治疗方案(CBT和EMDR),在不同时间(5周或者6个月)对焦
虑症的治疗效果(即STAI结果)。
2B. 设计
此处变化的因素有治疗方案和时间,可以分析疗法的影响(时间跨度上的
平均)[主效应] 和时间的影响(疗法类型跨度上的平均)[主效应],又可
分析疗法和时间的交互影响 [交互效应]。
疗法 | 志愿者 | 时间1 - 5周 | 时间2 - 6个月 |
---|---|---|---|
CBT | s1 | ||
s2 | |||
s3 | |||
s4 | |||
s5 | |||
EMDR | s6 | ||
s7 | |||
s8 | |||
s9 | |||
s10 |
4. 焦虑症治疗实验设计扩展
1. 除了焦虑症,抑郁症也会对病症治疗有影响,且抑郁症和焦虑症常常同时
出现。所以可能两组疗法中的患者抑郁水平不同导致了治疗后的差异,而
不是实验中的变化因素(比如治疗方案或者时间)导致的。抑郁症也可以
解释因变量的组间差异,称为混淆因素(confounding factor)。由于实验
中不希望抑郁症这个因素变化,也被称作干扰变数(nuisance variable)。
2. 假设招募患者时使用抑郁症的自我评测报告,比如白氏抑郁症量表
(BDI),记录了他们的抑郁水平,可以在评测疗法类型的影响前,对任何
抑郁水平的组间差异进行统计性调整。此时BDI为协变量,该设计为协方差
分析(ANCOVA)。
3. 为增强研究的有效性,可以对焦虑症进行其他的测量(比如家庭评分、医师
评分,以及焦虑症对日常行为的影响评价)。此时有多个因变量,被称作多元
方差分析(MANOVA), 若协变量也存在, 那么就叫多元协方差分析
(MANCOVA)。
5. 方差分析
1. 单因素方差分析
此处借概率论与数理统计书中的一道例题来解释:
假设一块地种小麦,进行品种试验,包含k=3个品种,分别重复4、5和3次,
数据为(单位:斤/亩)
品种1:390,410,372,385
品种2:375,348,354,364,362
品种3:413,383,408
: 小麦品种对亩产量没有显著影响
全部的算数平均为380.33,总平方和SST为
= (390-380.33)^2 + (410-380.33)^2 + ...+(408-380.33)^2 =
三个品种各自平均值为389.25, 360.60, 401.33
= (390-389.25)^2 + (375-360.60)^2 + ...+(408-401.33)^2 =
= 4*(389.25-380.33)^2 + 5*(360.60-380.33)^2 + 3*(401.33-380.33)^2 =
= = -
= 3588.05 / (3-1) =
= 1686.62 / (12-3) =
= = 1794.03 / 187.40 =
计算出的方差分析表汇总如下:
项目 | SS | 自由度 | MS | F比 | 显著性 |
---|---|---|---|---|---|
品种 | 3588.05 | 3-1=2 | 1794.03 | 9.57 | ** F_2,9(0.01) = 8.02 < 9.57 |
误差 | 1686.62 | 11-2=9 | 187.40 | ||
总和 | 5274.67 | 12-1=11 |
在R中使用aov()计算出的结果与手算结果一致:
> sample <- data.frame(Type=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'C', 'C'), Output=c(390, 410, 372, 385, 375, 348, 354, 364, 362, 413, 383, 408))
> sample
Type Output
1 A 390
2 A 410
3 A 372
4 A 385
5 B 375
6 B 348
7 B 354
8 B 364
9 B 362
10 C 413
11 C 383
12 C 408
> str(sample)
'data.frame': 12 obs. of 2 variables:
$ Type : Factor w/ 3 levels "A","B","C": 1 1 1 1 2 2 2 2 2 3 ...
$ Output: num 390 410 372 385 375 348 354 364 362 413 ...
> fit <- aov(Output ~ Type, data=sample)
> summary(fit)
Df Sum Sq Mean Sq F value Pr(>F)
Type 2 3588 1794.0 9.573 0.00591 **
Residuals 9 1687 187.4
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
2. 双因素方差分析
此处借R包中的ToothGrowth数据集来解释:
随机分配60只豚鼠,分别采用两种喂食方法(橙汁或维生素C),各喂食方法
中抗坏血酸含量有三种水平(0.5mg、1mg或2mg),要探究他们与牙齿长度
的关系:
截取一部分数据:
supp | dose | len |
---|---|---|
VC | 0.5 | 4.2 |
VC | 0.5 | 11.5 |
... | ... | ... |
OJ | 0.5 | 15.2 |
... | ... | ... |
OJ | 1 | 19.7 |
... | ... | ... |
OJ | 2 | 23 |
: 喂食方法对牙齿长度没有显著影响
: 某种喂食方法抗坏血酸含量对牙齿长度没有显著影响
: 喂食方法和不同抗坏血酸含量的交互作用对牙齿长度没有显著影响
全部的算数平均为18.81,总平方和SST为
= (4.2-18.81)^2 + ...+(23-18.81)^2 =
VC平均值16.96, OJ平均值20.66, 0.5剂量平均值10.61, 1剂量平均值19.74,
2剂量平均值26.1
= 30*(16.96-18.81)^2 + 30*(20.66-18.81)^2=
= 20*(10.61-18.81)^2 + 20*(19.74-18.81)^2 + 20*(26.1-18.81)^2 =
= (这里计算有点复杂直接借用R求出)
计算出的方差分析表汇总如下:
项目 | SS | 自由度 | MS | F比 | 显著性 |
---|---|---|---|---|---|
喂食方法 因素A |
205.35 | 1 | 205.4 | 15.572 | *** |
抗坏血酸含量 因素B |
2426.43 | 2 | 1213.2 | 92.000 | *** |
喂食方法和抗坏血酸含量 交互作用 |
108.3 | 2 | 54.2 | 4.107 | * |
误差 | 712.1 | 54 | 13.2 | ||
总和 | 3452.21 |
在R中代码为:
> attach(ToothGrowth)
The following object is masked _by_ .GlobalEnv:
dose
> table(supp, dose)
dose
supp 0.5 1 2
OJ 10 10 10
VC 10 10 10
> dose <- factor(dose)
> fit <- aov(len ~ supp * dose)
> summary(fit)
Df Sum Sq Mean Sq F value Pr(>F)
supp 1 205.4 205.4 15.572 0.000231 ***
dose 2 2426.4 1213.2 92.000 < 2e-16 ***
supp:dose 2 108.3 54.2 4.107 0.021860 *
Residuals 54 712.1 13.2
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
结论:随着橙汁和维生素C中的抗坏血酸剂量的增加,牙齿长度变长。两种因
素和其交互作用对结果的影响都显著。
6. 评估检验的假设条件
方差分析结果的有效性是建立在一系列假设条件之上的,需要评估进行方差
分析的数据,是否符合模型使用的假设条件。
6A. QQ 图(正态性检验)
library(car)
qqPlot(lm(response ~ trt, data=cholesterol),
simulate=TRUE, main="Q-Q Plot", labels=FALSE)
# 下图说明符合正态分布
6B. K-S test
用ks.test(x, pnorm)
进行正态性检验,若结果中的p值大于0.05,则数据符合
正态分布。
6C. Anderson–Darling test
可以从nortest包中的ad.test()
进行检验。若结果中的p值大于0.05,则数据符
合正态分布。
6D. Shapiro-Wilk test
Shapiro-Wilk检验在小样本情况下,是很普通的正态性检验方法,
Shapiro.test()
在默认安装的stats包中。
6E. Lilliefor test
Lilliefor test是基于Kolmogorov–Smirnov test的一种正态性检验。原假设:
数据符合正态分布,lillie.test()
也在nortest包中。
6F. 方差齐性检验
如果各个水平的观察值方差差异太大,只检验均值之间的差异就没有意义了,
所以要进行方差齐性检验。
Bartlett test可以用来检验数据的方差齐性。
> bartlett.test(response ~ trt, data=cholesterol)
Bartlett test of homogeneity of variances
data: response by trt
Bartlett's K-squared = 0.57975, df = 4, p-value = 0.9653
其他检验如Fligner-Killeen检验(fligner.test()
函数)和Brown-Forsythe检验
(HH包中的hov()
函数)获得的结果与Bartlett检验相同。
6G. 离群点检测
方差齐性分析对离群点非常敏感。可利用car包中的outlierTest()
函数来检测
离群点:
outlierTest(fit)
No Studentized residuals with Bonferroni p < 0.05
Largest |rstudent|:
rstudent unadjusted p-value Bonferroni p
19 2.251149 0.029422 NA
Credit:
笔记整理自:Datawhale 概率统计组队学习
书籍参考:陈希孺,概率论与数理统计