第9章 模型的比较、验证与选择

学习目标

  • 掌握评估单个模型质量的指标
  • 理解模型间比较的方法
  • 学会进行参数恢复与模型恢复验证
  • 在多个竞争性模型中做出科学选择

关键概念

  • 模型拟合度:模型预测与真实数据的吻合程度
  • 复杂度惩罚:考虑参数数量的模型优劣指标
  • 模型间比较:在多个模型中选择最优
  • 参数恢复:验证参数估计的可靠性
  • 模型恢复:验证模型本身是否能被有效区分

正文

为什么要做模型比较与选择?

对于同一种现象,存在多种不同的解释(理论模型);不同的解释有不同的数学表达(计算模型)。不同的模型都可以解释这个现象,那么我们怎么知道哪种模型能够更好地解释现象?

  • 地心说与日心说都可以解释太阳东升西落的现象。为什么日心说优于地心说?
  • 资本主义与共产主义都是建设社会的方法。为什么我们选择共产主义?

理论模型可以被数学表达为计算模型,模型比较与选择就是用数学的方法来量化一个模型的质量,用一个指标来精确的表示模型有多好;基于这个指标,就可以知道哪个模型更好

评估单个模型的质量

1. 原始拟合度指标

这类指标直接衡量模型预测与真实数据的接近程度。

R² (R-squared)

定义:模型解释的方差占总方差的比例

\[R^2 = 1 - \frac{SS_{res}}{SS_{tot}} = 1 - \frac{\sum(y_i - \hat{y}_i)^2}{\sum(y_i - \bar{y})^2}\]

解读: - \(R^2 = 0\) :模型没有解释任何方差(就是预测平均值) - \(R^2 = 1\) :完美拟合 - 心理学研究中,\(R^2 > 0.3\) 已经不错了

适用场景:连续因变量(反应时、评分等)

对数似然 (Log-Likelihood)

定义:在给定参数下,观察到该数据的对数概率

\[LL = \sum_{i=1}^{N} \log P(y_i | x_i, \theta)\]

特点: - 值更负意味着拟合更差 - 依赖于数据量,不同大小的数据集直接比较没意义

适用场景:任何模型,特别是离散输出

均方根误差 (RMSE / MSE)

定义:预测值与真实值差异的平均

\[RMSE = \sqrt{\frac{1}{N}\sum_{i=1}^{N}(y_i - \hat{y}_i)^2}\]

解读:单位与因变量相同,更直观

准确率 (Accuracy) / 分类错误率

定义:正确预测的比例

\[Accuracy = \frac{\text{正确预测数}}{\text{总预测数}}\]

适用场景:离散选择任务

缺点:不考虑不平衡数据(如98%的数据是A选择)

2. 复杂度惩罚指标

在拟合度基础上,还要考虑模型的复杂度。否则,参数越多的模型总会拟合得最好!

AIC (Akaike Information Criterion)

公式: $\(AIC = 2k - 2\ln(L)\)$

其中 \(k\) 是参数数量,\(L\) 是最大似然值

特点: - AIC越小,模型越优 - 倾向于选择较为复杂的模型(在贝叶斯因子中较温和)

用途:模型比较时,优先考虑 \(\Delta AIC < 2\) 的模型

BIC (Bayesian Information Criterion)

公式: $\(BIC = k\ln(N) - 2\ln(L)\)$

其中 \(N\) 是数据点数量

特点: - 对模型复杂度的惩罚更严厉 - 在大样本情况下倾向于选择简单模型

对比: - AIC:样本量有限时,倾向选择稍复杂的模型 - BIC:样本量足够时,坚持"奥卡姆剃须刀"原则(越简单越好)

wAIC、LOO-CV (信息论方法)

原理:不仅考虑训练数据的拟合度,还考虑泛化能力(在新数据上的表现)

方法: - 交叉验证:用一部分数据拟合,用另一部分验证 - LOO-CV (Leave-One-Out Cross-Validation):每次留出一个数据点进行验证 - k-fold CV:分成k份,轮流用其中k-1份拟合,1份验证

