SPSS(七)非线性回归过程

本文详细介绍了SPSS中的非线性回归过程,强调了其相对于曲线拟合过程的优势,如迭代稳定性及丰富的误差测量手段。通过毒物通风数据案例,展示了如何设定模型表达式和参数,并探讨了自定义损失函数应对离群点的方法。此外,还分享了参数初始值设定的技巧,包括利用线性拟合结果、方程解和简单模型预估。

SPSS(七)非线性回归过程

直线关系毕竟是较少数的情形,当因变量和自变量呈曲线关系,我们可以使用回归分析衍生方法----曲线拟合过程

但是使用曲线拟合过程还是存在局限性的

  • 只能分析一个自变量
  • 变量变换的局限

有的公式根本无法进行变换,如复杂的等式,或者无简单解的积分方程

当变换后,变量的数值分布状况已经改变,此时根据最小二乘法得到的最优解可能在原变量分布状况下并非最优

 

非线性回归过程

非线性回归过程的优势

  • 采用迭代方法对用户设置的各种复杂曲线模型进行拟合迭代方法往往意味着结果较为稳定
  • 将残差的定义从最小二乘法向外大大扩展这意味着误差测量手段的大大丰富,我们可以使用最小一乘法、加权最小二乘法、自回归模型等
  • 为用户提供了极为强大的分析能力特别适用于实验室数据的分析

 

案例:毒物通风数据

这个案例其实在曲线拟合过程已经坐做一次了,这次我们使用非线性回归过程解决

1	2.1250
2	1.7420
3	1.2360
4	1.1270
5	.7310
6	.4690
7	.4000
8	.3810
9	.2840
10	.2760
11	.0620
12	.0610
13	.0408
14	.0428
15	.0305

 分析--回归--非线性

我们假设模型为指数分布(也可以假设为其他分布),设置参数,写模型表达式,操作如下

1:从“迭代历史记录”表中可以看出:迭代了30次后,迭代被终止,已经找到最优解

此方法是不断地将“参数估计值”代入”损失函数“求解, 而损失函数采用的是”残差平方和“最小,在迭代30次后,残差平方和达到最小值,最小值为(0.068)此时找到最优解,迭代终止

2:从参数估计值”表中可以看出:
a= 2.854 (标准误为0.101,很小,说明此估计值的置信度很高) b=-0.267(标准误为:0.012,非常小,说明此估计值的置信度高)

非线性模型表达式为:Y(毒物浓度)= 2.854 *e^(-0.267*时间)

3:从“参数估计值的相关性”表中可以看出:变量间的相关性

4:从anova表中可以看出:R方 = 1- (残差平方和)/(已更正的平方和) = 0.989, 拟合度为0.989,说明此模型能够解释98%的变异,拟合度非常高

 

 

 

自定义损失函数

针对问题:回归过程有强离群点,而且强离群不好剔除有实际意义

案例:某公司生产的产品其成本主要受两种原材料的影响,为及时调整生产,协调库存,现收集了一批产品产量与相应生产中两种原材料消耗量的数据。请就此建立原材料消耗量与产量(因变量)间的回归方程

数据集如下

18.46	49.72	520.19
21.22	58.13	557.68
22.10	56.56	644.22
23.98	68.04	703.95
24.13	78.46	717.43
45.30	97.46	814.76
25.57	114.88	884.92
31.82	145.71	1109.10
39.66	156.59	1258.86
33.54	86.10	905.79
30.98	69.05	824.50
21.53	111.41	714.99
30.97	109.87	1126.30
19.44	114.67	596.78
25.51	81.85	858.77

我们首先观察散点图

我们选用对强离群点比较耐受的损失函数,最小一乘法,一般线性回归模型都是使用最小二乘法

添加参数起始值 

 

定义模型表达式 

 

最小一乘法,残差绝对值之和最小

 

 结果没有检验和标准误差的估计了,只有参数估计值,检验和标准误估计是最小二乘法那一套,对最小一乘法没有意义

 

 

 参数初始值的设定技巧

  • 如果可变为线性,可以先拟合线性方程,将此结果作为初始值
  • 如果方程可解,则代入若干样本值,解出近似取值作为初值
  • 先拟合较简单的雏形,将结果作为初始值

否则,多尝试几种初始值,观察结果

 

 

 

 

### 原理 非线性回归过程用于建立因变量与一组自变量之间的非线性关系,不像线性模型有众多假设条件,可在自变量和因变量之间建立任何形式的模型。其中,能够通过变量转换成为线性模型的,称之为本质线性模型,转换后的模型可用线性回归的方式处理;而有的非线性模型并不能够通过变量转换为线性模型,称之为本质非线性模型[^2]。 ### 操作方法 引用中未提及SPSS软件进行一元非线性回归的具体操作方法。一般而言,操作大致思路可能如下: 1. 打开数据文件,将包含自变量和因变量的数据导入SPSS。 2. 选择合适的非线性模型,可通过【分析】菜单找到【回归】相关选项,再进一步寻找非线性回归的功能入口。 3. 设置自变量与因变量,指定使用的非线性模型表达式。 4. 设置模型参数初始值,这对于模型的收敛和估计结果很重要。 5. 运行分析,等待SPSS计算并输出结果。 ### 案例 引用中没有相关一元非线性回归案例。假设一个案例,研究某种植物的生长高度(因变量)与光照时间(自变量)之间的关系。由于植物生长可能不是简单的线性关系,可能呈现出先快速增长,后期增长变缓的非线性特征。此时可以使用SPSS的一元非线性回归功能,选择合适的非线性模型(如Logistic模型等)来拟合数据,以探究光照时间对植物生长高度的具体影响。 ```python # 这里只是示意代码,并非实际SPSS操作代码 # 模拟植物生长高度和光照时间数据 import numpy as np import pandas as pd # 生成光照时间数据 light_time = np.linspace(0, 12, 100) # 模拟植物生长高度数据,使用Logistic模型 def logistic_growth(t, a, b, c): return c / (1 + np.exp(-(t - b) / a)) # 假设参数值 a = 2 b = 6 c = 100 height = logistic_growth(light_time, a, b, c) + np.random.normal(0, 5, 100) # 创建DataFrame data = pd.DataFrame({'Light_Time': light_time, 'Height': height}) # 这里应该是调用SPSS进行非线性回归的代码,但Python无法直接实现 # 可将数据导出为SPSS支持的格式,如.sav文件,再在SPSS中操作 data.to_spss('plant_growth.sav') ```
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路易三十六

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值