3. 两水平全因子筛选主溶剂与表面活性剂交互作用
为什么本例必须用 2² 全因子而不是两次单因素
单因素法只能回答“主溶剂从 4% 提到 6% 时清洗效率变多少”,它把表面活性剂固定在某个值上。如果两者存在交互作用——例如主溶剂浓度高时表面活性剂的增溶贡献被放大——单因素实验会系统性低估或高估组合效果。2² 全因子用 4 次实验覆盖 (低,低)、(低,高)、(高,低)、(高,高) 四个角点,配合重复实验即可用方差分析把主效应、交互效应与随机误差分开。
因素水平与实验矩阵
沿用前例确定的主溶剂基准 5%(质量分数),上下各取 1% 作为水平;表面活性剂基准 1.0%,上下各取 0.4%。编码变量取 −1/+1,便于回归系数直接对应效应的一半。
| 因素 | 低水平 (−1) | 高水平 (+1) | 编码 |
|---|---|---|---|
| A 主溶剂质量分数 | 4.0% | 6.0% | x₁=(A−5)/1 |
| B 表面活性剂质量分数 | 0.6% | 1.4% | x₂=(B−1.0)/0.4 |
响应 y 为清洗效率(%,按前例定义的失重法测定)。每个角点做 2 次重复,共 8 次实验,随机化运行顺序以抵消时间漂移。下表为教学示例数据(假设值,用于演示计算路径,非实测结果):
| 运行 | x₁ | x₂ | A/% | B/% | y₁ | y₂ | 均值 |
|---|---|---|---|---|---|---|---|
| 1 | −1 | −1 | 4.0 | 0.6 | 71.2 | 72.4 | 71.8 |
| 2 | +1 | −1 | 6.0 | 0.6 | 78.6 | 79.8 | 79.2 |
| 3 | −1 | +1 | 4.0 | 1.4 | 74.5 | 73.1 | 73.8 |
| 4 | +1 | +1 | 6.0 | 1.4 | 88.9 | 87.5 | 88.2 |
效应计算:交互项从四个角点的“差之差”读出
用角点均值直接算效应(效应 = 高均值 − 低均值):
- 主效应 A = (79.2+88.2)/2 − (71.8+73.8)/2 = 83.7 − 72.8 = +10.9
- 主效应 B = (73.8+88.2)/2 − (71.8+79.2)/2 = 81.0 − 75.5 = +5.5
- 交互 AB = (88.2−73.8)/2 − (79.2−71.8)/2 = 7.2 − 3.7 = +3.5
交互项 +3.5 的含义:B 从低到高带来的增益,在 A 低时只有 2.0(73.8−71.8),在 A 高时达到 9.0(88.2−79.2)。两条“B 效应线”不平行,说明存在协同。若 AB 接近 0,两条线应大致平行。
方差分析:交互项是否显著
2² 设计每个效应有 1 个自由度,重复实验提供纯误差。用角点均值与重复内偏差构造平方和(SS),总自由度 = 8−1 = 7,误差自由度 = 4(每角点 2 次重复,共 4 个角点各贡献 1 个自由度)。
# 教学示例数据(假设值)
runs = [
# (x1, x2, y1, y2)
(-1, -1, 71.2, 72.4),
(+1, -1, 78.6, 79.8),
(-1, +1, 74.5, 73.1),
(+1, +1, 88.9, 87.5),
]
n_rep = 2
grand = sum((a+b)/2 for _,_,a,b in runs) / 4 # 角点均值总平均
ss_err = sum((a-(a+b)/2)**2 + (b-(a+b)/2)**2 for _,_,a,b in runs)
def effect_ss(col): # col: 0->x1, 1->x2, 2->x1*x2
s = 0.0
for x1, x2, a, b in runs:
code = [x1, x2, x1*x2][col]
s += code * (a+b)/2
eff = s / 4 # 效应 = 对比/2^(k-1)/n_rep... 此处按角点均值
return 4 * eff**2, eff # SS = n_rep*2^k/4 * eff^2 的等价形式
ss_A, eff_A = effect_ss(0)
ss_B, eff_B = effect_ss(1)
ss_AB, eff_AB = effect_ss(2)
ms_err = ss_err / 4
for name, ss in [("A", ss_A), ("B", ss_B), ("AB", ss_AB)]:
F = (ss/1) / ms_err
print(f"{name:>2} SS={ss:7.3f} F={F:6.2f}")
print(f"误差 SS={ss_err:7.3f} MS={ms_err:6.3f} df=4")
按上表数据代入,得到 SS_A≈237.6、SS_B≈60.5、SS_AB≈24.5、SS_误差≈2.4,MS_误差≈0.6。对应 F 值约为 F_A≈396、F_B≈101、F_AB≈41。在 α=0.05、F(1,4)=7.71 的临界值下,三项均显著,其中 AB 交互显著说明不能把 A、B 的最优水平各自独立选取。
用回归模型量化并验证
编码变量下拟合 y = b₀ + b₁x₁ + b₂x₂ + b₁₂x₁x₂,其中 b = 效应/2:b₀=78.25、b₁=5.45、b₂=2.75、b₁₂=1.75。代入 (x₁,x₂)=(+1,+1) 得 78.25+5.45+2.75+1.75=88.2,与实测角点均值一致,说明模型对四个角点无残差(2² 设计饱和拟合,这也是必须做重复实验才能估计误差的原因)。
结果判读与下一步
- AB 交互为正且显著:主溶剂与表面活性剂存在协同,配方优化应沿“双高”方向搜索,而不是单独拉高某一组分。
- 主效应 A 远大于 B:主溶剂仍是主导成本与性能的杠杆,但 B 在高 A 下的边际贡献被放大,不能按低 A 条件下的数据定价。
- 四个角点均为边界点,最优可能落在实验区域之外或内部弯曲处,需补做中心点检验曲率,或进入响应面设计。
- 验证方法:在 A=6%、B=1.4% 附近取 3 个确认批次,实测均值应落在 88.2%±误差区间内;若偏离明显,检查清洗温度、时间是否在 8 次实验中保持恒定。