11  生态学实验数据采集方法

11.1 引言

如果说观测是生态学的“眼睛”,那么实验就是生态学的“手术刀”。生态学实验(Ecological Experimentation)通过主动操纵一个或多个环境因子(自变量),观察生物或生态系统产生的响应(因变量),从而揭示变量之间的因果关系。在数据采集领域,实验数据以其高受控性和逻辑严密性,成为验证科学假设的关键来源。

11.2 实验设计的基本原则

为了确保采集到的数据具有统计学意义和科学说服力,生态实验必须遵循以下核心原则:

  • 对照 (Control):设立对照组(不施加处理)与处理组进行比较,以排除非实验因子(如背景天气变化)对结果的影响。
  • 重复 (Replication):在相同的处理水平下设置多个实验单元。重复可以估算实验误差,提高结果的普适性。
  • 随机化 (Randomization):将实验单元随机分配到不同处理组中,以消除潜在的系统偏差(如样地坡度、土壤肥力的不均匀性)。

11.3 生态学实验的主要类型

根据受控程度和空间尺度的不同,实验数据采集通常在以下场景中进行:

11.3.1 1. 实验室实验 (Laboratory Experiments)

实验室实验是在完全人工控制的环境(如人工气候室、恒温培养箱、无菌操作台)中进行的受控实验。这种实验类型是生态学研究中最基础的方法之一,尤其适合研究单一因子的影响或验证特定机制假设。

核心特征

  1. 环境可控性极高:温度、湿度、光照、CO₂ 浓度等环境因子可精确设定和维持
  2. 可重复性最强:标准化的实验条件使得不同实验室可以重复验证结果
  3. 干扰因素少:排除了野外环境中的随机干扰(如天气变化、动物取食)
  4. 时间尺度灵活:可以加速或减缓生态过程(如用高温加速分解实验)

典型应用场景

研究主题 实验设计 数据采集方式
种子萌发对温度的响应 不同温度梯度的培养箱 每日记录萌发数量
植物光合作用对 CO₂ 浓度的响应 人工气候室控制 CO₂ 浓度 便携式光合仪测量光合速率
土壤微生物对温度升高的响应 恒温培养箱设置不同温度 定期采样测定微生物量和酶活性
凋落物分解速率 分解袋置于恒温恒湿箱 定期称重计算质量损失

数据采集技术

  1. 高精度传感器监测:温湿度记录仪、CO₂ 浓度传感器、光照强度计
  2. 显微观测:体视显微镜观察种子萌发、根系生长
  3. 生化分析:分光光度计测定叶绿素含量、酶活性
  4. 自动化系统:数据采集器(Data Logger)连接多个传感器,实时记录并存储数据

优势与局限

优势: - 变量控制精确,因果关系清晰 - 实验周期可控,可快速获得结果 - 成本相对较低(相比大型野外实验) - 安全性高,易于管理

局限: - 生态真实性不足(“瓶子效应”):实验室条件无法完全模拟自然环境的复杂性 - 尺度效应:小尺度实验结果可能无法外推到大尺度生态系统 - 缺乏生物互作:实验室中往往只研究单一物种或简化的群落 - 边界效应:封闭容器的边界可能对生物行为产生非自然影响

生态学案例——温度对土壤呼吸的影响

某研究团队在实验室中研究温度升高对土壤呼吸的影响。实验设计如下: 1. 采集野外土壤样品,分装到 500mL 培养瓶中 2. 将培养瓶随机分配到 5 个恒温培养箱(5°C、10°C、15°C、20°C、25°C) 3. 每个温度处理 6 个重复(共 30 个培养瓶) 4. 每周用气相色谱仪测定瓶内 CO₂ 浓度,计算呼吸速率 5. 实验持续 8 周

结果显示,土壤呼吸速率随温度升高呈指数增长,Q₁₀ 值(温度每升高 10°C 呼吸速率的倍数)约为 2.3。这一结果为预测气候变暖对土壤碳排放的影响提供了参数依据。

