资源描述
最小二乘法在数学模型建立与检验中的应用
信息与计算科学专业2008级 周建勤
摘要:本文主要研究了最小二乘法在建立数学模型中的参数学模型中的参数估计数估计,模型检验中的应用。通过给出最小二乘法在Matlab中的代码计算模型参数,误差精确度,并给出检验模型是否具有多重共线,异方差性,序列相关性方法。
关键词:最小二乘法;参数估计;误差精确度;多重共线性;异方差;自相关。
Application of Least-Square Method on establish and test mathematical model
Zhou Jianqin ,Grade 2008,Information and Computing Science
Abstract: In this text we main consider application of Least-Square Method in use of parameter estimation and model checking in mathematical models. By giving the least squares method's code in Matlab to find the model Heteroscedasticity, autocorrelation method parameters,Error accuracy and Test whether the model with multiple collinear heteroscedasticity, autocorrelation method.
Keywords: least squares method; parameter estimation; error accuracy; multicollinearity; heteroscedasticity; autocorrelation.
背景介绍
最小二乘方法最早是有高斯提出的,他用这种方法解决了天文学方面的问题,特别是确定了某些行星和彗星的天体轨迹。最小二乘法普遍适用于各个科学领域,它在解决实际问题中发挥了重要的作用。它在生产实践、科学实验及经济活动中均有广泛应用。
近半个多世纪以来,随着计算机技术的迅速发展,数学的应用不仅在工程技术、自然科学等领域发挥着越来越重要的作用,而且以空前的广度和深度向经济、管理、金融、生物、医学、环境、地质、人口、交通等新的领域渗透,所谓数学技术已经成为当代高新技术的重要组成部分 。数学模型是一种模拟,是用数学符号、数学式子、程序、图形等对实际课题本质属性的抽象而又简洁的刻划,它或能解释某些客观现象,或能预测未来的发展规律,或能为控制某一现象的发展提供某种意义下的最优策略或较好策略。数学模型一般并非现实问题的直接翻版,它的建立常常既需要人们对现实问题深入细微的观察和分析,又需要人们灵活巧妙地利用各种数学知识。这种应用知识从实际课题中抽象、提炼出数学模型的过程就称为数学建模。 不论是用数学方法在科技和生产领域解决哪类实际问题,还是与其它学科相结合形成交叉学科,首要的和关键的一步是建立研究对象的数学模型,并加以计算求解。
在已知系统模型结构时,用系统的输入和输出数据计算系统模型参数的过程。18世纪末德国数学家C.F.高斯首先提出参数估计的方法,他用最小二乘法计算天体运行的轨道。20世纪60年代,随着电子计算机的普及,参数估计有了飞速的发展。参数估计有多种方法,有最小二乘法、极大似然法、极大验后法、最小风险法和极小化极大熵法等。在一定条件下,后面三个方法都与极大似然法相同。最基本的方法是最小二乘法和极大似然法。
由于测量仪器的精度不完善和人为因素及外界条件的影响,测量误差总是不可避 免的。为了提高成果的质量,处理好这些测量中存在的误差问题,观测值的个数往往要多于确定未知量所必须观测的个数,也就是要进行多余观测。有了多余观测,势必在观测结果之间产生矛盾,测量平差的目的就在于消除这些矛盾而求得观测量的最可靠结果并评定测量成果的精度。测量平差采用的原理就是“最小二乘法”。
由于误差的客观存在,真值一般是无法测得的。测量次数无限多时,根据正负误差出现的概率相等的误差分布定律,在不存在系统误差的情况下,它们的平均值极为接近真值。故在实验科学中真值的定义为无限多次观测值的平均值。但实际测定的次数总是有限的,由有限次数求出的平均值,只能近似地接近于真值,可称此平均值为最佳值。
所谓多重共线性(Multicollinearity)是指线性回归模型中的解释变量之间由于存在精确相关关系或高度相关关系而使模型估计失真或难以估计准确。一般来说,由于经济数据的限制使得模型设计不当,导致设计矩阵中解释变量间存在普遍的相关关系。 经济学是非实验型科学,经济数据是被动生成和由从事经济研究的人员被动获得,而且经济数据的获得是不可控的,大多数情况下,人们并不能按照自己的设计与要求获得相应的经济数据。所以,为建模研究而取得的样本数据常常不能提供足够的信息,以至于导致多重共线性的产生。
异方差性(heteroscedasticity )是为了保证回归参数估计量具有良好的统计性质,经典线性回归模型的一个重要假定是:总体回归函数中的随机误差项满足同方差性,即它们都有相同的方差。如果这一假定不满足,则称线性回归模型存在异方差性。
线性回归模型中随机误差项存在序列相关的原因很多,但主要是经济变量自身特点、数据特点、变量选择及模型函数形式选择引起的。
1.经济变量惯性的作用引起随机误差项自相关
2. 经济行为的滞后性引起随机误差项自相关
3. 一些随机因素的干扰或影响引起随机误差项自相关
4. 模型设定误差引起随机误差项自相关
5.观测数据处理引起随机误差项序列相关
文章对经典的最小二乘方法的应用背景、原理与算法进行了介绍,给出了它们在线性模型参数估计中的MATLAB实现,以经典单方程数学模型为对象,介绍建立数学模型的过程,主要采用回归分析的方法的数学模型,采用最小二乘法计算模型中参数,误差估计,并检验模型的多重共线性,异方差,自相关性。
知识预备
最小二乘法
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达 。
最小二乘法原理
在我们研究两个变量(x,y)之间的相互关系时,通常可以得到一系列成对的数据(x1,y1.x2,y2... xm,ym);将这些数据描绘在x -y直角坐标系中,若发现这些点在一条直线附近,可以令这条直线方程如(式1-1)。
Y计= a0 + a1 X (式1-1)
其中:a0、a1 是任意实数 为建立这直线方程就要确定a0和a1,应用《最小二乘法原理》,将实测值Yi与利用(式1-1)计算值(Y计=a0+a1X)的离差(Yi-Y计)的平方和〔∑(Yi - Y计)2〕最小为“优化判据”。
令:φ = ∑(Yi - Y计)(式1-2)
把(式1-1)代入(式1-2)中得:
φ = ∑(Yi - a0 - a1 Xi)2 (式1-3)
当∑(Yi-Y计)平方最小时,可用函数 φ 对a0、a1求偏导数,令这两个偏导数等于零。
(式1-4)
(式1-5) 亦即:
m a0 + (∑Xi ) a1 = ∑Yi (式1-6)
(∑Xi ) a0 + (∑Xi2 ) a1 = ∑(Xi,Yi) (式1-7)
得到的两个关于a0、 a1为未知数的两个方程组,解这两个方程组得出:
a0 = (∑Yi) / m - a1(∑Xi) / m (式1-8)
a1 = [m∑Xi Yi - (∑Xi ∑Yi)] / [m∑Xi2 - (∑Xi)2 )] (式1-9)
这时把a0、a1代入(式1-1)中, 此时的(式1-1)就是我们回归的元线性方程即:数学模型。 在回归过程中,回归的关联式是不可能全部通过每个回归数据点(x1,y1. x2,y2...xm,ym),为了判断关联式的好坏,可借助相关系数“R”,统计量“F”,剩余标准偏差“S”进行判断;“R”越趋近于 1 越好;“F”的绝对值越大越好;“S”越趋近于 0 越好。 R = [∑XiYi - m (∑Xi / m)(∑Yi / m)]/ SQR{[∑Xi2 - m (∑Xi / m)2][∑Yi2 - m (∑Yi / m)2]} (式1-10) * 在(式1-1)中,m为样本容量,即实验次数;Xi、Yi分别任意一组实验X、Y的数值。编辑本段最小二乘法公式
最小二乘法公式 注:以下“平”是指某参数的算数平均值。如:X平——x的算术平均值。 1、∑(X--X平)(Y--Y平)=
∑(XY--X平Y--XY平+X平Y平)=
∑XY--X平∑Y--Y平∑X+nX平Y平=
∑XY--nX平Y平--nX平Y平+nX平Y平=∑XY--nX平Y平;
2、∑(X --X平)^2=
∑(X^2--2XX平+X平^2)=
∑X^2--2nX平^2+nX平^2=∑X^2--nX平^2;
3、Y=kX+b k=((XY)平--X平*Y平)/((X^2)平--(X平)^2),
b=Y平--kX平; X平=1/n∑Xi, (XY)平=1/n∑XiYi;编辑本段最小二乘法拟合
对给定数据点{(Xi,Yi)}(i=0,1,…,m),在取定的函数类Φ 中,求p(x)∈Φ,使误差的平方和E^2最小,E^2=∑[p(Xi)-Yi]^2。从几何意义上讲,就是寻求与给定点 {(Xi,Yi)}(i=0,1,…,m)的距离平方和为最小的曲线y=p(x)。函数p(x)称为拟合函数或最小二乘解,求拟合函数p(x)的方法称为曲线拟合的最小二乘法。最小二乘法的矩阵形式
Ax=b,其中A为nxk的矩阵,x为kx1的列向量,b为nx1的列向量,n>k。这个方程系统称为Over Determined System,如果n<k,这个系统就是Under Determined System。 正常来看,这个方程是没有解的,但在数值计算领域,我们通常是计算 min ||Ax-b||,解出其中的x。比较直观的做法是求解A'Ax=A'b,但通常比较低效。其中一种常见的解法是对A进行QR分解(A=QR),其中Q是nxk正交矩阵(Orthonormal Matrix),R是kxk上三角矩阵(Upper Triangular Matrix),然后min ||Ax-b|| = min ||QRx-b|| = min ||Rx-Q'b||,用MATLAB命令x=R\(Q'*b)可解得x。
数学模型
模型准备
了解问题的实际背景,明确其实际意义,掌握对象的各种信息。用数学语言来描述问题。
模型假设
根据实际对象的特征和建模的目的,对问题进行必要的简化,并用精确的语言提出一些恰当的假设。
模型建立
在假设的基础上,利用适当的数学工具来刻划各变量之间的数学关系,建立相应的数学结构(尽量用简单的数学工具)。
模型求解
利用获取的数据资料,对模型的所有参数做出计算(或近似计算)。
模型分析
对所得的结果进行数学上的分析。
模型检验
将模型分析结果与实际情形进行比较,以此来验证模型的准确性、合理性和适用性。如果模型与实际较吻合,则要对计算结果给出其实际含义,并进行解释。如果模型与实际吻合较差,则应该修改假设,再次重复建模过程。
模型应用
应用方式因问题的性质和建模的目的而异。
多重共线
(1) 经济变量相关的共同趋势
(2)滞后变量的引入
(3)样本资料的限制
多重共线性的影响
(1) 完全共线性下参数估计量不存在
(2)近似共线性下OLS估计量非有效 多重共线性使参数估计值的方差增大,1/(1-r2)为方差膨胀因子(Variance Inflation Factor, VIF)
(3)参数估计量经济含义不合理
(4)变量的显著性检验失去意义,可能将重要的解释变量排除在模型之外
(5)模型的预测功能失效。变大的方差容易使区间预测的“区间”变大,使预测失去意义。 需要注意:即使出现较高程度的多重共线性,OLS估计量仍具有线性性等良好的统计性质。但是OLS法在统计推断上无法给出真正有用的信息。
异方差性
回归模型的随机扰动项ui在不同的观测值中的方差不等于一个常数,Var(ui)= 常数(i=1,2,…,n),或者Var(u ) Var(u )(i j),这时我们就称随机扰动项ui具有异方差性(Heteroskedasticity)。 在实际经济问题中,随机扰动项ui往往是异方差的,但主要在截面数据分析中出现。 例如 (1)调查不同规模公司的利润,发现大公司的利润波动幅度比小公司的利润波动幅度大; (2)分析家庭支出时发现高收入家庭支出变化比低收入家庭支出变化大。 在分析家庭支出模型时,我们会发现高收入家庭通常比低收入家庭对某些商品支出有更大的方差;图5-1显示了一元线性回归中随机变量的方差ui随着解释变量 的增加而变化的情况。 异方差性破坏了古典模型的基本假定,如果我们直接应用最小二乘法估计回归模型,将得不到准确、有效的结果。
1.模型中缺少某些解释变量,从而随机扰动项产生系统模式 由于随机扰动项ui包含了所有无法用解释变量表示的各种因素对被解释变量的影响,即模型中略去的经济变量对被解释变量的影响。如果其中被略去的某一因素或某些因素随着解释变量观测值的不同而对被解释变量产生不同的影响,就会使ui产生异方差性。 例如,以某一时间截面上不同收入家庭的数据为样本,研究家庭对某一消费品(如服装、食品等)的需求,设其模型为: (5-1) 其中Qi表示对某一消费品的需求量,Ii为家庭收入,ui为随机扰动项。ui包括除家庭收入外其他因素对Qi的影响。如:消费习惯、偏好、季节、气候等因素,ui的方差就表示这些因素的影响可能使得Qi偏离均值的程度。在气候异常时,高收入家庭就会拿出较多的钱来购买衣服,而低收入的家庭购买衣服的支出就很有限,这时对于不同的收入水平Ii,Qi偏离均值的程度是不同的,Var(ui) 常数,于是就存在异方差性了。 再比如,以某一时间截面上不同地区的数据为样本,研究某行业的产出随投入要素的变化而变化的关系,建立如下模型: (5-2) 其中Yi表示某行业的产出水平。Li表示劳动力对产出的影响。Ki表示资本对产出的影响,ui表示除劳动力和资本外其他因素对产出水平的影响,诸如地理位置、国家政策等。显然,对于不同的行业 ,这些因素对产出 的影响程度是不 同的,引起 偏离零均值的程度也是不同的,这就出现了异方差。 异方差性容易出现在截面数据中,这是因为在截面数据中通常涉及某一确定时点上的总体单位。比如个别的消费者及其家庭、不同行业或者农村、城镇等区域的划分,这些单位各自有不同的规模或水平,一般情况下用截面数据作样本时出现异方差性的可能性较大。
自相关性
随机误差项的自相关性可以有多种形式,其中最常见的类型是随机误差项之间存在一阶自相关性或一阶自回归形式,即随机误差项只与它的前一期值相关:cov(ut,u t-1) =E(ut,u t-1) =/= 0,或者u t=f(u t-1),则称这种关系为一阶自相关。 一阶自相关性可以表示为 ut= p1 u i-1 + p2 u i-2 + p3 u i-3 + …… p p u t-p + v t 称之为p 阶自回归形式,或模型 存在 p 阶自相关 由于无法观察到误差项 u t,只能通过残差项 e t来判断 u t 的行为。如果 u t或 e t呈出下图(a) -(d) 形式,则表示u t 存在自相关,如果 ut 或et 呈现图中 (e) 形式,则 表示 u t不存在自相关
自相关性
线性回归模型中的随机误差项的序列相关问题较为普遍,特别是在应用时间序列资料时,随机误差项的序列相关经常发生。 自相关性产生的原因: 线性回归模型中随机误差项存在序列相关的原因很多,但主要是经济变量自身特点、数据特点、变量选择及模型函数形式选择引起的。 1.经济变量惯性的作用引起随机误差项自相关 2.经济行为的滞后性引起随机误差项自相关 3.一些随机因素的干扰或影响引起随机误差项自相关 4.模型设定误差引起随机误差项自相关 5.观测数据处理引起随机误差项序列相关 自相关的后果: 线性相关模型的随机误差项存在自相关的情况下,用OLS(普通最小二乘法)进行参数估计,会造成以下几个方面的影响。 从高斯-马尔可夫定理的证明过程中可以看出,只有在同方差和非自相关性的条件下,OLS估计才具有最小方差性。当模型存在自相关性时,OLS估计仍然是无偏估计,但不再具有有效性。这与存在异方差性时的情况一样,说明存在其他的参数估计方法,其估计误差小于OLS估计的误差;也就是说,对于存在自相关性的模型,应该改用其他方法估计模型中的参数。 1.自相关不影响OLS估计量的线性和无偏性,但使之失去有效性 2.自相关的系数估计量将有相当大的方差 3.自相关系数的T检验不显著 4.模型的预测功能失效
MATLAB
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连
matlab开发工作界面
接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。编辑本段
基本应用
MATLAB 产品族可以用来进行以下各种工作: ●数值分析 ●数值和符号计算 ●工程与科学绘图 ●控制系统的设计与仿真 ●数字图像处理技术 ●数字信号处理技术 ●通讯系统设计与仿真
MATLAB在通讯系统设计与仿真的应用
●财务与金融工程 MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。
模型的参数估计
模型的参数估计是在建立了理论模型并收集整理了符合模型的样本数据之后,就可以选择适当的方法估计模型,得到模型的参数估计量,本文主要研究线性回归模型,即用回归分析方法建立线性模型。回归分析的主要目的是要通过样本的回归函数尽可能准确的估计总体回归函数。其中使用最广泛的是普通最小二乘法。现以简单的一元线性回归模型为例运用最小二乘法进行模型的参数估计。
1、什么是一元线性回归模型?
一元回归模型,是最简单的计量经济学模型.在模型中,只有一个解释变量,被解释变量与解释变量之间存在线性关系.
2、一元回归模型的一般形式:
yi=β0+β1xi+μi, i=1,2,…n (1)
其中,y是被解释变量,x是解释变量,β0、β1是待定参数,μ是随机误差项,yi,xi是随机抽取的n组样本观测值.
该方程满足如下条件:
E(μi)=0
Var(μi)=б2
Cov(μi,μj)=0
Cov(xi,ui)=0
i=1,2,...,n j=1,2,…,n ij
3、模型参数估计的任务
(1)一是求得反映变量之间数量关系的参数(即一元线性回归模型yi=β0+β1xi+μi, i=1,2,…n 中的β0,β1)的估计量;
(2)二是求得随机误差项的分布参数.
4、模型参数估计的普通最小二乘法
普通最小二乘法,是应用最多的参数估计方法.
(1)什么是最小二乘原理
在已经获得样本观测值yi,xi(i=1,2,…,n)的情况下,假如参数估计量已经求得记为,我们可以得到直线方程:
i=1,2,…,n (2)
其中,是被解释变量的估计值,它由参数估计量和解释变量的观测值计算得来.
被解释变量的观测值与估计值,在总体上越接近越好.判断的标准是:
二者之差平方和
最小.
这就是最小二乘原理.
[思考]为什么用平方和,而不直接将二者的差简单相加?
(2) 从最小二乘原理,根据样本观测值,具体求参数估计值.
由于, (又 )
=
我们可以知道,Q是二次函数并且是非负数.所以Q的极小值总是存在的.(为什么?)
根据极值存在的必要条件知,
(为什么不是充分条件?)
由此,不难推得:
(4)
进而得到:
(5)
于是解得
(6)
另外,可以将公式(6)简化变形得
(7)
其中,
(3)求随机误差项方差的估计值.
记
为第i个样本观测值的残差.即被解释变量的观测值与估计值之差.则随机误差项方差的估计值为:
(8)
证明从略.
至此, 普通最小二乘法一元线性回归模型的参数估计问题得到解决。
M atlab是一种功能强大的系统分析和仿真工
我们选用它作为实现曲线拟合的软件工具
Matlab语言编程实现最小二乘法的思路:
(1)输入各参量x、y的测量值(以数组形式
,这样便于在计算过程中引用);
(2)用M atlab语言中的plot函数x、y的曲线
图,以此图对比典型曲线图,选择合适的经验
;
(3)按照上例中的方法,选一个系数a,求
b)对它的偏导数,求出其计算表达式;
(4)编写M atlab的M函数,用来完成经验公
待定系数a的计算,该函数输入量为x、y、
量为a、Q,按照由最小二乘法推导出的公式
代入数值由x、y、b计算a、Q;
(5)改变b的取值,多次调用该M函数,比较
结果中的Q值,最小的Q值所对应的a、b值即为
所求。
?改变b的取值#这部分工作也可编一个循
环函数,输入b可能取的区间,计算不同b对应的
Q,再进行比较,保留使Q最小的b及对应的a。
但通常b的改变对Q的影响不是线性的,为方便
观察结果并选择适当的b,?改变b的取值#这部
分工作最好还是编程者自己完成。
最后,只要将得到的函数图像和x、y的曲线
关系图进行对比,就可以直观的看到拟合的效
果了。
另外,Matlab语言提供了一个函数,可以完成
线性曲线拟合,这就是函数polyfi。t函数polyfit
的输入量为x、y、n,其中x、y即为需要建立相互
关系的两个量的测量值,以数组的形式输入,n为
多项式的次数;输出的是多项式系数的行向量,而
得到的多项式是降幂的。
例1
给出一组数据点列入表1-1中,试用线性最小二乘法求拟合曲线,作出拟合曲线.
表1-1 例1的一组数据
xi
-2.5 -1.7 -1.1 -0.8 0 0.1 1.5 2.7 3.6
yi
-192.9 -85.50 -36.15 -26.52 -9.10 -8.43 -13.12 6.50 68.04
解 (1)在MATLAB工作窗口输入程序
>> x=[-2.5 -1.7 -1.1 -0.8 0 0.1 1.5 2.7 3.6];
y=[-192.9 -85.50 -36.15 -26.52 -9.10 -8.43 -13.12 6.50 68.04];
plot(x,y,'r*'),
legend('实验数据(xi,yi)')
xlabel('x'), ylabel('y'),
title('例7.2.1的数据点(xi,yi)的散点图')
运行后屏幕显示数据的散点图(略).
(3)编写下列MATLAB程序计算在处的函数值,即输入程序
>> syms a1 a2 a3 a4
x=[-2.5 -1.7 -1.1 -0.8 0 0.1 1.5 2.7 3.6];
fi=a1.*x.^3+ a2.*x.^2+ a3.*x+ a4
运行后屏幕显示关于a1,a2, a3和a4的线性方程组
fi =[ -125/8*a1+25/4*a2-5/2*a3+a4, -4913/1000*a1+289/100*a2-17/10*a3+a4, -1331/1000*a1+121/100*a2-11/10*a3+a4, -64/125*a1+16/25*a2-4/5*a3+a4,
a4, 1/1000*a1+1/100*a2+1/10*a3+a4, 27/8*a1+9/4*a2+3/2*a3+a4, 19683/1000*a1+729/100*a2+27/10*a3+a4, 5832/125*a1+324/25*a2+18/5*a3+a4]
编写构造误差平方和的MATLAB程序
>> y=[-192.9 -85.50 -36.15 -26.52 -9.10 -8.43 -13.12 6.50 68.04];
fi=[-125/8*a1+25/4*a2-5/2*a3+a4, -4913/1000*a1+289/100*a2-17/10*a3+a4, -1331/1000*a1+121/100*a2-11/10*a3+a4, -64/125*a1+16/25*a2-4/5*a3+a4, a4, 1/1000*a1+1/100*a2+1/10*a3+a4, 27/8*a1+9/4*a2+3/2*a3+a4, 19683/1000*a1+729/100*a2+27/10*a3+a4, 5832/125*a1+324/25*a2+18/5*a3+a4];
fy=fi-y; fy2=fy.^2; J=sum(fy.^2)
运行后屏幕显示误差平方和如下
J=
(-125/8*a1+25/4*a2-5/2*a3+a4+1929/10)^2+(-4913/1000*a1+289/100*a2-17/10*a3+a4+171/2)^2+(-1331/1000*a1+121/100*a2-11/10*a3+a4+723/20)^2+(-64/125*a1+16/25*a2-4/5*a3+a4+663/25)^2+(a4+91/10)^2+(1/1000*a1+1/100*a2+1/10*a3+a4+843/100)^2+(27/8*a1+9/4*a2+3/2*a3+a4+328/25)^2+(19683/1000*a1+729/100*a2+27/10*a3+a4-13/2)^2+(5832/125*a1+324/25*a2+18/5*a3+a4-1701/25)^2
为求使达到最小,只需利用极值的必要条件 ,得到关于的线性方程组,这可以由下面的MATLAB程序完成,即输入程序
>> syms a1 a2 a3 a4
J=(-125/8*a1+25/4*a2-5/2*a3+a4+1929/10)^2+(-4913/1000*a1+289/100*a2-17/10*a3+a4...+171/2)^2+(-1331/1000*a1+121/100*a2-11/10*a3+a4+723/20)^2+(-64/125*a1+16/25*a2-4/5*a3+a4+663/25)^2+(a4+91/10)^2+(1/1000*a1+1/100*a2+1/10*a3+a4+843/100)^2+(27/8*a1+9/4*a2+3/2*a3+a4+328/25)^2+(19683/1000*a1+729/100*a2+27/10*a3+a4-13/2)^2+(5832/125*a1+324/25*a2+18/5*a3+a4-1701/25)^2;
Ja1=diff(J,a1); Ja2=diff(J,a2); Ja3=diff(J,a3); Ja4=diff(J,a4);
Ja11=simple(Ja1), Ja21=simple(Ja2), Ja31=simple(Ja3), Ja41=simple(Ja4),
运行后屏幕显示J分别对a1, a2 ,a3 ,a4的偏导数如下
Ja11=
56918107/10000*a1+32097579/25000*a2+1377283/2500*a3+23667/250*a4-8442429/625
Ja21 =
32097579/25000*a1+1377283/2500*a2+23667/250*a3+67*a4+767319/625
Ja31 =
1377283/2500*a1+23667/250*a2+67*a3+18/5*a4-232638/125
Ja41 =
23667/250*a1+67*a2+18/5*a3+18*a4+14859/25
解线性方程组Ja11 =0,Ja21 =0,Ja31 =0,Ja41 =0,输入下列程序
>>A=[56918107/10000, 32097579/25000, 1377283/2500, 23667/250; 32097579/25000, 1377283/2500, 23667/250, 67; 1377283/2500, 23667/250, 67, 18/5; 23667/250, 67, 18/5, 18];
B=[8442429/625, -767319/625, 232638/125, -14859/25];
C=B/A, f=poly2sym(C)
运行后屏幕显示拟合函数f及其系数C如下
C = 5.0911 -14.1905 6.4102 -8.2574
f=716503695845759/140737488355328*x^3
-7988544102557579/562949953421312*x^2
+1804307491277693/281474976710656*x
-4648521160813215/562949953421312
故所求的拟合曲线为
.
(4)编写下面的MATLAB程序估计其误差,并作出拟合曲线和数据的图形.输入程序
>> xi=[-2.5 -1.7 -1.1 -0.8 0 0.1 1.5 2.7 3.6];
y=[-192.9 -85.50 -36.15 -26.52 -9.10 -8.43 -13.12 6.50 68.04];
n=length(xi);
f=5.0911.*xi.^3-14.1905.*xi.^2+6.4102.*xi -8.2574;
x=-2.5:0.01: 3.6;
F=5.0911.*x.^3-14.1905.*x.^2+6.4102.*x -8.2574;
fy=abs(f-y); fy2=fy.^2; Ew=max(fy),
E1=sum(fy)/n, E2=sqrt((sum(fy2))/n)
plot(xi,y,'r*'), hold on, plot(x,F,'b-'), hold off
legend('数据点(xi,yi)','拟合曲线y=f(x)'),
xlabel('x'), ylabel('y'),
title('例7.2.1的数据点(xi,yi)和拟合曲线y=f(x)的图形')
运行后屏幕显示数据与拟合函数f的最大误差Ew,平均误差E1和均方根误差E2及其数据点和拟合曲线y=f(x)的图形(略).
Ew = E1 = E2 =
3.105 4 0.903 4 1.240 9
多重共线性——PLS偏最小二乘法
经典的最小二乘估计,必需满足一些假设条件,多重共线性就是其中的一种。实际上,解释变量间完全不相关的情形是非常少见的,大多数变量都在某种程度上存在着一定的共线性,而存在着共线性会给模型带来许多不确定性的结果。
设回归模型如果矩阵的列向量存在一组不全为零的数使得, =1,2,…,则称其存在完全共线性,如果, =1,2,…,则称其存在近似的多重共线性。
(偏最小二乘法)
H.Wold在1975年提出的 偏最小二乘法近年来引起广泛的关注,在解决多重共线性方面能很好的达到目的,偏最小二乘法集中了最小二乘法、主成分分析法和典型相关分析的的优点克服了两种方法的缺点。偏最小二乘法吸取了主成分回归提取主成分的思想,但不同的是主成分回归只是从自变量中去寻找主成分与因变量无关,因而主成分与因变量在算法上关系不密切,从而导致最后主成分在实际应用中无法更好的进一步拟合因变量,偏最小二乘法则是从因变量出发,选择与因变量相关性较强而又能方便运算的自变量的线性组合。
偏最小二乘回归分析
偏最小二乘回归分析
考虑p个因变量
L与m个自变量的建模问题。偏最小二
乘回归的基本作法是首先在自变量集中提出第一成分(是的线性组合,且尽可能多地提取原自变量集中的变异信息);同时在因变量集中也提取第一成分并要求与相关程
展开阅读全文