优点:直接评估模型的泛化能力

模型间的比较

1. 配对比较(两个模型)

情景:你有模型A和模型B,想知道哪个更好

方法1:直接比较AIC/BIC

计算两个模型的 \(\Delta AIC = AIC_A - AIC_B\)

判断标准(Burnham & Anderson, 2004): - \(\Delta AIC < 2\):两个模型不相上下,需要其他证据 - \(2 < \Delta AIC < 7\):有明确但不强的证据支持较优模型 - \(\Delta AIC > 7\):有强证据支持较优模型

方法2:贝叶斯因子

思想:比较两个模型给数据的"证据"

\[BF = \frac{P(data|M_A)}{P(data|M_B)}\]

判断标准: - \(BF > 3\):有轻度证据支持A - \(BF > 10\):有强证据支持A - \(BF > 100\):有很强证据支持A

对比: - AIC/BIC:简单快速,但不考虑先验 - 贝叶斯因子:更全面,但计算更复杂

2. 模型族比较(多个模型)

情景:有5个竞争性模型,想找出最优的

方法1:排序法
  1. 计算所有模型的AIC/BIC
  2. 按AIC从小到大排序
  3. 计算每个模型相对最优模型的 \(\Delta AIC_i\)
  4. 计算 "Akaike权重":\(w_i = \frac{\exp(-\Delta AIC_i/2)}{\sum_j \exp(-\Delta AIC_j/2)}\)

解读\(w_i\) 表示"模型i是真实模型"的相对概率

例子

模型    AIC   ΔAIC    权重
M1      500   0      0.45    ← 最优
M2      502   2      0.17
M3      504   4      0.06
M4      510   10     0.00
M5      512   12     0.00

建议:可以对模型1和2进行正式的比较,其他模型可以排除

方法2:多模型推理

结合所有模型的预测,而不是只选一个"最优"模型

\[\hat{y} = \sum_i w_i \hat{y}_i\]

优点:避免"模型选择中的不确定性"被忽略

3. 似然比检验(嵌套模型)

似然比检验(Likelihood Ratio Test, LRT)适用于嵌套模型

  • 简单模型 \(M_0\) 是复杂模型 \(M_1\) 的特例
  • 例如:\(M_1\) 有参数 \((\alpha^+, \alpha^-)\)\(M_0\) 约束为 \(\alpha^+=\alpha^-\)

检验统计量

\[\Lambda = -2\log\frac{L_0}{L_1} = 2(\log L_1 - \log L_0)\]

其中 \(L_0\)\(L_1\) 分别是两个模型的最大似然值。

在常见正则条件下,\(\Lambda\) 近似服从卡方分布:

\[\Lambda \sim \chi^2(df)\]

自由度 \(df\) 等于两个模型参数个数之差。

解释逻辑: 1. 若 p 值很小(如 \(p<0.05\)),拒绝 \(M_0\),说明增加参数显著提升拟合 2. 若 p 值不显著,优先更简单的 \(M_0\)

小例子

  • \(M_0\)(2参数)最大对数似然:\(\log L_0=-260\)
  • \(M_1\)(3参数)最大对数似然:\(\log L_1=-252\)

则:

\[\Lambda = 2[(-252)-(-260)] = 16, \quad df=1\]

查卡方分布可知 p 很小,说明额外参数带来显著改进。

适用前提与限制: 1. 仅用于嵌套模型;非嵌套模型不能直接用 LRT 2. 样本太小或参数在边界上时,卡方近似可能不准 3. LRT 只回答“是否显著改进”,不直接评价泛化能力

与 AIC/BIC 的关系: - LRT:关注“增加参数是否显著提升拟合”(显著性视角) - AIC/BIC:关注“拟合-复杂度平衡”(预测/信息准则视角)

实际研究中常见做法是:对嵌套模型先做 LRT,再结合 AIC/BIC 判断是否值得保留复杂模型。

模型的验证