实验室实验的最佳实践

  1. 预实验:正式实验前进行小规模预实验,测试实验设计的可行性
  2. 环境监测:即使在恒温箱中,也要用独立的温度记录仪验证实际温度
  3. 随机化:将实验单元随机分配到不同处理,避免系统性偏差
  4. 足够重复:每个处理至少 3-5 个独立重复(不是子样本!)
  5. 记录详细:记录所有实验条件和意外情况(如停电、设备故障)

何时选择实验室实验

  • 需要精确控制单一环境因子
  • 研究机制性问题(如生理响应、生化过程)
  • 野外实验不可行或成本过高
  • 需要快速获得初步结果以指导后续野外实验

扩展记录: 2026-04-11 | 扩展者:Clawd | 目标字数:800+

11.3.2 2. 野外控制实验 (Field Experiments)

在自然生态系统中直接操纵变量,如在森林中架设增温设施(OTC)、进行人工降雨模拟或物种移除实验。 * 优点:生态真实性强,结果可直接应用于自然系统。 * 数据采集:依赖于野外耐用型仪器(如自动气象站、地下根系扫描仪)和定期的手工实测。

11.3.3 3. 中宇宙实验 (Mesocosm Experiments)

构建介于实验室和野外之间的半人工系统(如大型水箱、封闭式人工生态仓)。 * 优点:在保持一定生态复杂性的同时,提供了比野外更高的控制力。 * 数据采集:通常集成多参数水质监测仪、气体通量分析仪等设备。

11.4 实验数据的采集技术

实验过程中的数据采集往往比观测更具针对性:

  • 自动化连续监测:利用数据采集器(Data Logger)连接各类传感器,实时记录光照、温度、湿度、CO2浓度等环境背景数据。
  • 破坏性采样 (Destructive Sampling):为了获取生物量、养分含量或解剖学特征,往往需要在实验结束或特定阶段移除部分生物样本进行实验室分析。
  • 非损伤性测量:利用叶绿素荧光仪、便携式光合系统等设备,在不伤害生物体的情况下采集生理状态数据。

11.5 实验设计的挑战与伦理

  • 尺度效应 (Scale Issues):实验室中的“瓶子效应”可能无法完全模拟自然界的大尺度过程。
  • 边缘效应:实验边界可能对内部生物产生非自然的影响。
  • 环境伦理:野外实验必须评估操纵行为(如施加污染物或引入物种)对当地生态系统的潜在负面影响。

11.6 常见设计陷阱

在生态学实验中,以下两个设计缺陷最为常见,需要特别警惕:

  • 伪重复 (Pseudoreplication):Hurlbert(1984, Ecological Monographs, 54: 187–211, DOI: 10.2307/1942661)首次系统定义了这一概念——当处理仅施加于一个实验单元(如一个池塘、一块样地),却将该单元内的多个子样本当作独立重复进行统计分析时,就产生了伪重复。例如,在一个施氮样地中取 5 个土壤样品,这 5 个样品并非独立重复,而是同一处理单元的子样本。Hurlbert 在审查当时已发表的生态学实验后发现,约 48% 的研究存在伪重复问题。正确做法是将处理随机分配到多个独立的实验单元上。
  • 区组设计 (Blocking):当实验区域存在已知的环境梯度(如坡度、土壤肥力差异)时,应采用随机区组设计(RCBD)而非完全随机设计。将环境相似的实验单元归入同一区组,每个区组内包含所有处理水平,可以有效分离环境异质性带来的变异,提高检验效力。

11.7 R 代码示例:实验数据的记录与分析

下面以一个经典的生态学实验——氮添加对植物生物量的影响——为例,演示如何在 R 中记录实验数据、进行基本的统计检验和可视化。

11.7.1 创建实验数据

模拟一个完全随机设计的氮添加实验:3 个处理水平(对照、低氮、高氮),每组 8 个重复。

library(tibble)
library(ggplot2)

set.seed(42)

