使用哪个数据集来查找预测变量和响应变量之间的相关性?测试数据集?训练数据集?还是整个数据集?

数据挖掘 机器学习 r 线性回归 相关性
2022-03-12 15:50:43

我有一个包含 4 个预测变量 X1、X2、X3、X4 和一个响应变量 Y 的数据集。我被要求检查这些变量之间的相关性,看看它们是如何相关的,然后使用线性模型来拟合它们。

没有拆分训练集:给出测试集。我有一个包含 10000 个样本的数据集。我计划以 80:20 的比例分割这个数据集,分别用于训练和测试。

现在我怀疑是否应该在拆分数据后找到相关性,还是检查与整个数据集的相关性更好?哪个是标准的做事方式?

PS我将使用R编程来做同样的事情。

2个回答

这取决于您的研究问题。你想做出预测吗?- 然后您需要将数据集拆分为training样本test

但是,如果您更有兴趣回答以下问题:X1、X2、X3 和 X4 分别对 Y 有什么影响?然后你对估计感兴趣。为此,您无需拆分样本,但必须针对基础模型假设(例如异方差性、残差的自相关等)测试您的数据集以获得无偏/准确的估计。

对于 OLS(线性回归),这些模型假设遵循Gauss-Markov-Theorem

大多数模型假设的统计测试已经在 R 中实现:

  • 自相关检验 - Breusch-Godfrey - bgtest
  • 异方差检验 - White 检验 - het.test
  • 正态性检验 - Jarque Bera 检验 - jarque.bera.test

然而,即使是测试也会对您的数据做出一些假设——但这些测试是最常见的。

更新 - 澄清示例

根据你的评论。想象一下这个现实生活中的问题。您想建立一个模型,使用年龄、血压、体重、胆固醇值等变量来预测癌症 (y) 的几率。 (X1, X2, X3, X4)

要评估变量的性质及其关系,您需要进行描述性分析(均值、方差等)+ 相关性分析。

我们来看看下面的数据。(黄色记录将是您的测试样本 - 您在现实生活中没有的数据,因为这些患者还没有看过医生)。

如您所见,均值和方差可能已经有很大差异,具体取决于您是否在计算中包含测试样本。

数据集+描述性分析

现在我们来到相关部分 - or 之间的关系independent variables也称为predictors

相关分析

我强调了体重和胆固醇之间的关系。如果没有测试样本,体重和胆固醇似乎不相关或只有轻微的相关。如果我们添加测试数据,结果是相关性变为负数

问题:如果变量之间的相关性会影响您variable selection对模型的选择,那么将测试样本包含在相关性分析中是否有意义?特别是,知道这些数据在现实生活中还不可用。

记住模型估计:如果你建立了一个多元回归模型meanvariance并且covariance被用来找到最好的参数来估计你的dependent variable(癌症)。因此,已经trained包含所有可用数据的模型可能会做出更好的预测,因为它已经拥有seen应该预测的数据。

概括

每当您计划使用模型进行预测时,您都应该尽可能接近现实生活中的假设。因此,您将数据拆分为训练数据 - 测试数据。您使用训练数据来执行所有测试和检查,并且在做出预测之前ònly您不会触及这些数据。test set

我相信您想评估变量之间的关联,因此最好在拆分之前对完整数据集执行相关性。此外,这将有助于选择特征变量以防止数据泄漏。https://towardsdatascience.com/preventing-data-leakage-in-your-machine-learning-model-9ae54b3cd1fb