首页 理论教育 使用NLP进行LAD回归的实用SAS基础技巧

使用NLP进行LAD回归的实用SAS基础技巧

时间:2023-08-10 理论教育 版权反馈
【摘要】:nlin过程处理非线性回归模型时采用的是非线性最小二乘法。nlin过程不能作最小一乘,可以采用nlp过程作最小一乘,见例8.21。例8.21说明LAD回归稳健。,bm)′,由此得到经验回归方程这样得到经验回归方程的方法称为LAD回归。SAS软件可用nlp过程计算LAD回归,主要靠4条必要语句:proc nlp语句、min语句、parms语句和赋值语句。例8.22对例8.20的数据作LAD回归。练习题2已知数据如表8-21所示,试用LAD回归建立回归方程表8-21两自变量的LAD回归数据

使用NLP进行LAD回归的实用SAS基础技巧

nlin过程处理非线性回归模型时采用的是非线性最小二乘法。有时非线性最小二乘法不合适,需要改用非线性最小一乘法,它具有稳健性(观测值作一些改变,所得经验回归方程不会有很大变化)。nlin过程不能作最小一乘,可以采用nlp过程作最小一乘,见例8.21。当然nlp过程的用途很广泛,是非线性规划的重要工具。关于非线性规划,计划以后在本书姐妹篇中再单列一章介绍。

例8.21 对于表8-14中9位女孩的身高与腿长数据,如果想扣除第2名女孩的数据,以剩下8名女孩的数据建立线性回归方程,得到不包含野点的线性回归方程。所用程序如下:

提交程序后得到如下数表:

Parameter Estimates

可见不包含野点的经验线性回归方程是

如果仍然想用以全部9名女孩的数据建立线性回归方程,得到包含野点的线性回归方程,可采用最小二乘法。所用程序如下:

提交程序后得到如下数表:

Parameter Estimates

由此得到包含野点的线性回归方程是

可见式(8-10)与式(8-9)相差很大,原因是采用最小二乘法时,为了估计截距a和x的系数b的值,要让最小,由于第2个观测是野点,|y2-a-bx2|较大,因而(y2-a-bx22很大,以致它对计算极小值过程的影响很大。而如果采用最小一乘法,即选择a和b使得极小,这时虽然|y2-a-bx2|较大,但是由于没有平方,对于的影响并不十分大。将表8-14的数据带入后,由最小算得a和b的估计值分别是-7.333303和0.666666(见例8.2.1)。因此经验回归方程是

可见式(8-11)与式(8-9)差不多。

如果建立一个回归方程时,野点对回归系数影响不大,就称这种回归方法很稳健。例8.21说明LAD回归稳健。

一般地,LAD回归(Least Absolute Deviation Regression)是一种基本而简单的稳健方法,它对数据中的异常点有稳健性。其基本原理是:对于回归模型(可以是线性回归,也可以是非线性回归)

和观测值x(1),y1,…,x(n),yn,选取参数向量β,使

极小(最小一乘法),从而得到参数估计=(b0,…,bm)′,由此得到经验回归方程

这样得到经验回归方程的方法称为LAD回归。

LAD回归稳健的原因是:作最小二乘时,对于异常点,第i个观测数据|yif(x(i),β)|较大,平方后对SSE=∑(yi-f(x(i),β))2的影响很大,因而对参数估计的影响大;作最小一乘时,若x(j),yj是异常点(可能有多个异常点),|yjf(x(j),β)|虽然较大,由于未作平方,对的影响相对较小,该异常点对参数估计的影响就减小了。因而LAD回归具有稳健性。f(x(i),β)|称为目标函数。

SAS软件可用nlp过程计算LAD回归,主要靠4条必要语句:proc nlp语句、min(max)语句、parms语句和赋值语句。当然nlp过程的用途非常广泛,用它解决其他问题时,所用语句及选项也很多,这儿暂不介绍。

(1)proc nlp语句。其一般形式是

proc nlp语句用于调用nlp过程。选项“data=”说明所用的数据,和一般过程的proc语句不同,“data=”选项不可省略;“tech=nmsimp”选项不可省略,用于指定用Nelder-Mead单纯型法作最小一乘,默认的高斯法不能作最小一乘。

(2)min(max)语句。其一般形式是

用于指定目标函数取最小值或最大值或最小二乘。u只能是变量符号,不带运算符号。本章只用语句“min u;”。

(3)parms语句。其一般形式是(www.xing528.com)

例如“parms a1=1.2,b2=0.3,c=5.4;”用于指定待估参数a1,b2和c,并给出初估计a1=1.2,b2=0.3,c=5.4。与nlin过程的parms语句不同的是:各参数初估计之间要用英文逗号隔开;可以只列出参数名,而不给出参数初估计,这时nlp过程会自行给出初估计,当然nlp过程给出的初估计不一定是优良初估计,而nlin过程不能自行给出初估计,使用者必须指定初估计。

(4)赋值语句。其一般形式是

例如“u=abs(y-(sin(a1*x1)+b2*cos(c+x2)));”用于指定确定性部分是sin(a1*x1)+b2*cos(c+x2)。abs是绝对值函数,该语句的作用是使∑|sin(a1*xi1)+b2*cos(c+xi2)-yi|最小。

例8.21 对于表8-14中的数据作LAD回归。

解 可用如下程序:

提交程序后得到的主要结果是如下两张数表:

Optimization ResuIts

上表是迭代过程一览表,说明经过24次迭代最优化过程收敛,目标函数降到最小值11.000002853。

PROC NLP:NonIinear Minimization Optimization ResuIts Parameter Estimates

上表是参数估计表,说明参数的最小一乘估计是a=-7.333303,b=0.666666。式(8-11)就是这样算出来的。

LAD回归不一定用于线性回归模型,也可以用于非线性回归模型。

例8.22 对例8.20的数据作LAD回归。

解 可采用如下程序:

提交此程序后得到的主要输出如下:

上表说明经过25次迭代后最优化过程收敛,目标函数达到最小值11.8769。

Optimization ResuIts Parameter Estimates

上表是迭代所得最优解:a=80.172446,b=1.252844,c=0.039813。与nlin过程的最小二乘估计差不多。

练习题1 在例8.22程序中,如果不给出优良初估计,也就是使用下列程序,那么会得到什么结果?

提示:提交如下程序:

迭代结束时得到的目标函数值很大(188.89),参数估计效果不好(b的估计值是负的,与实际不符)。

练习题2 已知数据如表8-21所示,试用LAD回归建立回归方程

表8-21 两自变量的LAD回归数据

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