评价最小二乘法回归模型的优劣用什么方法?_解决多重共线性之岭回归分析

本文主要是介绍评价最小二乘法回归模型的优劣用什么方法?_解决多重共线性之岭回归分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

61e49725ca4946bc3067adc6d05785bc.png

上篇文章,我们介绍了几种处理共线性的方法。比如逐步回归法、手动剔除变量法是最常使用的方法,但是往往使用这类方法会剔除掉我们想要研究的自变量,导致自己希望研究的变量无法得到研究。因而,此时就需要使用更为科学的处理方法即岭回归。

岭回归

岭回归分析(Ridge Regression)是一种改良的最小二乘法,其通过放弃最小二乘法的无偏性,以损失部分信息为代价来寻找效果稍差但回归系数更符合实际情况的模型方程。

简单来说,岭回归是通过引入k个单位阵,使回归系数可以估计,得到的回归估计值要比简单线性回归系数更加稳定,也更加接近真实情况。虽然引入单位阵会导致信息丢失,但同时也换来回归模型的合理估计。

分析步骤

岭回归分析步骤共为2步:(1)结合岭迹图寻找最佳K值;(2)输入K值进行回归建模。

第一步:拖入数据,生成岭迹图,寻找最合适的K值。

c0cd972b81ff5efcc7572dc6ba206921.png

K值的选择原则是各个自变量的标准化回归系数趋于稳定时的最小K值。K值越小则偏差越小,当K值为0时则为普通线性OLS回归;SPSSAU提供K值智能建议,也可通过主观识别判断选择K值。

第二步:对于K值,其越小越好,通常建议小于1;确定好K值后,即可输入K值,得出岭回归模型估计,查看分析结果。

岭回归分析案例

(1)背景

现测得胎儿身高、头围、体重和胎儿受精周龄数据,希望建立胎儿身高、头围、体重去和胎儿受精周龄间的回归模型。根据医学常识情况(同时结合普通线性最小二乘法OLS回归测量),发现三个自变量之间有着很强的共线性,VIF值高于200;可知胎儿身高、体重之间肯定有着很强的正相关关系,因而使用岭回归模型。

(2)分析步骤

第一步:岭回归分析前需要结合岭迹图确认K值。首先拖拽身长、头围、体重到X分析框,胎儿受精周龄到Y分析框,不输入K值,SPSSAU会默认生成岭迹图,同时给出智能分析建议。

02947b270fc3faa8c6905cd422e0c764.png
操作路径:进阶方法>岭回归分析

198382f90809514b844a3e03b3e65ff8.png
岭迹图

0ddcb2c4566ca1a2871ac807e3272185.png
SPSSAU智能分析建议

第二步:对于K值,其越小越好,通常建议小于1;本案例中K值取0.01,返回分析界面,输入K值,得出岭回归模型估计。

9cccafd30741a61956b69cfb988e5ff3.png

(3)输出结果

bc2c79c0cf941043a68323abb1cc13f3.png
表1:模型汇总表

e55d57ca9f559bba5fbefbaa3ed4308d.png
表2:ANOVA分析表

26bb86859fc9e1900d90bfb9c127bd78.png
表3:Ridge回归分析结果表

表1用于整体分析模型拟合情况,可以看出,模型R平方值为0.959,意味着身长(cm), 头围(cm), 体重(g)可以解释胎儿受精周龄的0.959变化原因,模型拟合程度好。

表2为岭回归ANOVA检验,用于判定模型是否有意义,本例中显示P值<0.05,说明模型有意义。

表3为岭回归分析结果,根据分析结果可知,模型公式为:胎儿受精周龄=9.994 + 0.430*身长(cm)-0.284*头围(cm) + 0.007*体重(g)。身长、体重通过显著性检验(P<0.05)说明对胎儿受精周龄有影响关系。

总结分析可知:身长(cm), 体重(g)会对胎儿受精周龄产生显著的正向影响关系。但是头围(cm)并不会对胎儿受精周龄产生影响关系。

其他说明

岭回归分析需要特别注意两点,分别是共线性判断和分析步骤。

  • 是否呈现出共线性,一定需要有理有据,比如VIF值过高,也或者自变量之间的相关关系过高(比如大于0.6);如果数据并没有共线性,依旧建议使用普通线性最小二乘法回归。
  • 岭回归建模共分为两步,分别是寻找最佳K值和建模。岭迹图中,如果过了某点时趋于稳定,则该点对应的K值为最佳K值,以及K值是越小越好。

更多干货内容登录SPSSAU官网查看

SPSSAU:一图读懂:什么是偏相关?

SPSSAU:什么是虚拟变量?怎么设置才正确?

SPSSAU:多重共线性问题,如何解决?

这篇关于评价最小二乘法回归模型的优劣用什么方法?_解决多重共线性之岭回归分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/377697

相关文章

Python判断for循环最后一次的6种方法

《Python判断for循环最后一次的6种方法》在Python中,通常我们不会直接判断for循环是否正在执行最后一次迭代,因为Python的for循环是基于可迭代对象的,它不知道也不关心迭代的内部状态... 目录1.使用enuhttp://www.chinasem.cnmerate()和len()来判断for

Java循环创建对象内存溢出的解决方法

《Java循环创建对象内存溢出的解决方法》在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError),所以本文给大家介绍了Java循环创建对象... 目录问题1. 解决方案2. 示例代码2.1 原始版本(可能导致内存溢出)2.2 修改后的版本问题在

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3