# 模拟氮添加实验数据
experiment_data <- tibble(
  plot_id   = paste0("P", sprintf("%02d", 1:24)),
  treatment = rep(c("对照", "低氮", "高氮"), each = 8),
  biomass_g = c(
    rnorm(8, mean = 45, sd = 6),   # 对照组
    rnorm(8, mean = 58, sd = 7),   # 低氮组
    rnorm(8, mean = 72, sd = 8)    # 高氮组
  )
)

# 将处理设为有序因子
experiment_data$treatment <- factor(
  experiment_data$treatment,
  levels = c("对照", "低氮", "高氮")
)

head(experiment_data)

11.7.2 描述性统计

library(dplyr)

# 按处理组计算均值和标准差
experiment_data |>
  group_by(treatment) |>
  summarise(
    n     = n(),
    mean  = round(mean(biomass_g), 1),
    sd    = round(sd(biomass_g), 1),
    .groups = "drop"
  )

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

检验不同氮添加水平对植物生物量是否有显著影响。

# 拟合 ANOVA 模型
anova_model <- aov(biomass_g ~ treatment, data = experiment_data)
summary(anova_model)
Note如何解读 ANOVA 结果?
  • F value:组间变异与组内变异的比值,越大说明处理效应越明显
  • Pr(>F):p 值,小于 0.05 表示至少有一组与其他组存在显著差异
  • ANOVA 只能告诉你”有差异”,但不能告诉你”哪两组之间有差异”,需要进一步做事后多重比较
# Tukey HSD 事后多重比较
TukeyHSD(anova_model)

11.7.4 残差诊断

ANOVA 的有效性依赖于残差满足正态性和方差齐性假设。拟合模型后应检查这些假设:

par(mar = c(4, 4, 2, 1))
plot(anova_model, which = 1)  # 残差 vs 拟合值:检查方差齐性
plot(anova_model, which = 2)  # Q-Q 图:检查残差正态性

若残差明显偏离正态分布或各组方差不齐,可考虑数据变换(如对数变换)或使用非参数检验(如 Kruskal-Wallis 检验)。

11.7.5 可视化实验结果

ggplot(experiment_data, aes(x = treatment, y = biomass_g, fill = treatment)) +
  geom_boxplot(alpha = 0.7, outlier.shape = NA) +
  geom_jitter(width = 0.15, size = 2, alpha = 0.6) +
  scale_fill_brewer(palette = "Greens") +
  labs(
    x = "氮添加处理",
    y = "地上生物量 (g)",
    title = "氮添加对植物地上生物量的影响"
  ) +
  theme_minimal() +
  theme(legend.position = "none")
Tip实验数据记录的好习惯
  • 记录处理细节:每个处理的具体施加量、频率和方式
  • 标注随机化方案:记录样地的随机分配过程,便于审稿人评估
  • 保留原始数据:分析用的数据和原始记录分开存放,确保可追溯

11.8 高级实验设计类型

11.8.1 析因设计 (Factorial Design)

析因设计同时考察两个或多个因子的效应及其交互作用。例如,研究温度和水分对植物生长的联合影响。

案例:温度×水分双因素实验

library(tidyverse)

set.seed(123)

# 模拟 2×3 析因实验:2个温度水平 × 3个水分水平
factorial_data <- expand_grid(
  temperature = c("常温", "增温"),
  water = c("干旱", "正常", "湿润"),
  replicate = 1:6
) %>%
  mutate(
    # 模拟生物量数据(有交互效应)
    biomass = case_when(
      temperature == "常温" & water == "干旱" ~ rnorm(n(), 20, 3),
      temperature == "常温" & water == "正常" ~ rnorm(n(), 35, 4),
      temperature == "常温" & water == "湿润" ~ rnorm(n(), 32, 4),
      temperature == "增温" & water == "干旱" ~ rnorm(n(), 15, 3),
      temperature == "增温" & water == "正常" ~ rnorm(n(), 45, 5),
      temperature == "增温" & water == "湿润" ~ rnorm(n(), 50, 5)
    ),
    temperature = factor(temperature, levels = c("常温", "增温")),
    water = factor(water, levels = c("干旱", "正常", "湿润"))
  )

