作者:贺旭 (中央财经大学)
连享会计量方法专题……
本文介绍交叉验证方法,然后以 kfoldclass
命令和 crossfold
为范例使读者更深入的了解该方法。
该方法在 RDD 分析中确定最优带宽时非常有用。
1 交叉验证的介绍
1.1 交叉验证的含义是什么?
交叉验证,顾名思义,就是重复的使用数据。具体来说,就是把样本数据切成 K 份,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。
1.2 交叉验证有什么作用?
第一,交叉验证可以多次的使用数据,有助于解决数据补充足的问题;
第二,交叉验证有助于防止过度拟合(模型样本内拟合的很好,样本外却很糟糕);
第三,用交叉验证来来进行模型的评价与选择。
1.3 常用的交叉验证有哪些方法?
K 折叠交叉验证 (K-fold Cross Validation)
将所有样本分割为大小相等的 K 组,每次取其中的一份为测试集,其他的为训练集,最后根据测试结果来评价模型。
例如:将数据集粗略地分为比较均等不相交的 10 份,然后取其中的 1 份进行测试,另外的 9 份进行训练,然后求得预测误差的平均值作为最终的评价。如图:
留一法 (Leave One Out)
如果 K 的值为样本的个数,也就是每次取 1 个样本作为测试集,剩下的为训练集来训练模型,最后根据测试结果来评价模型。
留 P 法 (Leave P Out)
它从完整的样本集中每次取 P 个样本作为测试集,剩下的作为训练集来训练模型,最后根据测试结果来评价模型。
连享会计量方法专题……
2. 范例:运用 crossfold
命令对线性回归模型等模型进行K折叠交叉验证
命令 crossfold
可以对线性回归模型