如何使用 R 中的回归从数据集中获取知识

机器算法验证 r 回归 造型
2022-04-05 12:03:35

我有一些数据:结果是满意度,有四个预测变量,三个连续(年龄、体重、身高)和一个因素,高中毕业与否。

在 R 中,我已经上传了数据集,并设置为年龄,为体重,为因子,为身高。X1X2X3X4

我想知道是否有证据表明高中毕业对满意度有影响。

我知道我不能简单地看lm(y~x3),因为我需要考虑所有其他可能性。那么我该如何考虑所有这些呢?我必须检查多少个模型?对此的一般方法是什么?

另外,我是否需要考虑任何和所有可能的交互?

Call:
lm(formula = y ~ x1 + x2 + x3 + x4)

Residuals:
    Min      1Q  Median      3Q     Max 
-18.506  -5.096   1.306   4.738  28.722 

Coefficients:
            Estimate     Std. Error      t value       Pr(>|t|)    
(Intercept) 140.1689      8.3191          16.849      2.77e-13 

x1           -1.1428     0.1904          -6.002       7.22e-06 

x2           -0.4699     0.1866           -2.518     0.0204 

x3yes         2.2259     4.1402            0.538     0.5968    

x4            1.2673     1.4922     0.849      0.4058    


Residual standard error: 9.921 on 20 degrees of freedom
Multiple R-squared:  0.8183,    Adjusted R-squared:  0.7819 
F-statistic: 22.51 on 4 and 20 DF,  p-value: 3.611e-07
2个回答

要做的最重要的事情是让您检查模型是否有意义。您已将线性模型拟合到三个连续预测变量,您需要确保这样做有意义您应该查看、 和反对的散点图age,并在需要时调整这些预测变量的拟合。heightweighty

假设线性拟合这些预测变量是合理的,用所有四个预测变量拟合完整模型是明智之举。

您只有25数据点。如果您在所有模型的空间中进行长时间搜索(添加和删除变量),则误报的风险非常高。所以,我认为没有太多需要向后选择变量;如果您希望这样做,请确保使用交叉验证以确保这样做可以提高模型对未见数据的拟合度。

同样的事情也适用于搜索交互,你的数据很少,而且你冒着很大的误报风险。

如果您希望使用估计的置信区间进行推断,您还应该检查残差与模型拟合值的关系图,并确保您没有看到任何模式。您正在查看它们是否看起来像是从具有恒定方差的正态分布中得出的。如果这看起来与您的数据相当一致,那么您可以graduation使用线性模型对参数进行推断

Coefficients:
            Estimate     Std. Error      t value       Pr(>|t|)    
(Intercept) 140.1689     8.3191          16.849        2.77e-13     
x1           -1.1428     0.1904          -6.002        7.22e-06     
x2           -0.4699     0.1866          -2.518        0.0204     
x3yes         2.2259     4.1402           0.538        0.5968        
x4            1.2673     1.4922           0.849        0.4058    

x3变量衡量毕业,其参数完全在其估计的误差范围内。因此,鉴于以上所有内容均已验证,您用于训练模型的数据与无法与噪声区分的效果并不矛盾。graduation

谢谢,我们真的能够仅通过拟合完整模型来判断这一点吗?

只要满足所有注意事项,我确实认为解决此问题的最佳方法是拟合完整模型,并从中做出推断。就像我说的那样,您从进行变量选择的模型中得出的任何推论都可能是偶然发生的。

另一种思考方式是,如果您通过变量选择算法,模型中报告的标准误差不再正确,它们实际上比报告的要大得多。要在选择/拟合程序下估计参数估计的真实标准误差,您需要使用嵌套交叉验证或 bootstrap + 交叉验证。这会使您的数据变得非常非常稀薄,并且会产生很多差异(您正在做出很多决定,每个决定都有可能出错)。您的标准错误将是巨大的。

因为预测变量之间可能存在依赖关系,所以当 X2 被忽略时,X1 看起来很重要,但由于 X1 和 X2 高度依赖,当 X2 包含在模型中时,X1 可能看起来不重要。有四个预测变量,有 2^4 -1 个可能的非空模型。由于这只有 15 个,因此查看所有子集并不难。如果变量的数量要大得多,则逐步方法应该就足够了。如果可能,选择一个所有系数都显着的模型,如果您有 2 个高度相关的变量,请确保排除其中一个。