head(factorial_data)

双因素方差分析

# 拟合双因素 ANOVA 模型(包含交互项)
factorial_model <- aov(biomass ~ temperature * water, data = factorial_data)
summary(factorial_model)
Important交互效应的含义
  • 主效应:单个因子对响应变量的平均影响
  • 交互效应:一个因子的效应依赖于另一个因子的水平
  • 如果交互效应显著(p < 0.05),说明两个因子不是简单相加,而是相互影响
# 交互效应可视化
factorial_data %>%
  group_by(temperature, water) %>%
  summarise(mean_biomass = mean(biomass), .groups = "drop") %>%
  ggplot(aes(x = water, y = mean_biomass, color = temperature, group = temperature)) +
  geom_line(linewidth = 1) +
  geom_point(size = 3) +
  labs(
    x = "水分处理",
    y = "平均生物量 (g)",
    title = "温度与水分的交互效应",
    color = "温度"
  ) +
  theme_minimal()

11.8.2 嵌套设计 (Nested Design)

嵌套设计用于处理层级结构数据,例如:样地 → 样方 → 子样方。

set.seed(456)

# 模拟嵌套实验:3个样地,每个样地4个样方,每个样方3个子样方
nested_data <- expand_grid(
  site = paste0("Site", 1:3),
  plot = 1:4,
  subplot = 1:3
) %>%
  mutate(
    plot_id = paste0(site, "_P", plot),
    # 样地效应
    site_effect = rep(rnorm(3, 0, 5), each = 12),
    # 样方效应(嵌套在样地内)
    plot_effect = rep(rnorm(12, 0, 3), each = 3),
    # 子样方测量值
    soil_carbon = 25 + site_effect + plot_effect + rnorm(n(), 0, 2)
  )

head(nested_data, 10)

嵌套方差分析

# 使用 lme4 包拟合混合效应模型
library(lme4)

# plot 嵌套在 site 内
nested_model <- lmer(soil_carbon ~ 1 + (1|site/plot_id), data = nested_data)
summary(nested_model)

11.8.3 重复测量设计 (Repeated Measures)

对同一实验单元在不同时间点重复测量,常用于时间序列实验。

set.seed(789)

# 模拟植物生长的重复测量实验
repeated_data <- expand_grid(
  plant_id = paste0("Plant", 1:10),
  treatment = rep(c("对照", "施肥"), each = 5),
  time_week = 1:8
) %>%
  mutate(
    # 生长曲线(施肥组生长更快)
    height = case_when(
      treatment == "对照" ~ 10 + 2 * time_week + rnorm(n(), 0, 1),
      treatment == "施肥" ~ 10 + 3.5 * time_week + rnorm(n(), 0, 1.5)
    )
  )

head(repeated_data, 12)

重复测量可视化

ggplot(repeated_data, aes(x = time_week, y = height, color = treatment, group = plant_id)) +
  geom_line(alpha = 0.5) +
  geom_smooth(aes(group = treatment), method = "lm", se = TRUE, linewidth = 1.5) +
  labs(
    x = "时间(周)",
    y = "株高 (cm)",
    title = "植物生长的重复测量实验",
    color = "处理"
  ) +
  theme_minimal()

重复测量ANOVA

library(nlme)

# 使用 nlme 包拟合重复测量模型
rm_model <- lme(height ~ treatment * time_week, 
                random = ~1|plant_id, 
                data = repeated_data)
summary(rm_model)

11.9 实验设计工具

11.9.1 样本量计算

在设计实验前,应估算所需的样本量以确保有足够的统计检验力。

library(pwr)

# 计算单因素 ANOVA 所需样本量
# 假设:3个处理组,效应量 f = 0.4,检验力 = 0.8,显著性水平 = 0.05
pwr.anova.test(
  k = 3,           # 组数
  f = 0.4,         # 效应量(小=0.1, 中=0.25, 大=0.4)
  sig.level = 0.05,
  power = 0.8
)
Tip效应量的选择
  • 小效应 (f = 0.1):需要大样本才能检测到
  • 中效应 (f = 0.25):常见的生态学效应
  • 大效应 (f = 0.4):明显的处理效应

