为何我得到的R平方值与皮尔逊相关系数结果不一致?
皮尔逊相关系数与线性回归R²值偏差的原因说明
正常情况下,双变量的皮尔逊相关系数r的平方,理论上等于这两个变量构建的带截距单变量线性回归的R²值,你目前得到的0.93的r对应的理论R²应为0.86左右,出现0.53的大幅偏差,常见原因如下:
- 两次计算使用的样本不一致
计算相关系数时你可能用了两个变量无缺失的所有样本,但是做回归时如果你的数据集包含其他带缺失值的变量,且建模工具默认启用了「删除所有含缺失值的行」的规则,最终参与回归的样本量和算相关系数的样本量存在差异,相当于用两组不同样本分别计算了两个指标,自然不存在平方对应关系。 - 两次计算的变量预处理逻辑不一致
如果你计算相关矩阵前对两个变量做了去极值、对数变换、标准化等预处理操作,但构建回归模型时直接使用了未处理的原始变量,也会导致两个指标的计算基础不一致,出现数值偏差。 - 回归模型不属于单变量线性回归
皮尔逊相关系数仅衡量两个变量的线性相关程度,如果你构建回归模型时额外加入了其他自变量,此时得到的是多变量回归的R²,和双变量皮尔逊r没有直接的平方对应关系,数值偏低属于正常情况。 - 指标计算错误
你可能误将多变量回归的调整后R²当成了普通R²,或者误将斯皮尔曼等级相关系数当成了皮尔逊相关系数;也有可能是你构建回归时强制去掉了截距项,无截距回归的R²计算逻辑和带截距模型不同,不再等于皮尔逊r的平方。 - 数据本身存在特殊分布
当数据存在高杠杆的极端值时,极端值会大幅拉高皮尔逊相关系数的计算结果,但同时也会增大回归的残差平方和,拉低R²;如果数据存在明显的分层特征,不同分层内部两个变量的相关程度极低,但跨层的分布特征拉高了整体皮尔逊r,回归拟合时无法覆盖分层差异,也会出现R²远低于r平方的情况。
内容的提问来源于stack exchange,提问作者Janet
相关产品推荐
相关产品推荐

