基于spss的分段回归模型(piecewise linear regression)
基于spss的分段回归模型
- 一、简介
- 二、模型分析
- 三、基于spss的案例分析
- (一)图像分析
- (二)回归分析
- 参考文章:
一、简介
分段线性回归是指当y对x的回归在x的某一范围的服从某种线性关系,在其他范围内又服从斜率不同的线性关系时适用的一种回归估计方法。这种方法使用指示变量对各段(即不同范围的)数据同时拟合统—的回归模型 。
某些变量之间的关系非常有趣,不是恒久的线性或非线性关系,可能其中一段表现为线性,而另一段表现为非线性。例如,我们举一个每个人都有切身体会的例子,人的身高和年龄的关系,在3岁到10岁期间,它们基本是线性相关,而高中以后,身高基本定型,不再随年龄的增加而增长。对于这样的变量关系,在3到10岁期间,我们可以用一个线性方程来拟合年龄和身高的关系,而高中以后则需要换另一个方程,可以是线性的,也可以是非线性的,需要根据数据情况来选择。这就是分段回归模型的分析思路。
通常的做法是对每个部分进行单独拟合,但是这样做参数较多,且样本被人为分开,当样本量较小时会导致分析结果的准确性很差。
SPSS的非线性回归模块完美的解决了这个问题,可直接对分段函数进行直接拟合,以充分利用信息,提高模型的预测精度。由于原理简单,我们下面用一个具体的案例来介绍如何利用SPSS进行分段回归模型拟合。
二、模型分析
分段线性回归模型由两条直线组成,但在折点处曲线仍是连续的。考虑以下的基本模型:Yi=β0+β1Xt+utY_{i}=\beta_{0}+\beta_{1}X_{t}+u_{t}Yi=β0+β1Xt+ut 假定因变量YYY和解释变量XXX均呈现随时间稳定增长的趋势,在时间t=t0t=t_{0}t=t0处反映两者之间关系的曲线出现转折,使得两段曲线的截距和斜率都发生变化,但YYY的变化具有连续性。我们设定以下形式的虚拟变量:Dt={0,(t<t0)1,(t≥t0)D_{t}=\left\{\begin{matrix} 0,\: \: (t<t_{0})\\ 1,\: \: (t\geq t_{0})\end{matrix}\right.Dt={0,(t<t0)1,(t≥t0) 然后将待估计的分段线性回归模型写成:Yt=β0+β1Xt+β2(Xt−Xt0)Dt+ut(1)Y_{t}=\beta_{0}+\beta_{1}X_{t}+\beta_{2}(X_{t}-X_{t_{0}})D_{t}+u_{t} \:\:\:(1)Yt=β0+β1Xt+β2(Xt−Xt0)Dt+ut(1)由式(1)可以看出,当ttt处于不同时间段时,YYY的期望值分别为:
当t<t0t<t_{0}t<t0时,有E(Yt)=β0+β1XtE(Y_{t})=\beta_{0}+\beta_{1}X_{t}E(Yt)=β0+β1Xt;
当t>t0t>t_{0}t>t0时,有E(Yt)=(β0−β2Xt0)+(β1+β2)XtE(Y_{t})=(\beta_{0}-\beta_{2}X_{t_{0}})+(\beta_{1}+\beta_{2})X_{t}E(Yt)=(β0−β2Xt0)+(β1+β2)Xt
当t=t0t=t_{0}t=t0时,有E(Yt)=β0+β1Xt0=(β0−β2Xt0)+(β1+β2)Xt0E(Y_{t})=\beta_{0}+\beta_{1}X_{t_{0}}=(\beta_{0}-\beta_{2}X_{t_{0}})+(\beta_{1}+\beta_{2})X_{t_{0}}E(Yt)=β0+β1Xt0=(β0−β2Xt0)+(β1+β2)Xt0
即在t=t0t=t_{0}t=t0处曲线为连续的。
三、基于spss的案例分析
下面有一份数据,记录了该地去年5 月到8月的日平均气温,以及当天的居民用电总量,希望建立居民用电量与日平均气温间的预报方程。
##分析步骤
(一)图像分析
根据散点图展示的变量关系,来选择合适的回归模型。
绘制散点图:【图形】-【旧对话框】-【散点图】
由上图可知,日平均气温对用电量的影响分成两个阶段:24摄氏度以下时,用电量并不会随着气温的改变而显著增加;24摄氏度以上时,用电量随着平均气温的上升呈现明显的上升趋势。因此,该数据的模型可以这样写:
用电量=b1;平均温度t<24oC用电量=b_{1};\:\:\:平均温度t<24^{o}C用电量=b1;平均温度t<24oC
用电量=a2∗平均温度+b2;平均气温t≥24oC用电量=a_{2}*平均温度+b_{2};\:\:\:平均气温t\geq24^{o}C用电量=a2∗平均温度+b2;平均气温t≥24oC
(二)回归分析
选择菜单【分析】-【回归】-【非线性回归】;在跳出的对话框中作如下操作。将生活用电量选为因变量,在模型表达式框内输入:(平均气温 < 24)b1+(平均气温 >= 24)(a2*平均气温+b2);点击参数,设置表达式中的三个参数,由于是比较线性模型,迭代初始值都设置为1。点击继续,然后点击确定,输出结果:
根据模型参数值表格,我们可以写出两个回归方程:
用电量=2157.618;平均温度t<24oC用电量=2157.618;\:\:\:平均温度t<24^{o}C用电量=2157.618;平均温度t<24oC
用电量=86.536∗平均温度+77.562;平均气温用电量=86.536*平均温度+77.562;\:\:\:平均气温用电量=86.536∗平均温度+77.562;平均气温
为了验证根据前面我们根据散点图选定的24摄氏度趋势分界点是否为数据的合理趋势分界点,将24摄氏度代入回归方程2,可算得用电量的估计值为2157. 52,因此以24摄氏度作为分段点是比较合理的。
上图是自变量与残差的散点图,可见在24摄氏度前后,残差的分布都是随机的,且前后没有明显变化,离散程度基本相同,因此对数据进行分段回归模型拟合是合理的。
其中,预测值和残差图,要在构建回归模型页面【保存】-勾选【预测值】、【残差】
参考文章:
[1]百度百科:分段回归
[2]微信公众号生活统计学:SPSS分析技术:分段拟合;电业局如何通过简单的回归模型来预测居民用电量?
基于spss的分段回归模型(piecewise linear regression)相关推荐
- R语言glm拟合logistic回归模型实战:基于glm构建逻辑回归模型及模型系数统计显著性分析、每个预测因子对响应变量的贡献
R语言glm拟合logistic回归模型实战:基于glm构建逻辑回归模型及模型系数统计显著性分析.每个预测因子对响应变量的贡献 目录
- R语言基于glmnet构建Logistic回归模型使用L1正则化并可视化系数及最佳lambda值
R语言基于glmnet构建Logistic回归模型使用L1正则化并可视化系数及最佳lambda值 Glmnet主要用于拟合广义线性模型.筛选可以使loss达到最小的正则化参数lambda.该算法非常快 ...
- matlab实现 分段线性插值算法 piecewise linear interpolation
我们先看<数值计算方法(丁丽娟)>这本书上关于分段线性插值的例题: 所以基本原理从例题中可以看懂 现在设计matlab脚本如下:输入inputn行2列的矩阵,代表已知的原始点,第一列为X值 ...
- R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型、通过method参数指定算法名称、通过trainControl函数控制训练过程
R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型.通过method参数指定算法名称.通过trainControl函数控制训练过程 目录
- R语言广义线性模型函数GLM、glm函数构建泊松回归模型(Poisson regression)、输出提供偏差(deviances)、回归参数和标准误差、以及系数的显著性p值
R语言广义线性模型函数GLM.glm函数构建泊松回归模型(Poisson regression).输出提供偏差(deviances).回归参数和标准误差.以及系数的显著性p值 目录
- R构建岭回归模型(Ridge Regression)实战
R构建岭回归模型(Ridge Regression)实战 目录 R构建岭回归模型(Ridge Regression) 岭回归模型 选择最优λ值 交叉验证
- R构建对数回归模型(Logarithmic Regression)
R构建对数回归模型(Logarithmic Regression) 目录 R构建对数回归模型(Logarithmic Regression) 对数回归模型(Logarithmic Regression ...
- R构建指数回归模型(Exponential Regression)
R构建指数回归模型(Exponential Regression) 目录 R构建指数回归模型(Exponential Regression) 指数回归(Exponential Regression) ...
- R构建幂回归模型(Power Regression)
R构建幂回归模型(Power Regression) 目录 R构建幂回归模型(Power Regression) 创建数据 数据可视化 拟合幂回归模型
最新文章
- 公司消费一卡通“变法”记
- ORACLE中date类型字段的处理
- IDEA 编译时 报 “常量字符串过长” 解决办法
- S2SH新手框架结构的准备工作只需要导入这些文件
- Atitit 信息处理设备与历史与趋势 目录 1. It设备简史与艾提拉觉得常见重要的设备	2 2. 第一部分 IT萌芽期(约公元前4000年至1945年)	2 2.1. 苏美尔人的象形文字(约公元
- gooflow学习笔记
- 启发式算法之遗传算法--求解组合优化问题
- 关于STM8L系列编程
- python安装库之----有些库库真是小妖精
- Troubleshooting: High Version Count Issues (文档 ID 296377.1)
- windows10 C盘后面有一个恢复分区,无法扩展C盘的解决办法
- 网络学习 2g 3g 4g 技术对比 带宽理解 三大运营商手机网络模式 (制式)
- 解析B2C电子商务网站系统架构
- 将一根木棍分成三段,求这三段构成三角形的概率 和 在一圆周上任意取三个点构成锐角三角形的概率是多少
- windows10 强制关闭全屏游戏卡死的方法
- 4月1起入境泰国取消核酸检测,来曼谷旅游,这6座寺庙必打卡
- [VFP实例]VFP的OLE技术应用详解
- Next.js(二)Next.js基本使用
- 五子棋等级考试软件的开发(七)
- 祝老婆-2014年03月07日女生节快乐!
热门文章
- 一文理解推挽输出漏极开路输出(OD)集电极开路输出(OC)
- 八年数据库转型之路:技术易改,匠心永存
- c# 委托实例的几种执行方式详解
- 下午两点,要开始转数据了。开始计算机程序设计艺术之路
- linux内核编程memcpy,memcpy Linux内核实现引发的思考:为什么嵌入式汇编中不用指定段寄存器...
- 蓝屏stop:0x000000074之再修复
- (2020)指代消解ontoNotes_Release_5.0处理详细流程
- 计算机网络学习-006
- TFT-LCD屏幕显示ASCII字符和字符串
- TN、HTN、STN、FSTN、DSTN、CSTN、TFT、LCD 的区别