【发布时间】:2016-09-30 02:29:08
【问题描述】:
我一直在自学 Andy Field 的 Discovering Statistics Using R 并遇到了这段话:
数据拆分:这种方法涉及随机拆分数据 集,计算两半数据的回归方程和 然后比较生成的模型。使用逐步方法时, 交叉验证是个好主意;你应该逐步运行 对大约 80% 的案例的随机选择进行回归。 然后 将此模型强制用于剩余 20% 的数据。通过比较值 在两个样本中的 R2 和 b 值中,您可以判断出 原始模型推广(参见 Tabachnick & Fidell, 2007,了解更多信息) 详细)。
好的,我了解对我的数据进行子集化(使用 sample()),并且我知道如何拟合线性模型(using lm()),但是这条线
“然后在剩下的 20% 的数据上强制使用这个模型”
让我困惑。
这本书再也没有提到过这种技巧。 R 中是否有一些功能允许您将模型强制到数据上并使用该强制模型计算 R^2 和 b-values?也许您输入截距和斜率系数并输出类似summary(lm) 的某些函数?
还是我不明白这段话想说什么?
【问题讨论】:
-
看看
predict()函数-?predict。 -
我相信“强制”只是指“使用”。基本上,因为他们主张对原始 80% 的数据进行逐步回归(这是一个不好的建议,但我不想深入探讨),他们说的是你最终决定的任何模型——这就是你想要适应的模型剩余数据。因此,如果模型最终成为原始数据的 x1+x2+x5,则在另外 20% 上使用模型 x1+x2+x5。
-
对于交叉验证,请查看预测包中的
CV函数,这里有一些关于 cv 指标的详细信息 - robjhyndman.com/hyndsight/crossvalidation -
你能转录文本而不是添加图像吗?
标签: r linear-regression cross-validation