matlab多元非线性回归

上传人:第*** 文档编号:61701211 上传时间:2018-12-10 格式:DOC 页数:23 大小:235.01KB
返回 下载 相关 举报
matlab多元非线性回归_第1页
第1页 / 共23页
matlab多元非线性回归_第2页
第2页 / 共23页
matlab多元非线性回归_第3页
第3页 / 共23页
matlab多元非线性回归_第4页
第4页 / 共23页
matlab多元非线性回归_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《matlab多元非线性回归》由会员分享,可在线阅读,更多相关《matlab多元非线性回归(23页珍藏版)》请在金锄头文库上搜索。

1、matlab回归(拟合)总结前言1、学三条命令polyfit(x,y,n)-拟合成一元幂函数(一元多次)regress(y,x)-可以多元, nlinfit(x,y,fun,beta0) (可用于任何类型的函数,任意多元函数,应用范围最主,最万能的)2、同一个问题,这三条命令都可以使用,但结果肯定是不同的,因为拟合的近似结果,没有唯一的标准的答案。相当于咨询多个专家。3、回归的操作步骤:根据图形(实际点),选配一条恰当的函数形式(类型)-需要数学理论与基础和经验。(并写出该函数表达式的一般形式,含待定系数)-选用某条回归命令求出所有的待定系数。所以可以说,回归就是求待定系数的过程(需确定函数的

2、形式)一、回归命令一元多次拟合polyfit(x,y,n);一元回归polyfit;多元回归regress-nlinfit(非线性)二、多元回归分析对于多元线性回归模型(其实可以是非线性,它通用性极高):设变量的n组观测值为记 ,则 的估计值为排列方式与线性代数中的线性方程组相同(),拟合成多元函数-regress使用格式:左边用b=b, bint, r, rint, stats右边用=regress(y, x)或regress(y, x, alpha)-命令中是先y后x, -须构造好矩阵x(x中的每列与目标函数的一项对应)-并且x要在最前面额外添加全1列/对应于常数项-y必须是列向量-结果是

3、从常数项开始-与polyfit的不同。)其中: b为回归系数,的估计值(第一个为常数项),bint为回归系数的区间估计,r: 残差 ,rint: 残差的置信区间,stats: 用于检验回归模型的统计量,有四个数值:相关系数r2、F值、与F对应的概率p和残差的方差(前两个越大越好,后两个越小越好),alpha: 显著性水平(缺省时为0.05,即置信水平为95%),(alpha不影响b,只影响bint(区间估计)。它越小,即置信度越高,则bint范围越大。显著水平越高,则区间就越小)(返回五个结果)-如有n个自变量-有误(n个待定系数),则b 中就有n+1个系数(含常数项,-第一项为常数项)(b-

4、b的范围/置信区间-残差r-r的置信区间rint-点估计-区间估计 此段上课时不要:- 如果的置信区间(bint的第行)不包含0,则在显著水平为时拒绝的假设,认为变量是显著的*(而rint残差的区间应包含0则更好)。b,y等均为列向量,x为矩阵(表示了一组实际的数据)必须在x第一列添加一个全1列。-对应于常数项-而nlinfit不能额外添加全1列。结果的系数就是与此矩阵相对应的(常数项,x1,x2,xn)。(结果与参数个数:1/5=2/3-y,x顺序-x要额外添加全1列)而nlinfit:1/3=4-x,y顺序-x不能额外添加全1列,-需编程序,用于模仿需拟合的函数的任意形式,一定两个参数,一

5、为系数数组,二为自变量矩阵(每列为一个自变量)有n个变量-不准确,x中就有n列,再添加一个全1列(相当于常数项),就变为n+1列,则结果中就有n+1个系数。x需要经过加工,如添加全1列,可能还要添加其他需要的变换数据。相关系数r2越接近1,说明回归方程越显著;(r2越大越接近1越好)F越大,说明回归方程越显著;(F越大越好)与F对应的概率p越小越好,一定要P x=143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164; y=88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102;

6、 plot(x,y,r+) z=x; x=ones(16,1),x;-常数项 b,bint,r,rint,stats=regress(y,x);-处结果与polyfit(x,y,1)相同b,bint,stats得结果:b = bint = -16.0730 -33.7071 1.5612-每一行为一个区间 0.7194 0.6047 0.8340stats = 0.9282 180.9531 0.0000即;的置信区间为-33.7017,1.5612, 的置信区间为0.6047,0.834; r2=0.9282, F=180.9531, p=0.0。p b,bint,r,rint,stats=

7、regress(Y,X,0.05);-结果相同 b,bint,r,rint,stats=regress(Y,X,0.03); polyfit(x,y,1)-当为一元时(也只有一组数),则结果与regress是相同的,只是命令中x,y要交换顺序,结果的系数排列顺序完全相反,x中不需要全1列。ans =0.7194 -16.0730-此题也可用polyfit求解,杀鸡用牛刀,脖子被切断。3、残差分析,作残差图:rcoplot(r,rint)从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型 y=-16.073+0.7194x能较好的符合原始数据

8、,而第二个数据可视为异常点(而剔除)4、预测及作图: plot(x,y,r+) hold on a=140:165; b=b(1)+b(2)*a; plot(a,b,g)例2 观测物体降落的距离s与时间t的关系,得到数据如下表,求s关于t的回归方程t (s)1/302/303/304/305/306/307/30s (cm)11.8615.6720.6026.6933.7141.9351.13t (s)8/309/3010/3011/3012/3013/3014/30s (cm)61.4972.9085.4499.08113.77129.54146.48法一:直接作二次多项式回归 t=1/30

9、:1/30:14/30; s=11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77 129.54 146.48; p,S=polyfit(t,s,2)p =489.2946 65.8896 9.1329得回归模型为 :方法二-化为多元线性回归:t=1/30:1/30:14/30;s=11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77 129.54 146.48; T=ones(14,1), t, (t.2) %

10、?是否可行?等验证.-因为有三个待定系数,所以有三列,始于常数项 b,bint,r,rint,stats=regress(s,T); b,statsb = 9.1329 65.8896 489.2946stats =1.0e+007 * 0.0000 1.0378 0 0.0000得回归模型为 : %结果与方法1相同 T=ones(14,1),t, (t.2) %?是否可行?等验证.polyfit-一元多次regress-多元一次-其实通过技巧也可以多元多次regress最通用的,万能的,表面上是多元一次,其实可以变为多元多次且任意函数,如x有n列(不含全1列),则表达式中就有n+1列(第一个

11、为常数项,其他每项与x的列序相对应)?此处的说法需进一步验证证例3 设某商品的需求量与消费者的平均收入、商品价格的统计数据如下,建立回归模型,预测平均收入为1000、价格为6时的商品需求量.需求量10075807050659010011060收入1000600 1200500300400130011001300300价格5766875439选择纯二次模型,即 -用户可以任意设计函数 x1=1000 600 1200 500 300 400 1300 1100 1300 300; x2=5 7 6 6 8 7 5 4 3 9; y=100 75 80 70 50 65 90 100 110 60;X=ones(10,1) x1 x2 (x1.2) (x2.2); %注意技巧性?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号