计算弹性网络的R2R2

机器算法验证 r平方 模型评估 弹性网
2022-04-01 12:56:59

我正在尝试使用弹性网(Lassoalpha 为 0.5 的 Matlab 函数)进行变量选择。我总共有 75 个预测变量(有些是相互关联的,因此使用弹性网而不是套索),我想得到其中的一个子集,它们是我结果的良好预测变量。

所以我的问题是:我如何计算像这样的东西来显示我的结果有多少是由这些选定的变量解释的?R2

  1. 如果我在多元线性回归模型中使用选定的变量,是否有效,因为我的变量是相关的?R2

  2. 我可以计算交叉验证的(使用留一法)以获得更准确的吗?R2R2

  3. 之外,还有其他方法可以让我的变量选择方法预测得很好吗?R2

1个回答

只需使用常规,即拟合值与实际值之间的平方相关。无论模型是通过 OLS 拟合还是通过惩罚 OLS(例如弹性网)拟合,它仍然会反映解释的方差比例。R2

但是请注意,如果在用于模型构建的相同数据(例如变量选择)上评估模型,则在模型选择之后应用的模型诊断和性能测量(例如 )可能(并且将会)过于乐观.R2

  1. 除了上述警告之外,相关变量对来说不是问题。R2
  2. 折交叉验证中的遗漏折叠基于预测准确度,那么它不是一个非常有用的度量,因为忽略了预测偏差并且只考虑了预测方差。但我不确定我理解你所说的交叉验证是什么意思。KR2R2R2
  3. 将您的数据拆分为训练、验证和测试子集。在训练数据上训练您的模型,并使用验证数据来选择性能最佳的模型。根据测试+验证数据重新估计您选择的模型。然后评估重新估计模型在测试数据上的性能。使用均方误差而不是,因为可以正确解释预测方差之外的任何预测偏差。R2