混合效应模型的 K 折交叉验证:如何对它们进行评分?

机器算法验证 r 交叉验证 lme4-nlme
2022-03-30 03:14:03

我正在尝试使用 k 折交叉验证来选择混合效应模型(适合该lme函数)的模型。

但是,我究竟用什么作为每次折叠的分数?大概我不只是将每个候选模型拟合到验证子集,而是根据新数据计算新系数。如果我理解正确,我应该根据使用训练数据计算的系数的模型与验证数据的匹配程度来对模型进行评分。

但是,如何在一个从一个来源获取系数并从另一个来源获取数据的人工模型上计算 AIC、BIC、logLik、adjR^2 等?有这么多人提倡交叉验证,我认为会有更多信息和代码可用于计算比较模型的分数。我不能成为第一个尝试lme在 R 中交叉验证拟合的人,但我完全看不到使用什么作为分数……其他人是怎么做到的?我在看什么?

2个回答

我经常看到在机器学习环境中使用交叉验证,在这种环境中,人们根据试图最小化的损失函数来思考。与线性模型相关的自然损失函数是均方误差(基本相同)。为测试数据计算这个非常简单。R2

您还可以使用其他损失函数(平均绝对误差、秩相关等)。但是,由于线性模型是通过最小化来学习的,因此在这种情况下,建议尝试使用不同的模型来最大化您选择的任何损失函数(例如,平均绝对误差的分位数回归)。R2

交叉验证的目标是估计您的模型在新数据上的表现。因此,您是正确的,因为您将模型拟合到数据的子集(折叠)。然后,您将使用测试集 (fold ) 使用您刚刚构建的模型进行预测。k1k

您现在将获得折叠 k(您的测试集)的真实值和预测值,这通常是您计算不同性能度量所需的全部。重复次并取平均值以获得模型的平均性能。An Introduction to Statistical Learning第 5 章很好地概述了 k-fold 交叉验证。k

编辑:如果担心您需要训练和测试集中每个组/队列中的人,那么您可以对每个组进行分层抽样,这样您最终在测试和测试中都有每个队列的成员火车套。