SAS学习系列25非线性回归.docx
- 文档编号:9745677
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:22
- 大小:111.37KB
SAS学习系列25非线性回归.docx
《SAS学习系列25非线性回归.docx》由会员分享,可在线阅读,更多相关《SAS学习系列25非线性回归.docx(22页珍藏版)》请在冰豆网上搜索。
SAS学习系列25非线性回归
25.非线性回归
现实世界中严格的线性模型并不多见,它们或多或少都带有某种程度的近似;在不少情况下,非线性模型可能更加符合实际。
对变量间非线性相关问题的曲线拟合,处理的方法主要有:
(1)首先确定非线性模型的函数类型,对于其中可线性化问题则通过变量变换将其线性化,从而归结为前面的多元线性回归问题来解决;
(2)若实际问题的曲线类型不易确定时,由于任意曲线皆可由多项式来逼近,故常可用多项式回归来拟合曲线;
(3)若变量间非线性关系式已知(多数未知),且难以用变量变换法将其线性化,则进行数值迭代的非线性回归分析。
(一)可变换为线性的非线性回归
表1典型的函数及线性化方法'
1b
—=盘亠一卫
yt
I1
V=—U=—&
VX
b
y=axa
v-Inym二In耳』
崔数巒数•
y1-q严*
v-Inyn=x
y-ae卡
V二111J川二丄。
X
対数函議
F二“+占bn
v=yu-Inx*-
S型蚩竝H
1
y*.
1-r
V——li*
y
在很多场合,可以对非线性模型进行线性化处理,尤其是可变换为线性的非线性回归,运用最小二乘法进行推断,对线性化后的线性模型,可以应用REG过程步进行计算。
例1有实验数据如下:
X
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2
2.1
2.2
2.3
2.4
Y
109.95
40.45:
!
0.092
4.531
1.027.
394J
)52.7
21.8
214
)0.82
:
0.30
).20
.22
试分别采用指数回归(y二aebx)方法进行回归分析
代码:
data
exam25_1;
input
xy;
cards;
1.1
109.95
1.2
40.45
1.3
20.09
1.4
24.53
1.5
11.02
1.6
7.39
1.7
4.95
1.8
2.72
1.9
1.82
2
1.49
2.1
0.82
2.2
0.3
2.3
0.2
2.4
0.22
run;
procsgplotdata=exam25_1;scatterx=xy=y;
run;
proccorrdata=exam25_1;
varxy;
run;
datanew1;
setexam25_1;
v=log(y);
run;
procsgplotdata=new1;
scatterx=xy=v;
title'变量代换后数据';
run;
procregdata=newl;
varxv;
modelv=x;
printcli;
title'残差图';
plotresidual.*predicted.;
run;
datanew2;
setexam25_1;
y1=14530.28*exp(-4.73895*x);run;
procgplotdata=new2;
ploty*x=1y1*x=2/overlay;symbolv=doti=nonecv=red;symbol2i=smcolor=blue;
title'指数回归图';
run;
运行结果:
CURR过程
简单统计帛
N
均值
标准差
总和
虽小值
最大值
X
I4
1.75000
041833
2450000
L10000
2.40000
y
11
16.13929
294SD37
225KOOO
0.20000
103.95000
Pearson相关系数.N=14
Prob>|r|underHU:
Rho-0
K
X
y
L00000
-0.71104
0.0044
y
-0.71104
1(KMX)
0.(JIM4
變氏代欣石靶I!
读取的观测数
14
便用的观测数
M
方差分析
源
自由度
平方
和
均方
F值
Pr>r
1
^)1.09106
51O910fi
75631
误差 12 O.81OC3 0.06J55 校正合计 13 51.90170 均方犠谍差 0.25S91 R方 09E44 因变量均値 1.29084 调整R方 0.9(831 鉴异系数 2U1349B 彗数怙计値 变早 自由度 怙计值 标准误差 t值 Pr>|t| 1ntercept 1 9.56399 0.30<*45 30.07 <.000II X 1 -4./s«a& D.17232 -2J.5D <.0001 输岀统计星 观测 因变早 预测值 标准渎走均值预测 95%CL 预测 残差 1 4.7000 4.3712 0.1313 373C2 5.0061 0.3289 2 3./(Wl 3.89/3 0.11/b 3.2/feU 4.siin -0L1S72 3 3.0002 Z4234 0.1041 2.S133 4.0334 -0.4231 片 工丨泗 2.9495 0.M20 23487 3.5502 0.2504 5 2.3997 2.4756 o.oen 1B819 it.392 0.0759 6 2.0001 20017 0.0741 14120 2.5905 -0.0DI549 7 1.5994 1.52/8 0.D/00 09413 2.1143 0LU716 8 1,0006 1.0533 0.0700 0.W4 1.C40d -0.0533 9 0.5908 0.5Q00 0.0741 -».009876 L1609 0.0180 10 d3938 0.llXil 0.0917 -0.4575 0.6S97 0.2购7 11 -0.1905 -0.3S7G 0.0920 -09886 0.2323 0.1693 12 -1.2040 •0.8+1/ 0.1041 14517 -0.2311 0l3(523 13 -1.609-1 -1.3150 0.1175 -19371 -0.G941 -0.2S39 14 -1.5141 -1.7035 0.1318 •2.42彳4 -L1545 0.2754 H 1* D.■罪 Ad^FEOnbsi n.ait ■报台ST的V •ftr 霜暑口田念12NSJFDOB? * R方D 鼻整覽力i0WJ1 I;台□SBt■JUHw列羽 程序说明: (1)调整后的R2=0.9831,说明拟合程度很好;F检验的P值=O.OOO1Va=0.05,拒绝原假设,故直线回归的斜率不为0; (2)将线性回归系数代入,得到原回归方程 y=14530.28*e-4.73895x (3)残差图趋势,符合残差随机正态分布的假设(不带其它明显趋势)。 、多项式回归 一般函数都可用多项式来逼近,故多项式回归分析可用来处理相当广泛的非线性问题。 对观测数据(Xt,yt),t=1,…,N.多项式回归模型为: yt=%++方…+b玳x;+令*尸12…皿|令 ]勺£-*■ _£11 Y=\ 1$Xy… € jB= r£二 」x.vx.v" 爭N. 则模型可写为: Y二XB+£ 当X列满秩时,用最小二乘估计B=XX"XY可求得其多项式回归方程。 但由于XX」的计算既复杂又不稳定,故一般采用正交多项式法来进行多项式回归。 多项式模型可以直接应用GLM(广义线性模型)求解。 例2重庆市种畜场奶牛群1—12月份(x1),产犊母牛平均产奶量(y)的资料如程序数据步中,试对该资料配置一个合适的回归方程。 代码: dataexam25_2;inputx1y@@;x2=x1*x1; datalines; 13833.43 73476.76 23811.58 83466.22 33769.47 93395.42 43565.74 103807.08 53481.99 113817.03 63372.82 123884.52 run; procsgplotdata=exam25_2; scatterx=x1y=y; title'原始数据散点图'; run; procregdata=exam25_2; modely=x1x2; run; 运行结果: SQD 3™ 阙. Mir REG过程 按型: M0DEL1 因变军: y iiffi(的观测数匹 便用的规测数12 方苣分斬 源 白由度 平方和 均方 F伯 Pr>F 模型 2 332594 16G2S7 16.89 0.000! ) 误葢 9 83501 93H56254 校正合计 11 4? 1195 均方根淒差 9H.21977 R方 0.7895 因变阜均值 3t)4O.Iflt)/ 调整R方 0? 429 锂异系数 2.72609 参数怙计值 自由度 参数 怙计值 标准误差 t值 Pr>|t| 1nteroepI 1 4117.20136 102.54649 40.15 G000II xl 1 -204.9366S 36.26837 -5.65 00(X)3 x2 1 1578670 2.71589 5.81 00003 以下列鑫的残弹七回归量: ¥ 255D75100125flK5075im1251ITO X1泛 GLM过程 源 自由度 平方和 均方 卜慎 丹>卜 2 3325S4.3259 166297.IC30 16.89 0.000(5 g口旦Be差 9 88601.0629 9844.5625 校正合计 11 421I9S.3808 Rh 姿异系数 根MSt *均值 0.7SS644 2.725689 99.21977 3640.172 自由度 犁SS 均方 F值 Pr>b xl 1 1L0050 11.0050 0.00 0.9741 *1*x1 1 332583.3210 332563.3210 33.78 0.0003 源 自由度 111SS 均方 卜值 Pr>卜 xl 1 314325.5414 314325.b4bl 31.93 0.tK)03 x1*x1 1 3325S3.3210 33P583.3210 33,78 0.0003 舂数 估计憤 标准误差 tffi Pr>|t| 1ntorcnpt 4117,201364 1025464905 4a15 <.0001 x1 -204.936578 3&那£3725 -5.6& U.0003 x1*x1 15.785599 2,7168077 681 J0003 拟合图y 料匸二1那l^Rl 程序说明: (1)观察数据的散点图,更适合二次多项式拟合,也可以测试几种不同次数的多项式拟合选择其中最优的; (2)将回归系数代入多项式方程得到: y=4117.20136-204.93668x1+15.78570x12 三、不能变换为线性的非线性回归 该类非线性回归分析就是利用最小二乘准则来估计回归系数B, 使得残差平方和最小。 一般来用数值迭代法来进行,先选定回归系数的初值%,按照给定的步长和搜索方向逐步迭代,直到残差平方和达到最小。 有5种常用的非线性回归迭代方法: 高斯-牛顿法 (Gauss-Newton)、最速下降法(梯度法)、牛顿法(Newton)、麦夸特法(Marquardt)、正割法(DUD)。 高斯-牛顿法在初值选取适当,且可逆时非常有效,但在其他情形,其求解较为困难,对此,Marguardt对其中的正则系数阵作适当修正,得到了改进算法。 (二)PROCNLIN过程步 对于不能线性化的非线性模型。 其估计不能直接运用经典的最小二乘法,而需要运用其他估计方法,如加权最小二乘法、直接搜索法、直接最优法与Taylor级数展开法进行线性逼近。 此时,可以利用NLIN过程步实现相应的计算,它是采用最小误差平方法及迭代推测法来建立一个非线性模型,估计参数默认采用高斯-牛顿迭代法NLIN过程不保证一定可以算出符合最小误差平方法之标准的参数估计值。 基本语法: PROCNLINdata=数据集可选项>; PARMS参数名二数值; MODEL因变量二表达式可选项>; vOUTPUTout=输出数据集可选统计量>;> 说明: (1)NLIN的可选项包括: outest=输出数据集一一输出每步迭代的结果; best=n只输出最好的n组残差平方和; method=gauss|marquardt|newton|gradient|dud |设定参数估计的迭代方法,默认为gauss(没有der.语句); (2)PARMS语句指定参数并赋值,一般包括参数名、初始值(GridSearch可以帮助选择合适的初始值)、迭代准则;例如: parmsb0=0b1=1to10b2=1to10by2b3=1,10,100; (3)bounds语句用于设定参数的约束,主要是不等式约束,约束间用逗号分隔。 例如,boundsa<=20,b>30,1<=c<=10; (4)der.语句用于计算模型关于各参数的偏导数,相应格式 为: 一阶偏导数: der.参数名=表达式; 二阶偏导数: der.参数名.参数名=表达式; 例如,对于模型modely=bO*(1—exp(-b1*x));二阶偏导数表达式: der.b0.b1二x*exp(-b1*x); 例3根据对已有数据的XY散点图的观察和分析,发现丫随X增长趋势是减缓的,并且Y趋向一个极限值,我们认为用负指数增长曲线来拟合模型较为合适。 代码: dataexpd; inputxy@@; datalines; 0200.570300.720400.810500.870600.910700.94 0800.950900.971000.981100.991201.001300.99 1400.991501.001601.001700.991801.001901.00 2000.992101.00 procnlindata=expdbest=10method=gauss; parmsb0=0to2by0.5b1=0.01to0.09by0.01; modely=b0*(1-exp(-b1*x)); der.b0=1-exp(-b1*x); der.b1=b0*x*exp(-b1*x); outputout=expoutp=ygs; run; goptionsreset=globalgunit=pctcback=whiteborder htitle=6htext=3ftext=swissbcolors=(back); procgplotdata=expout; ploty*xygs*x/haxis=axis1vaxis=axis2overlay; symbol1i=nonev=pluscv=redh=2.5w=2; symbol2i=joinv=nonel=1h=2.5w=2; axislorder=20to210by10;axis2order=0.5to1.1by0.05; titlel'y=b0*(1-exp(-b1*x)'; title2'procnlinmethod=gauss' run; 运行结果: NLIN过稈 网格搜索 b0 bl 平方和 1.(XXX) 0.(M0U 0.00140 1.0000 0.UbOO 0.0168 1.0000 0.0600 0.(Jbb2 1,0000 0,0300 0.0G66 L0000 0C1700 0.0973 1.0000 0.0800 0.1365 1.()000 0.0900 0.17(J« 1.uouo 0.0200 0.4193 t.5000 001OU 0.3767 L0000 00100 2.1553 MLIN过程 因壹帛7 方法: GauNewton 迭代阶段 送代 bO bl 乎方和 0 1DQOC (1.fMOO 0(MH40 1 0.9361 0.D419 a0005&0 2 0.9S62 0.0420 □000577 3 0.9562 0、0420 O000577 4 fl9562 0.0120 a.ODO577 Nl>lE;Uonvergcnceileriunmet. 怙计汇■& 方法 Gfiuss-Newton 迭代 4 R 2.55? F-7 PPC(bl) 1O2SLS RPC(bl) 9.394E-7 ObjccL 2.5SE-10 目标 n.000517 读取的观测 20 便用的观测 20 缺失的现测 0 HotelAninterceptwasnots pecHied forthisnode1L 源 白由度 平力和 均方 FVa1ue 以F 模樂 2 17.6717 3.8359 275733 <.0001 误差 18 0.000577 C0OC03? 未校正合计 20 17.6723 参数 估计值 近似标准淇差 近似直信限 bO 0 Q00161 0A92S C. hi a0420 0.OCO398 O(J411 (J.042S 近似相关矩阵 bO bl bO 10000000 a5556957 b1 -(LfiS5S9S7 1*(XIOQOOO y=b0*(1—exp(—b1*x) pnoenlinmethod=geuiss 程序说明: 5个值,bi取0.01,0.02,…,0.09共9个值,所有可能组合为5X9=45, 选项best=10要求输出残差平方和最小的前10种组合; (2)最好的迭代初始值为bo=1.0000,b1=0.0400,此时回归 模型残差为ESS=0.00140;从该迭代初始值开始经过4次迭代误差平方和的变化就满足收敛准则(ESS值几乎不变),停止迭代; (3)高斯-牛顿迭代算法要求给出模型y=b0(1-eTx)对参数b0 和b1的一阶偏导数表达式: der.语句用来表示上面两个一阶偏导数表达式 (4)output语句输出一个新数据集expout,包括原数据集和非线性回归模型的预测值ygs;gplot过程的主要作用是绘制输出数据集expout中的原始数据的散点图及回归曲线的平滑线; (5)方差分析表,给出了回归平方和为17.6717,残差平方和为0.000577,总平方和为17.6723. (6)参数估计表,给出了b0和b1的渐近估计值,得到的非线性回归模型为 y=1.0000000*[1-exp(0.5558957x)] 同时还给出bo和b1参数估计的渐近有效标准差和渐近95%置信区间。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAS 学习 系列 25 非线性 回归