2022年SAS讲义第三十四课非线性回归分析.docx
名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀学习资料 欢迎下载第三十四课非线性回来分析现实世界中严格的线性模型并不多见,它们或多或少都带有某种程度的近似;在不少情 况下,非线性模型可能更加符合实际;由于人们在传统上常把“ 非线性” 视为畏途,非线性 回来的应用在国内仍不够普及;事实上,在运算机与统计软件特别发达的令天,非线性回来的基本统计分析已经与线性回来一样切实可行;在常见的软件包中(诸如 SAS、SPSS等等),人们已经可以像线性回来一样,便利的对非线性回来进行统计分析;因此,在国内回来分析 方法的应用中,已经到了“ 更上一层楼”,线性回来与非线性回来同时并重的时候;对变量间非线性相关问题的曲线拟合,处理的方法主要有:第一打算非线性模型的函数类型,对于其中可线性化问题就通过变量变换将其线 性化,从而归结为前面的多元线性回来问题来解决;如实际问题的曲线类型不易确定时,由于任意曲线皆可由多项式来靠近,故常可 用多项式回来来拟合曲线;如变量间非线性关系式已知(多数未知)行数值迭代的非线性回来分析;,且难以用变量变换法将其线性化,就进一、可变换成线性的非线性回来在实际问题中一些非线性回来模型可通过变量变换的方法化为线性回来问题;例如,对 非线性回来模型yt0i2aicosixtbisinixtt34.1 1即可作变换x 1tcosxt,x2tsinx t,x3 tcos2x t,x4tsin2x t将其化为多元线性回来模型;一般地,如非线性模型的表达式为ytb 0b 1g1xtb2g2xtbmgmxt34.2 就可作变量变换x*g1xt,x*g2xt,x*gmx t34.3 1 t2 tmt将其化为线性回来模型的表达式,从而用前面线性模型的方法来解决,其中 34.3中的 xt 也可为自变量构成的向量;这种变量变换法也适用于因变量和待定参数b 3xbi ;如34.4 ytaexpb 1x 1tb2x 2t1 tx2t1时上式两边取对数得lnytlnab 1x 1tb2x2tb3x 1tx2 t134.5 现作变换y*lnyt,b 0lna ,x3tx 1tx2t134.6 t就可得线性表达式细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -* y tb0优秀学习资料欢迎下载34.7 b 1x 1tb2x2tb3x3 t利用前面方法确定了bi . i0 ,1,2 3,并由a .exp 0b .得到 a. 的值;变量变换的线性化方法可推广到以下形式的非线性模型hy tc 0b0c 1b 1g1x tcmb mgmx t34.8 其中 x=(x1,x2,xp),而 h(yt)、ci(bi)、gi(xt)就分别化为新的因变量、线性回来参数和自变量,即可归结为线性回来模型来解;见表 线性模型;34.1 所示给出了一些常见的可线性化的非表 34.1 典型的函数及线性化方法函数名称函数表达式x线性化方法u1x双曲线函数1abv1 yyxx幂函数yaxbvlnyuln指数函数vlnyuxxybx ae1yaeb/xvlnyuxyablnvyuln对数函数S 型函数ya1xv1 yuexbe当曲线的函数类型未确定时,我们常采纳上述非线性模型作为其拟合曲线,即将自变量的各种初等函数的组合作为新自变量,用逐步回来法(或正交挑选法等)对新变量进行挑选,以确定一个项数不多的线性函数表达式;颇为有效;二、多项式回来分析该方法对表达式形式没限制且精度要求不高的问题在式 34.2中,如取gixxi,就为多项式回来模型;由数学分析学问可知,一般函数都可用多项式来靠近,故多项式回来分析可用来处理相当广泛的非线性问题;对观测数据( xt,yt)(t= 1, , N),多项式回来模型为ytb 0b 1xtb 2x2b mxmt,t=1,2,N tt令细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -y 11优秀学习资料欢迎下载b01x 12 x 1m x 1Yy2,X1x 22 x 2m x 2,Bb 1,2yN1xNx 2Nx mNbmN就模型可表示为Y XB当 X 列满秩时,由前面的争论知,其最小二乘估量为B .XX1XY由此即可求得其多项式回来方程;但由于XX1的运算既复杂又不稳固,故我们一般采用正交多项式法来进行多项式回来;三、不行变换成线性的非线性回来分析未知的非线性函数,34.9 假设因变量y 与自变量( x1,x2, , xp)之间满意非线性模型yFx 1,x 2,xp;其中1,2,m为未知参数, F 为已知表达式,仅为误差项;现将观看数据yt,x 1t,x 2t,xpt,t=1,2,N代人上式 34.9得非线性回来模型ytFx 1t,x 2t,xpt;t,t=1,2,N常记为Y F E其中 Y y 1 , y 2 , , y N 为 y 的观看向量,1 , , m 为非线性回来系数,E= 1 , 2 , , N 为观看误差向量, F 为未知参数 的函数向量; 非线性回来分析就是利用最小二乘准就来估量回来系数,即求 . 使得残差平方和1 1Q E E Y F Y F2 2在 . 处达到最小;非线性回来分析一般来用数值迭代法来进行,其共同特点是:由选定 的初值 0 动身,通过逐步迭代细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀学习资料欢迎下载34.10 0t即挑选适当的步长 t >0 及确定搜寻方向向量(1,2, ,m),使得0Q Q 5.4.11 再 由取代 0 ,重复上述迭代过程,直至 Q 可认为达到最小值为止,即可将所得的作为其最小二乘估量 .,从而得到非线性回来方程y . F x 1 , x 2 , , x p ; .1. 下降方向和步长的挑选第一考察 Q 1 E E 1 Y F Y F 的梯度向量(即导数)2 2Q FY F G Y F其中 G F F , , F为 F 的梯度矩阵;1 m为 使 0 迭 代 收 敛 到 . , 其 迭 代 公 式 应 满 足 下 降 性 质 5.4.11 ; 现 考 虑 一 元 函 数t Q 0t,它从 0 动身以 为方向的射线上取值;由复合求导公式得Qd t t 0 Y F G可以证明,当 d<0 时,在以 为方向向量的射线上可以找到 0 t,使得0Q Q;我们将满意 d<0 的 称为 下降方向 ,Bard 于 1974 年给出了 为下降方向的充要条件为PGYF其中 P 为对称正定阵,由此我们可得下降算法的迭代公式为0tPGYF34.12 - 牛顿法其中 P 为任意正定阵,G 为 F 的梯度, t 为满意QQ0的正实数,即步长;如何运算以便修改参数向量有五种常用的非线性回来迭代方法:高斯(Gauss-Newton)、最速下降法 (梯度法, Gradient)、牛顿法(Newton )、麦夸特法(Marquardt )、正割法( DUD );以下我们介绍其中高斯-牛顿法; 第 4 页,共 10 页 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -2. Gauss Newton 法优秀学习资料欢迎下载第一选取的一切初始近似值0 ,令0 ,就只要确定的值即可确定;为此,考虑F在0 处的 Taylor 绽开式,并略去二次以上的项得G34.13 FF0F0F0F0其中GF0为 F 的梯度;此时其残差平方和Q1YF0GYF0G2由Q0,得其的正就方程为GGGYF0故G G 1G Y F 0 34.14 由此即可用前面线性回来法求,只需将 G 、Y F 0 视为前面( 5.2.1)式中的 X、 Y0即可;此时,对给定精度 1、2,当 max ii 1 或 Q 2 时,即得的 最小二乘法估量 . 0;否就用所得的 .代替 0 ,重复上述步骤,直至 i或 Q 满意精度要求为止;该法称为 GaussNewton 法,其一般迭代公式为i 1 it i 34.15 其中: 为 G iG iG iY F i的解,ti为 t Q i t 的最小值点;Gauss-Newton 法在初值 0 选取适当,且 G G 可逆时特别有效,但在其他情形,其求解较为困难,对此,Marguardt 对34.14中 的正就系数阵作适当修正,得到了改进算法;四、nlin 非线性回来过程在许多场合,可以对非线性模型进行线性化处理,特别是关于变量非线性的模型,以运用 OLS 进行推断;对线性化后的线性模型,可以应用SAS 的 reg 过程进行运算;多项式模型可以直接应用 glm(广义线性模型)求解;对于不能线性化的非线性模型;其估量不能直接运用经典的最小二乘法,而需要运用其他估量方法,如直接搜寻法、直接最优法与 Taylor 级数绽开法进行线性靠近;此时,可以利用 运算;1. proc nlin 过程SAS/STAT 的 nlin 过程实现相应的细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 10 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀学习资料 欢迎下载proc nlin 采纳最小误差平方法(Least Squares Method)及循环估量法 (Iterative Estimation Method)来建立一个非线性模型;一般而言,用户必需自订参数的名字、参数的启动值 (starting va1ue)、非线性的模型与循环估量法所用的准就;如用户不指明,就 nlin 程序自动以高斯-牛顿迭代法( Gauss-Newton iterative procedure)为估量参数的方法;另外此程序也备有扫描(Grid search)的功能来帮忙读者挑选合适的参数启动值;由于非线性回来分析特别不易处理,nlin 程序不保证肯定可以算出符合最小误差平方法之标准的参数估量值;nlin 过程的功能,运算非线性模型参数的最小二乘估量LS 及加权最小二乘估量;与reg过程不同的是:模型的参数要命名、赋初值、求偏导数;表达式有关;可以使用赋值语句及条件语句;nlin 过程一般由以下语句掌握:proc nlin data=数据集 </选项列表 > parameters 参数名 =数值 ;model 语句与参数名、说明变量的model 因变量表达式 </ 选项列表 >;bounds 表达式;der . 参数名参数名= 表达式;id 变量列表;output out= 数据集 </ 选项列表 >;by 变量列表;run ; 其中, parameters语句和 model 语句是必需的,而其余语句供用户依据需要挑选;2. proc nlin 语句中的主要挑选项;outest数据集名 指定存放参数估量的每步迭代结果的数据集名;bestn 要求过程只输出网格点初始值可能组合中最好的 n 组残差平方和;methodgauss | marquardt | newton| gradient| dud | 设定参数估量的迭代方法;缺省时为 gauss,除非没有 der.语句;eformat 要求全部数值以科学记数法输出;nopoint 抑制打印输出;noinpoint 抑制迭代结果的输出;3. parameters(parms)语句;例如, parms b0=0 b1=1 to 10 b2=1 用于对全部参数赋初值,项目之间以空格分隔;to 10 by 2 b3=1,10,100;4. model 语句;表达式可以是获得数值结果的任意有效SAS 表达式;这个表达式包括参数名字、输入数据集中的变量名以及在 nlin 过程中用程序设计语句创建的新变量;例如,model y=b0* 1exp-b1*x;5. bounds 语句;用于设定参数的约束,主要是不等式约束,约束间用逗号分隔;例如,bounds a<=20,b>30,1<=c<=10 ;6. der. 语句;dud,使用挑选项methoddud,否就 der.语除非在 proc nlin 语句中指明所用的迭代法是句是必需的; der.语句用于运算模型关于各个参数的偏导数,相应的格式为:细心整理归纳 精选学习资料 一阶偏导数der参数名表达式; 第 6 页,共 10 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀学习资料 欢迎下载二阶偏导数 der参数名参数名表达式;例 如 , 对 于 model y=b0* 1 exp-b1*x; der. 语 句 的 书 写 格 式 为 der. b0=1exp-b1*x;der. b1=b0*x*exp-b1*x;对于多数算法,都必需对每个被估量的参数给出一阶偏导数表达式;对于 newton 法,必须 给 出 一 、 二 阶 偏 导 数 表 达 式 ; 例 如 , 二 阶 偏 导 数 表 达 式 为 , der.b0.b0.=0;der.b0.b1=x*exp-b1*x;der.b1.b1=-der.b1*x;7. output 语句用于把一些运算结果输出到指定的数据集中;有关的关键字及其意义如表 34.2 所示:表 34.2 nlin 过程中 output 语句的关键字关键字 意义 关键字 意义 关键字 意义predicted | p 猜测值 stdp clm 的标准差 u95 95cli 上限residual | r 残差 stdr 残差的标准差 l95 95cu 下限parms 参数估量值 l95m 95 clm 下限 student 同学氏残差sse | ess 残差平方和 u95m 95 clm 上限 h 杠杆点统计量 hi关于 nlin 过程的其他挑选项及意义,详见 五、实例分析SASSTAT 的用户手册;发觉 y例 34.1 负指数增长曲线的非线性回来;依据对已有数据的XY 散点图的观看和分析,Y 随 X 增长趋势是减缓的,并且Y 趋向一个极限值,我们认为用负指数增长曲线b 01eb 1x来拟合模型较为合适;程序如下:data expd ; input x y ; cards; 020 0.57 030 0.72 040 0.81 050 0.87 060 0.91 070 0.94 080 0.95 090 0.97 100 0.98 110 0.99 120 1.00 130 0.99 140 0.99 150 1.00 160 1.00 170 0.99 180 1.00 190 1.00 200 0.99 210 1.00 ; proc nlin data=expd best=10 method=gauss; parms b0=0 to 2 by 0.5 b1=0.01 to 0.09 by 0.01; model y=b0*1-exp-b1*x; der.b0=1-exp-b1*x; der.b1=b0*x*exp-b1*x; output out=expout p=ygs ; run; goptions reset=global gunit=pct cback=white border htitle=6 htext=3 ftext=swissb colors=back; proc gplot data=expout; plot y*x ygs*x /haxis=axis1 vaxis=axis2 overlay; symbol1 i=none v=plus cv=red h=2.5 w=2; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 10 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀学习资料 欢迎下载symbol2 i=join v=none l=1 h=2.5 w=2; axis1 order=20 to 210 by 10; axis2 order=0.5 to 1.1 by 0.05; title1 'y=b0*1-exp-b1*x' title2 'proc nlin method=gauss' run ; 程序说明: 由于在 nlin 过程中使用选项method=gauss,即指定用高斯 -牛顿迭代算法来寻找 model 语句中非线性表达式 y b 0 1 e b 1 x 中参数 b 和 b 的最小二乘估量;我们知道参数初始值选取好坏, 对迭代过程是否收敛影响很大;parms 语句设置了初始值网格值为 b 取 0,0.5,1, 1.5,2 共 5 个值,b 取 0.01,0.02, , 0.09 共 9 个值,全部可能组合为 5× 9=45,选项 best=10 要求输出残差平方和最小的前 10 种组合;高斯-牛顿迭代算法要求给出模型y b 0 1 e b 1 x 对参数 b 和 b 的一阶偏导数表达式,我们知道d y b 1 x1 ed b 0d y b 1 xb 0 xed b 1der.语句用以表示上面两个一阶偏导数表达式;output 语句输出一个新数据集 expout,包括原数据集和非线性回来模型的猜测值 ygs;gplot 过程的主要作用是绘制输出数据集 expout中的原始数据的散点图及回来曲线的平滑线;程序的输出结果见图34- 1 和见表 34.3 所示;图 34- 1 XY 散点图和非线性回来曲线细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 10 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -表 34.3 优秀学习资料欢迎下载负指数增长曲线:Gauss-Newton 方法的输出结果 y=b0*1-exp-b1*x proc nlin method=gauss Non-Linear Least Squares Grid Search Dependent Variable Y B0 B1 Sum of Squares 1.000000 0.040000 0.001404 1.000000 0.050000 0.016811 1.000000 0.060000 0.055155 1.000000 0.030000 0.066571 1.000000 0.070000 0.097284 1.000000 0.080000 0.136536 1.000000 0.090000 0.170839 1.000000 0.020000 0.419285 1.500000 0.010000 0.975724 1.000000 0.010000 2.165290 Non-Linear Least Squares Iterative Phase Dependent Variable Y Method: Gauss-Newton Iter B0 B1 Sum of Squares 0 1.000000 0.040000 0.001404 1 0.996139 0.041857 0.000580 2 0.996192 0.041952 0.000577 3 0.996189 0.041954 0.000577 4 0.996189 0.041954 0.000577 NOTE: Convergence criterion met. Non-Linear Least Squares Summary Statistics Dependent Variable Y Source DF Sum of Squares Mean Square Regression 2 17.671723189 8.835861595 Residual 18 0.000576811 0.000032045 Uncorrected Total 20 17.672300000 Corrected Total 19 0.243855000 Parameter Estimate Asymptotic Asymptotic 95 % Std. Error Confidence Interval 输出结果分析: 第一列表输出了10 个最好的迭代初始值组合,按回来模型的残差平方和从小到大排列;因此,最好的迭代初始值为B0=1.000000 ,B1=0.040000 ,此时回来模型的ESS=0.001404,与其他初始值组合的 ESS 相比是最小的;紧接着输出迭代过程分析表,从这个最好迭代初始值开头经过4 次迭代误差平方和的变化就满意收敛准就,停止迭代,例如,经过第 1 次迭代, B0 值从 1 修正为 0.996139,B1 值从 0.040000 修正为 0.041857,而 ESS 从 0.001404 减小到 0.000580,而从第 2 次迭代开头, B0 的值只有在小数点四位以后才有变化,B1 的值只有在小数点五位以后才有变化,而 ESS 值几乎不变了, 因此是满意了收敛性标准而停止迭代的;方差分析表给出,回来平方和为 17.671723189,残差平方和为 0.000576811,总平方和为 17.672300000,总偏平方和为 0.243855000;参数估量表给出了,B0 和 B1 的渐近估计值,因此得到的非线性回来模型为细心整理归纳 精选学习资料 y0. 99618856571e0. 0419538868x 第 9 页,共 10 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -同时仍给出优秀学习资料欢迎下载B0 和 B1 参数估量的渐近有效标准差(Asymptotic Std. Error )和渐近 95%置信区间( Asymptotic 95 % Confidence Interval );最终仍给出了参数的渐近相关阵(Asymptotic Correlation Matrix );细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 10 页 - - - - - - - - -