《回归分析在数模竞赛中的应用-4.doc》由会员分享,可在线阅读,更多相关《回归分析在数模竞赛中的应用-4.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、6 非线性回归(Non-linear Regression)一、非线性回归问题的一般形式和解法设自变量 与因变量 之间有下列关系: ,其中, 是形式已知的非线性函数, 是函数中的未知参数。进行 次观测,得到观测值: , 。求 的估计 ,使得下列平方和 达到最小: 。 是 的函数,所以,这是一个多元函数求最小值的问题。但是,由于非线性函数过于复杂,一般来说,我们不可能通过求偏导数、解下列方程组的方法,来确定 的最小值点: 但是,我们可以用数值方法借助计算机软件来求它的近似解。对于这样一个多元函数求最小值的问题,人们已经提出了许多求近似解的数值方法。这些方法的基本思想是:从一个初始值出发,逐步搜索
2、最优解,搜索的步长逐渐缩小,当搜索的步长或最优解的变化小于事先给定的一个误差水平界限时,搜索结束,给出问题的近似解。在借助计算机软件进行求解的过程中,可能会出现许多问题,例如:逐步搜索超出函数的定义域,发生计算溢出,发生“死循环”,长期得不到解,得到的解不是真正的最优解,等等。要避免发生这样的问题,选择适当的初始值非常重要。最好能够根据问题的实际意义,参考文献资料和类似的先例,确定比较合理的初始值。还有一种方法,是将问题先作一些简化或转换,变成能用其他回归方法求解的问题,用其他方法求出初步的近似解,再用这个解作为非线性回归的初始值。二、非线性回归应用的实例下面看几个非线性回归应用的实例。例12
3、(1990年上海市数模竞赛A题)脑血流量测定为了测定脑血流量,让受试者吸入含有放射性同位素的气体。放射性同位素随血流进入头部,又由脑血流带出。同时,吸入肺部的放射性同位素由呼出气体带出。对头部的放射性计数率和呼出气的放射性计数率同时进行测试,测得一批数据如下:编号时间头部计数率呼出气计数率编号时间头部计数率呼出气计数率11.0015342231205.75225221.2515281534216.00199131.5014681054226.25175141.751378724236.50155152.001272498246.75137162.251162342257.00121072.50
4、1052235267.25107082.75947162277.5094093.00848111287.75830103.2575776298.00730113.5067452308.25650123.7559936318.50570134.0053125328.75500144.2547117339.00440154.5041712349.25390164.753698359.50350175.003266369.75310185.2528843710.0270195.502553 已知头部计数率下降的速率与当时头部的计数率成正比,比例系数称为脑血流量系数。头部计数率上升的速率与当时呼出气的
5、计数率成正比。 要求建立数学模型,求出脑血流量系数。 设 是时刻 时头部的计数率, 是时刻 时呼出气的计数率。 根据题意,有(其中是常数,就是脑血流量系数) 。 同时,根据放射性衰变原理,呼出气的放射性计数率减少的速率与当时呼出气的计数率成正比,即有(其中是常数) 。因此,有联立微分方程组: ,初始条件 。 解这个微分方程组,可得: 。,的表达式都是非线性的。对于 ,可以两边取对数,将它化为线性形式 。 化为线性后,用线性回归的方法求解,解得 , 。 因为在将广义线性方程化为线性时,对因变量作了变换,所以,上面得到的解还不是原问题的真正的解。用这个解作为初始值,进行非线性回归,求得原问题的真正
6、的解为 , 。 将它们代入的表达式,有 。 这是一个不能化为线性的非线性函数,对它进行非线性回归,最后得到, 。例13 肉鸡饲养问题已知每单位重量肉鸡的价格是 (单位:元/kg),每单位重量肉鸡每天的饲料费是 (单位:元/(kg日),每只鸡每天的管理费是 (单位:元/日),研究肉鸡饲养到什么时候出售得到的利润最大。要解决这一问题,首先要知道肉鸡饲养天数与肉鸡重量的函数关系。对肉鸡的饲养天数 (单位:日)和肉鸡的重量 (单位:kg)进行观测,得到一组数据如下: 饲养天数4812162024283236 重量 0.0700.1190.1980.2970.4340.6060.8031.0271.24
7、5饲养天数4044485256606468重量 1.4881.7361.9802.1702.4502.6872.9153.095可以认为,肉鸡重量 与饲养天数 之间的关系,满足下列微分方程及初始条件:其中, 是未知常数。在初始条件下解微分方程,可求得 。这样的函数曲线称为logistic曲线。在上式中,常数 未知,所以,要得到肉鸡重量 与饲养天数 之间的关系式,必须从 与 的观测数据出发,求出 的估计值。这是一个非线性回归问题,为了在逐步搜索时有一个比较合理的初始值,可以先对原回归方程两边取倒数,得到 。令 ,上式化为 。 这是一个拟线性回归方程,可以用求拟线性回归的方法求解,求得,。即有 ,
8、 , 。由于在把非线性回归转换成拟线性回归的过程中,对因变量作了代换,所以,上面得到的解,还不是真正原问题的解。用上述解作为初始值,借助计算机软件,对原问题作非线性回归,计算求得 的更精确的估计值 , , 。这样我们就得到了肉鸡重量 与饲养天数 之间的函数关系 。它的函数图像如下: 下面进一步考虑什么时候出售肉鸡获利最多。 根据已知条件,一只鸡饲养 天后出售,获得净利润为 。 我们的目标是求 的值,使得利润 达到最大。这是一个一元函数求最大值的问题,可以用求导,令导数等于0,解方程 的方法来求解。 为了便于求导,把目标函数式中的求和变成积分。我们知道 。所以 。 。 整理后有 。这是一个关于的
9、一元二次代数方程,用求根公式可求得两个解: , 。将这两个解代入 的二阶导数表达式 ,可以发现 , ,说明 使 达到最大, 使使 达到最小。当然应该取 。 还要求 取什么值时,才有 使得 达到最大。 从 可以解出最佳出售时刻为 。 将 代入 ,还可以求出按最佳时刻出售获得利润的最大值。7 微分方程中未知参数的估计前面的两个例子“脑血流量测定”和“肉鸡饲养问题”,都是先解微分方程,求得函数表达式,然后用回归分析求出表达式中未知参数的估计。但是,在许多实际问题中,微分方程往往很复杂,无法求出精确的解析函数表达式解,只能求出近似的数值解。对于这样的问题,需要从观测数据出发,直接求微分方程中未知参数的
10、估计。设 是自变量, 是因变量,它们满足下列微分方程组:其中,是未知参数。 如果 的值已经给定,同时已知微分方程组的初始条件,就可以用数值方法(例如Runge-Kutta法,Hamming法,等等)求出微分方程组的解: 。但是,实际上 是未知参数,需要从观测数据出发进行估计。设对自变量和因变量进行了次观测,得到观测值 , 。我们的目标是:要求的估计,使得下列加权平方和达到最小: 。其中 是因变量 的加权系数。因为问题中有多个因变量,每个因变量的实际意义不一样,量纲单位大小不一样,对精度的要求也不一样,所以,在求最小二乘估计时,必须对各个因变量加上不同的权,变成求加权平方和最小值的问题。加权系数
11、 越大,的估计越精确;加权系数 越小,的估计越不精确。一般取 ,其中 是 的样本标准差。求微分方程中未知参数的估计,类似于作非线性回归:从 的一组初始值出发,通过逐步搜索,求 的最小值点。与非线性回归不同的是,每搜索一步,就要根据当前的 的值,用数值方法解一次微分方程。显然,求微分方程中未知参数的估计,比起非线性回归来,计算速度要慢得多,而且初始值的适当选取,显得更加重要。例14 一个求微分方程未知参数估计的例子 设变量 满足下列微分方程组 。 有观测数据01234560.00001.68292.72790.5645-3.7840-5.7535-1.95592.00001.0806-0.8323-1.9800-1.30730.56731.9203求微分方程中未知参数 的估计。 按照前面介绍的解法,用计算机软件求解,求解中,取 的加权系数,取 的加权系数,最后求得 的估计为, 。下面是用估计值代入得到的 和 的函数图像: 从图像可以看出,函数曲线与观测值点符合得很好,参数估计的结果还是比较令人满意的。
限制150内