回复 第4楼 的 nomad:
我还是举个例子吧,假设 15°C 与 25°C 组各三只老鼠,如果15°C的两时间间隔体重数据分别为 10.3,10.3,9.4 与 10.9,11.7,10,25°C的两天数据为 20.9,20.3,20.3 与 28.3,27.8,26.7。
<br />
wt15Jan <- c(10.3,10.3,9.4)<br />
wt15Feb <- c(10.9,11.7,10)<br />
wt25Jan <- c(20.9,20.3,20.3)<br />
wt25Feb <- c(28.3,27.8,26.7)<br />
</p>
假设我想知道15°C或25°C下两时间间隔间体重差距,那么因为这两个时间点都是一只老鼠,应该用配对t检验
<br />
t.test(wt15Jan,wt15Feb,paired = T)<br />
t.test(wt25Jan,wt25Feb,paired = T)<br />
</p>
结果看出,15°C下有差异,但置信区间包括0,不显著; 25°C下差异是显著的,说明温度,特别是高温可能影响大。但这个配对t检验主要目的就是考察相同温度下两个时间点差异与0相比是否显著,着眼点是差异。
下面我们考察温度对体重差异的影响,先生成新变量忽略掉时间间隔的问题(因为时间间隔对两组而言都是一样的):
<br />
wt15 <- wt15Jan - wt15Feb<br />
wt25 <- wt25Jan - wt25Feb<br />
</p>
然后对wt15与wt25进行t检验
<br />
t.test(wt15,wt25)<br />
</p>
这样考察的就是两个温度下体重差异的显著性,结果显示两组明显不同,也就是15°C与25°C下体重差异是不同的,这也可以用单因素方差分析来计算,单因素为温度,水平有两个,只不过一个是t检验,一个是F检验,在这个问题上实质关心的内容是一样的
<br />
wt <- c(wt15,wt25)<br />
temp <- c(rep(0,3),rep(1,3))<br />
fit <- lm(wt~temp)<br />
anova(fit)<br />
</p>
当你水平很多,也就是温度很多时,t检验只能两两比就不如F检验更关注于因素的影响了。前面都建立在就两个时间点的基础上,如果你想考察的是时间的影响,那模型就是wt ~ temp + time,这就是两因素方差分析了,但你也看到了,本质上是线性模型,也就是控制了温度变化的协变量后考察时间对体重的影响或者是控制了时间变化的协变量后考察温度的影响。其实因为在你的实验设计中time是固定的,所以模型收敛为wt~temp,用t检验就够了。
其实这个问题如果考察的再细一点,就要建立线性混合模型了。不过复杂模型一般是用来处理观察数据而不是实验数据,实验数据一般都是控制变量的,到两因素就够了,主要靠随机化来把研究目的聚焦到一个或最多两个因素对响应变量的影响上。