11.9.2 随机化方案生成

library(agricolae)

# 生成完全随机设计的随机化方案
treatments <- c("对照", "低氮", "高氮")
design_crd <- design.crd(
  trt = treatments,
  r = 8,  # 每个处理8个重复
  seed = 2024
)

head(design_crd$book, 10)
# 生成随机区组设计的随机化方案
design_rcbd <- design.rcbd(
  trt = treatments,
  r = 4,  # 4个区组
  seed = 2024
)

head(design_rcbd$book, 12)

11.10 效应量计算

除了 p 值,还应报告效应量(Effect Size)来量化处理效应的大小。

# 计算 eta-squared(η²)
library(effectsize)

# 使用之前的氮添加实验数据
eta_squared(anova_model)
Note效应量的解读
  • η² < 0.01:微小效应
  • 0.01 ≤ η² < 0.06:小效应
  • 0.06 ≤ η² < 0.14:中等效应
  • η² ≥ 0.14:大效应

11.11 总结

实验数据采集是生态学从描述性科学转向预测性科学的基石。通过严谨的实验设计和多维度的技术手段,生态学家能够从复杂的自然噪声中剥离出核心的生物学规律。在实际研究中,实验数据往往需要与长期观测数据相结合,以实现对生态系统行为的全面理解。

11.12 课后练习

11.12.1 基础练习(必做)

练习 1:识别伪重复

某同学在一块施氮样地中随机取了 10 个土壤样品测定微生物量碳,然后用这 10 个数据点与对照样地的 10 个样品做 t 检验。请指出这个设计中的问题,并提出改进方案。

提示: - 这个设计中有几个真正的独立重复? - 什么是实验单元?什么是观测单元? - 如何修改设计才能避免伪重复?

练习 2:随机区组设计

修改本章的氮添加实验代码,将完全随机设计改为随机区组设计(假设有 4 个区组,每个区组包含对照、低氮、高氮各 1 个样方),重新进行 ANOVA 分析并比较结果。

# 你的代码:
set.seed(2024)

# 创建随机区组设计数据
rcbd_data <- expand_grid(
  block = paste0("Block", 1:4),
  treatment = c("对照", "低氮", "高氮")
) %>%
  mutate(
    # 添加区组效应和处理效应
    biomass = ___
  )

# 拟合区组设计 ANOVA
rcbd_model <- aov(___ ~ ___ + ___, data = rcbd_data)
summary(rcbd_model)

练习 3:残差诊断

对本章 ANOVA 模型的残差诊断图进行解读:残差是否满足正态性和方差齐性假设?如果不满足,你会采取什么措施?

检查清单: - [ ] 残差 vs 拟合值图:是否呈现喇叭形? - [ ] Q-Q 图:点是否沿对角线分布? - [ ] 如果假设不满足,考虑:数据变换、非参数检验、广义线性模型

11.12.2 进阶练习(选做)

练习 4:析因实验设计与分析

设计一个 2×2 析因实验,研究光照(全光、遮阴)和施肥(不施肥、施肥)对幼苗生长的影响。每个处理组合 6 个重复。

# 你的代码:
set.seed(2024)

factorial_exp <- expand_grid(
  light = c("全光", "遮阴"),
  fertilizer = c("不施肥", "施肥"),
  replicate = 1:6
) %>%
  mutate(
    # 模拟生长数据(考虑交互效应)
    growth = case_when(
      light == "全光" & fertilizer == "不施肥" ~ rnorm(n(), ___, ___),
      light == "全光" & fertilizer == "施肥" ~ rnorm(n(), ___, ___),
      light == "遮阴" & fertilizer == "不施肥" ~ rnorm(n(), ___, ___),
      light == "遮阴" & fertilizer == "施肥" ~ rnorm(n(), ___, ___)
    )
  )