模型比较解决了存在多个模型时应该选择哪个模型的问题。但是模型比较是模型之间相对优劣;我们如何知道模型本身的性能到底怎么样?

模型A说1+1=5,模型B说1+1=10。根据模型比较,我们可以得知模型A比模型B更好。实际上,两个模型都不够好:1+1应该等于2。

在认知模型里,完全有可能存在一个模型比其他模型都好,但还是没有真正捕捉到认知过程的情况。此时,需要进行模型验证,确保模型本身是有效、可靠的。

1. 参数恢复 (Parameter Recovery)

问题:我拟合参数能否准确恢复出数据生成过程中的真实参数?

步骤: 1. 用设定的"真实"参数值(如 α=0.5, β=2.0,等等)生成模拟数据 2. 对模拟数据进行参数拟合,得到估计参数 3. 比较估计参数与真实参数的相关性或偏差

评估标准: - 相关系数:\(r_{est, true}\) 应该接近1 - 偏差:\(|估计值 - 真实值|\) 应该小 - 平均绝对百分比误差 (MAPE)

例子

模拟数据条件:α=0.5, β=2.0
拟合后:α_est=0.48, β_est=1.95
► 恢复很好

模拟数据条件:α=0.5, β=2.0
拟合后:α_est=0.25, β_est=3.5
► 恢复很差,可能有识别性问题

参数恢复失败的原因

  1. 参数不可恢复性 (Non-identifiability)
  2. 不同的参数组合可以生成相同的数据
  3. 例:在某些情况下,增加噪声参数和降低学习率的效果是一样的
  4. 解决方案:减少参数、增加数据、正则化

  5. 数据不够

  6. 参数太多 → 样本量太小
  7. 解决方案:增加试次数量

  8. 优化不充分

  9. 陷入局部最优
  10. 解决方案:多次运行优化,检查收敛

2. 模型恢复 (Model Recovery)

问题:如果真实数据是由模型A生成的,我的拟合能否准确识别出应该用模型A而不是其他模型?

步骤: 1. 用模型A的"真实"参数生成模拟数据 2. 用模型A、B、C等分别拟合这个数据 3. 看模型A是否有最好的拟合(AIC最低)

评估标准:混淆矩阵

          拟合结果
         A    B    C
真实 A  90%  8%   2%
数据 B  10%  85%  5%
     C  5%   8%   87%

对角线应该接近100%,off-diagonal应该接近0%

模型恢复失败的原因: - 两个模型在数据上差异不大 - 需要更多或不同类型的数据来区分它们

实践建议

选择模型的决策树

有多个竞争模型?
│
├─YES→ 有足够的数据(N > 100)?
│      │
│      ├─YES→ 计算AIC/BIC,做模型比较
│      │
│      └─NO → 增加数据或减少参数
│
└─NO → 进行参数恢复验证
       │
       ├─成功 → 该模型有效
       │
       └─失败 → 检查参数可恢复性

报告标准

发表论文时,应该报告:

  1. 模型描述:清楚地数学化表达模型
  2. 参数拟合:说明使用了哪些算法、初值缘何选择
  3. 拟合结果:报告主要参数的均值、标准差
  4. 拟合度:R²、AIC、LL等
  5. 模型比较:如果有多个模型,说明为什么选择最优的
  6. 验证:参数恢复或模型恢复的结果

小结

  1. 拟合度评估:拟合好坏 + 参数复杂度 = 综合评分
  2. 模型比较:AIC、BIC、贝叶斯因子协同使用
  3. 验证很关键:参数恢复和模型恢复确保模型的有效性
  4. 没有完美模型:所有模型都是近似,关键是透明地报告其局限性

练习与思考

  1. 用简单的模拟数据,练习进行参数恢复。看看在什么样的条件下参数恢复会失败。
  2. 找一篇心理学论文,看看作者是如何比较不同模型的。他们使用了什么指标?
  3. 思考你自己的研究:如果你要建立竞争性模型,应该选择什么样的模型来互相比较?