# 双因素 ANOVA
factorial_aov <- aov(growth ~ light * fertilizer, data = factorial_exp)
summary(factorial_aov)

# 可视化交互效应
# 你的代码:

思考题: - 如果交互效应显著,说明什么? - 如何解读主效应和交互效应的关系?

练习 5:样本量计算

你计划进行一个单因素实验,有 4 个处理组。根据预实验,你估计效应量为中等(f = 0.25)。请计算:

  1. 要达到 80% 的检验力(α = 0.05),每组需要多少个重复?
  2. 如果只能做每组 5 个重复,检验力会降到多少?
library(pwr)

# 计算所需样本量
pwr.anova.test(
  k = ___,
  f = ___,
  sig.level = ___,
  power = ___
)

# 计算实际检验力
pwr.anova.test(
  k = ___,
  n = ___,  # 每组样本量
  f = ___,
  sig.level = ___
)

练习 6:混合效应模型

使用本章的嵌套设计数据(nested_data),拟合混合效应模型,并回答:

  1. 样地间变异和样方间变异各占总变异的多少?
  2. 如果忽略嵌套结构,直接用 aov() 分析,会有什么问题?
library(lme4)

# 拟合混合效应模型
mixed_model <- lmer(___ ~ 1 + (1|___), data = nested_data)

# 提取方差成分
VarCorr(mixed_model)

# 计算组内相关系数(ICC)
icc <- ___
cat("组内相关系数:", round(icc, 3), "\n")

11.12.3 挑战练习

练习 7:实验设计综合案例

你是一名生态学研究生,导师要求你设计一个实验,研究氮沉降和降雨变化对草地生态系统的影响。实验条件:

  • 有 3 块草地样地可用(环境条件略有差异)
  • 氮沉降:3 个水平(对照、低氮、高氮)
  • 降雨:2 个水平(正常、减少 30%)
  • 预算限制:最多 36 个实验单元

任务

  1. 选择合适的实验设计类型(完全随机、随机区组、裂区等)
  2. 说明你的设计如何避免伪重复
  3. 画出实验布局图
  4. 用 R 生成随机化方案
  5. 估算所需样本量(假设中等效应量)

评分标准

项目 分值 说明
设计合理性 30% 设计类型选择恰当,考虑了实际约束
避免伪重复 25% 正确识别实验单元和观测单元
随机化方案 20% 代码正确,方案可执行
样本量计算 15% 计算合理,有统计依据
文档完整性 10% 布局图清晰,说明详细

11.12.4 参考答案(练习 2 示例)

set.seed(2024)

# 创建随机区组设计数据
rcbd_data <- expand_grid(
  block = paste0("Block", 1:4),
  treatment = c("对照", "低氮", "高氮")
) %>%
  mutate(
    # 区组效应(模拟环境梯度)
    block_effect = case_when(
      block == "Block1" ~ -5,
      block == "Block2" ~ 0,
      block == "Block3" ~ 3,
      block == "Block4" ~ 2
    ),
    # 处理效应 + 区组效应 + 随机误差
    biomass = case_when(
      treatment == "对照" ~ 45 + block_effect + rnorm(n(), 0, 4),
      treatment == "低氮" ~ 58 + block_effect + rnorm(n(), 0, 4),
      treatment == "高氮" ~ 72 + block_effect + rnorm(n(), 0, 4)
    ),
    treatment = factor(treatment, levels = c("对照", "低氮", "高氮"))
  )

# 拟合区组设计 ANOVA(区组作为区组因子)
rcbd_model <- aov(biomass ~ block + treatment, data = rcbd_data)
summary(rcbd_model)

# 与完全随机设计比较
crd_model <- aov(biomass ~ treatment, data = rcbd_data)
summary(crd_model)

cat("\n区组设计 vs 完全随机设计:\n")
cat("区组设计残差标准误:", sigma(rcbd_model), "\n")
cat("完全随机设计残差标准误:", sigma(crd_model), "\n")
cat("区组设计提高了", round((1 - sigma(rcbd_model)/sigma(crd_model)) * 100, 1), "% 的精度\n")

11.12.5 常见问题解答

Q1: 什么时候用完全随机设计,什么时候用区组设计?

A: - 完全随机设计:实验单元环境条件均一,无明显梯度 - 区组设计:存在已知的环境梯度(如坡度、土壤类型),将相似单元归入同一区组

Q2: 如何判断是否存在伪重复?

A: 问自己三个问题: 1. 处理是施加在哪个层次上的?(样地、样方、个体) 2. 什么是真正的独立重复? 3. 如果重新做实验,哪些单元会得到不同的处理?

Q3: 交互效应显著时,还需要看主效应吗?

A: 交互效应显著时,主效应的解释变得复杂。应该: 1. 先报告交互效应 2. 用简单效应分析(Simple Effects)分别检验每个因子在另一因子不同水平下的效应 3. 用交互图直观展示

Q4: 混合效应模型什么时候用?

A: 当数据有层级结构(嵌套或交叉)或重复测量时: - 嵌套设计:样地 → 样方 → 子样方 - 重复测量:同一个体在不同时间点测量 - 随机区组:区组作为随机效应

11.13 实验设计检查清单

在开始实验前,使用以下检查清单确保设计合理:

11.13.1 设计阶段

11.13.2 执行阶段

11.13.3 分析阶段

11.14 实验设计常见错误案例

11.14.1 案例 1:混淆实验单元和观测单元

错误设计: - 在 1 个增温样地和 1 个对照样地中,各取 10 个土壤样品测定微生物量 - 用这 20 个数据点做 t 检验(n=10 vs n=10)

问题: - 真正的实验单元只有 2 个(1 个增温样地 + 1 个对照样地) - 10 个土壤样品是子样本(pseudoreplicates),不是独立重复 - 这样的 t 检验会严重高估显著性

正确设计: - 至少需要 3-4 个增温样地和 3-4 个对照样地 - 每个样地内可以取多个子样本,但分析时应先计算样地均值 - 用样地均值做统计检验(n=3-4 vs n=3-4)

11.14.2 案例 2:忽略时间自相关

错误设计: - 对同一批植物在 8 个时间点测量株高 - 用普通 ANOVA 分析,将 8 个时间点当作独立观测

问题: - 同一植物在不同时间的测量值不独立(时间自相关) - 违反了 ANOVA 的独立性假设 - 会低估标准误,夸大显著性

正确设计: - 使用重复测量 ANOVA 或混合效应模型 - 将植物个体作为随机效应 - 考虑时间点之间的相关结构

11.14.3 案例 3:交互效应的错误解读

错误解读: - 双因素 ANOVA 显示:温度主效应显著(p<0.001),水分主效应不显著(p=0.12),交互效应显著(p=0.03) - 结论:“温度有显著影响,水分没有影响”

问题: - 交互效应显著意味着水分的效应依赖于温度水平 - 不能简单说”水分没有影响” - 应该分别检验水分在不同温度下的简单效应

正确解读: - “温度和水分存在显著交互作用” - “水分的效应在不同温度下不同:在高温下水分效应显著,在低温下不显著” - 用交互图直观展示

11.15 实验数据管理最佳实践

11.15.1 数据记录模板

# 创建标准化的实验数据记录模板
library(tibble)

experiment_template <- tibble(
  date = as.Date(character()),           # 测量日期
  plot_id = character(),                 # 样地编号
  treatment = character(),               # 处理类型
  block = character(),                   # 区组(如适用)
  replicate = integer(),                 # 重复编号
  response_variable = numeric(),         # 响应变量
  notes = character()                    # 备注(异常情况)
)

# 保存为 CSV 模板
write.csv(experiment_template, "experiment_data_template.csv", row.names = FALSE)

11.15.2 数据验证脚本

# 检查实验数据的完整性和合理性
validate_experiment_data <- function(data) {
  
  # 检查缺失值
  missing_check <- data %>%
    summarise(across(everything(), ~sum(is.na(.)))) %>%
    pivot_longer(everything(), names_to = "variable", values_to = "n_missing") %>%
    filter(n_missing > 0)
  
  if (nrow(missing_check) > 0) {
    cat("警告:发现缺失值\n")
    print(missing_check)
  }
  
  # 检查重复是否平衡
  balance_check <- data %>%
    count(treatment) %>%
    mutate(balanced = n == max(n))
  
  if (!all(balance_check$balanced)) {
    cat("警告:处理组重复数不平衡\n")
    print(balance_check)
  }
  
  # 检查异常值(3倍标准差)
  outlier_check <- data %>%
    group_by(treatment) %>%
    mutate(
      z_score = (response_variable - mean(response_variable, na.rm = TRUE)) / 
                sd(response_variable, na.rm = TRUE)
    ) %>%
    filter(abs(z_score) > 3)
  
  if (nrow(outlier_check) > 0) {
    cat("警告:发现潜在异常值\n")
    print(outlier_check %>% select(plot_id, treatment, response_variable, z_score))
  }
  
  cat("\n数据验证完成\n")
}

11.16 实验设计软件工具

11.16.1 R 包推荐

包名 功能 典型用途
agricolae 实验设计和分析 生成随机化方案、多重比较
pwr 样本量计算 估算所需样本量和检验力
lme4 混合效应模型 嵌套设计、重复测量
nlme 非线性混合模型 复杂相关结构
emmeans 边际均值估计 事后比较、简单效应分析
effectsize 效应量计算 η², Cohen’s d, 置信区间
car 方差分析扩展 Type II/III SS, Levene 检验

11.16.2 在线工具

  • **G*Power**:样本量和检验力计算(图形界面)
  • ANOVA Calculator:在线方差分析工具
  • Randomization.com:在线随机化方案生成器

11.17 延伸阅读

11.17.1 必读经典

  1. Hurlbert, S. H. (1984). Pseudoreplication and the design of ecological field experiments. Ecological Monographs, 54(2), 187-211. DOI: 10.2307/1942661
    • 伪重复的经典文献,改变了生态学实验设计的范式
    • 必读指数:⭐⭐⭐⭐⭐
  2. Quinn, G. P., & Keough, M. J. (2002). Experimental Design and Data Analysis for Biologists. Cambridge University Press.
    • 生态学实验设计的权威教材,案例丰富
    • 涵盖从基础到高级的所有设计类型
  3. Underwood, A. J. (1997). Experiments in Ecology: Their Logical Design and Interpretation Using Analysis of Variance. Cambridge University Press.
    • 强调逻辑推理和因果推断
    • 特别适合野外生态学实验

11.17.2 统计方法

  1. Zuur, A. F., Ieno, E. N., Walker, N., Saveliev, A. A., & Smith, G. M. (2009). Mixed Effects Models and Extensions in Ecology with R. Springer.
    • 混合效应模型在生态学中的应用
    • 包含大量实际案例和 R 代码
  2. Crawley, M. J. (2012). The R Book (2nd ed.). Wiley.
    • R 语言统计分析的百科全书
    • 实验设计章节详尽
  3. Gotelli, N. J., & Ellison, A. M. (2013). A Primer of Ecological Statistics (2nd ed.). Sinauer Associates.
    • 生态统计学入门,适合初学者
    • 强调概念理解而非数学推导

11.17.3 高级主题

  1. Gelman, A., & Hill, J. (2006). Data Analysis Using Regression and Multilevel/Hierarchical Models. Cambridge University Press.
    • 层级模型的权威著作
    • 贝叶斯方法在实验设计中的应用
  2. Bolker, B. M. (2008). Ecological Models and Data in R. Princeton University Press.
    • 生态学建模与数据分析
    • 包含实验设计的统计建模视角

11.17.4 在线资源

  • ANOVA 教程:https://www.statmethods.net/stats/anova.html
  • Mixed Models FAQ:https://bbolker.github.io/mixedmodels-misc/glmmFAQ.html
  • Experimental Design 课程:https://www.coursera.org/learn/experimental-design-basics