ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:21.71KB ,
资源ID:9271071      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9271071.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据回归分析和拟合的Matlab实现.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据回归分析和拟合的Matlab实现.docx

1、数据回归分析和拟合的Matlab实现数据回归分析和拟合的Matlab实现本次将教程的主要内容包含:一、多元线性回归2#多元线性回归:regress二、多项式回归3#一元多项式:polyfit或者polytool多元二项式:rstool或者rsmdemo三、非线性回归4#非线性回归:nlinfit四、逐步回归5#逐步回归:stepwise一、多元线性回归多元线性回归:1、b=regress(Y, X ) 确定回归系数的点估计值2、b, bint,r,rint,stats=regress(Y,X,alpha) 求回归系数的点估计和区间估计、并检验回归模型bint表示回归系数的区间估计.r表示残差r

2、int表示置信区间stats表示用于检验回归模型的统计量,有三个数值:相关系数r2、F值、与F对应的概率p说明:相关系数r2越接近1,说明回归方程越显著; 时拒绝H0,F越大,说明回归方程越显著;与F对应的概率px=143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164;X=ones(16,1) x;Y=88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102;回归分析及检验 复制内容到剪贴板 代码: b,bint,r,rint,stats=regress(Y,X)b =-16.0

3、730 0.7194bint =-33.7071 1.5612 0.6047 0.8340r = 1.2056 -3.2331 -0.9524 1.3282 0.8895 1.1702 -0.9879 0.2927 0.5734 1.8540 0.1347 -1.5847 -0.3040 -0.0234 -0.4621 0.0992rint = -1.2407 3.6520 -5.0622 -1.4040 -3.5894 1.6845 -1.2895 3.9459 -1.8519 3.6309 -1.5552 3.8955 -3.7713 1.7955 -2.5473 3.1328 -2.24

4、71 3.3939 -0.7540 4.4621 -2.6814 2.9508 -4.2188 1.0494 -3.0710 2.4630 -2.7661 2.7193 -3.1133 2.1892 -2.4640 2.6624stats = 0.9282180.9531 0.0000 1.7437运行结果解读如下参数回归结果为,对应的置信区间分别为-33.7017,1.5612和0.6047,0.834r2=0.9282(越接近于1,回归效果越显著),F=180.9531, p=0.0000,由pt=1/30:1/30:14/30;s=11.86 15.67 20.60 26.69 33.7

5、1 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.1329S = R: 3x3 double df: 11 normr: 0.1157故回归模型为 解法二:化为多元线性回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);b,bint,r,rint

6、,stats=regress(s,T)b = 9.1329 65.8896489.2946bint = 9.0614 9.2044 65.2316 66.5476488.0146490.5747r = -0.0129 -0.0302 -0.0148 0.0732 0.0040 0.0474 -0.0165 -0.0078 -0.0363 -0.0222 0.0046 -0.0059 -0.0237 0.0411rint = -0.0697 0.0439 -0.0956 0.0352 -0.0876 0.0580 0.0182 0.1283 -0.0709 0.0789 -0.0192 0.11

7、39 -0.0894 0.0563 -0.0813 0.0658 -0.1062 0.0335 -0.0955 0.0511 -0.0704 0.0796 -0.0793 0.0675 -0.0904 0.0429 -0.0088 0.0910stats =1.0e+007 * 0.0000 1.0378 0 0.0000故回归模型为:预测及作图Y=polyconf(p,t,S);plot(t,s,k+,t,Y,r)多元二项式回归1、多元二项式回归Matlab命令rstool(x,y,model,alpha) 输入参数说明:x:n*m矩阵;Y:n维列向量;alpha:显著性水平(缺省时为0.0

8、5);mode:由下列4个模型中选择1个(用字符串输入,缺省时为线性模型)2、实例演示说明设某商品的需求量与消费者的平均收入、商品价格的统计数据如下,建立回归模型,预测平均收入为1000、价格为6时的商品需求量需求量 100 75 80 70 50 65 90 100 110 60收入 1000 6001200 500 300 400 1300 1100 1300 300价格 5 7 6 6 8 7 5 4 3 9解法一:选择纯二次模型 复制内容到剪贴板 代码:%直接用多元二项式回归如下x1=1000 600 1200 500 300 400 1300 1100 1300 300;x2=5 7

9、 6 6 8 7 5 4 3 9;y=100 75 80 70 50 65 90 100 110 60;x=x1 x2;rstool(x,y,purequadratic)在x1对应的文本框中输入1000,X2中输入6,敲回车键,此时图形和相关数据会自动更新此时在GUI左边的“Predicted Y1”下方的数据变为88.47981,表示平均收入为1000、价格为6时商品需求量为88.4791点击左下角的Export按钮,将会导出回归的相关参数beta、rmse和residuals到工作空间(workspace)在Export按钮下面可以选择回归类型在Matlab命令窗口中输入 复制内容到剪贴板

10、 代码:beta, rmse将得到如下结果 复制内容到剪贴板 代码:beta = 110.5313 0.1464 -26.5709 -0.0001 1.8475 rmse = 4.5362故回归模型为解法二:将上面饿模型转换为多元线性回归 复制内容到剪贴板 代码:X=ones(10,1) x1 x2 (x1.2) (x2.2);b,bint,r,rint,stats=regress(y,X);b,statsb =110.5313 0.1464-26.5709 -0.0001 1.8475stats = 0.9702 40.6656 0.0005 20.5771三、非线性回归1、非线性回归bet

11、a,r,J=nlinfit(x,y,modelfun, beta0) 非线性回归系数的命令nlintool(x,y,modelfun, beta0,alpha) 非线性回归GUI界面参数说明beta:估计出的回归系数;r:残差;J:Jacobian矩阵;x,y:输入数据x、y分别为矩阵和n维列向量,对一元非线性回归,x为n维列向量;modelfun:M函数、匿名函数或inline函数,定义的非线性回归函数;beta0:回归系数的初值;2、预测和预测误差估计Y,DELTA=nlpredci(modelfun, x,beta,r,J)获取x处的预测值Y及预测值的显著性为1-alpha的置信区间YD

12、ELTA3、实例演示说明解:(1)对将要拟合的非线性模型,建立M函数如下 复制内容到剪贴板 代码:function yhat=modelfun(beta,x)%beta是需要回归的参数%x是提供的数据yhat=beta(1)*exp(beta(2)./x);(2)输入数据 复制内容到剪贴板 代码:x=2:16;y=6.42 8.20 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76;beta0=8 2;(3)求回归系数 复制内容到剪贴板 代码:beta,r ,J=nlinfit(x,y,modelfun,be

13、ta0);betabeta = 11.6036 -1.0641即得回归模型为(4)预测及作图 复制内容到剪贴板 代码:YY,delta=nlpredci(modelfun,x,beta,r ,J);plot(x,y,k+,x,YY,r)四、逐步回归1、逐步回归的命令stepwise(x,y,inmodel,alpha)根据数据进行分步回归stepwise 直接调出分步回归GUI界面输入参数说明x:自变量数据, 阶矩阵;y:因变量数据, 阶矩阵;inmodel:矩阵的列数的指标,给出初始模型中包括的子集(缺省时设定为全部自变量);alpha:显著性水平(缺省时为0.5);2、实例演示分析水泥凝固

14、时放出的热量y与水泥中4种化学成分x1、x2、x3、 x4有关,今测得一组数据如下,试用逐步回归法确定一个线性模型序号 1 2 3 4 5 6 7 8 9 10 11 12 13x1 7 1 11 11 7 11 3 1 2 21 1 11 10x2 26 29 56 31 52 55 71 31 54 47 40 66 68x3 6 15 8 8 6 9 17 22 18 4 23 9 8x4 60 52 20 47 33 22 6 44 22 26 34 12 12y 78.5 74.3 104.3 87.6 95.9 109.2 102.7 72.5 93.1 115.9 83.8 11

15、3.3 109.4 (1)数据输入 复制内容到剪贴板 代码:x1=7 1 11 11 7 11 3 1 2 21 1 11 10;x2=26 29 56 31 52 55 71 31 54 47 40 66 68;x3=6 15 8 8 6 9 17 22 18 4 23 9 8;x4=60 52 20 47 33 22 6 44 22 26 34 12 12;y=78.5 74.3 104.3 87.6 95.9 109.2 102.7 72.5 93.1 115.9 83.8 113.3 109.4;x=x1 x2 x3 x4;(2)逐步回归先在初始模型中取全部自变量 复制内容到剪贴板 代

16、码:stepwise(x,y)Matlab问题!逐步多元非线性回归 以及求极值问题悬赏分:55 - 解决时间:2008-10-8 17:31 1.0 13.0 1.5 0.330 1.4 19.0 3.0 0.366 1.8 25.0 1.0 0.294 2.2 10.0 2.5 0.476 2.6 16.0 0.5 0.209 3.0 22.0 2.0 0.451 3.4 28.0 3.5 0.482这是文献上的一组均匀试验的设计和结果。从左至右:自变量x1,x2,x3;因变量y;试验次数7次。请问能否用Matlab进行多元非线性的回归?(二次多项式)可能的模型y= a + b1*x1 +

17、b2*x2 + b3*x3 + b4*x1*x2 + b5*x1*x3 + b6*x2*x3 + b7*x12 + b8*x22 + b9*x32;最好可以用逐步回归技术或其他技术剔除一些影响小的变量或项。请给出具体的方法。谢谢。其实最终的目的是找出极大值点和极大值(优化),所以,除了用上述多元非线性回归方法外,如有其他方法如用人工神经网络结合遗传算法、SNTO(序贯优化方法)等进行有效处理的,也可,并烦请给出具体命令、方法。多谢!%引言%你的变量是10个,而方程只有7个,做的效果可能会比较差%神经网络等我没接触过%下面只弄那个多项式%第一步data=1.0 13.0 1.5 0.330;1.

18、4 19.0 3.0 0.366;1.8 25.0 1.0 0.294;2.2 10.0 2.5 0.476;2.6 16.0 0.5 0.209;3.0 22.0 2.0 0.451;3.4 28.0 3.5 0.482;x1=data(:,1);x2=data(:,2);x3=data(:,3);y=data(:,4);mat=ones(size(x1),x1,x2,x3, x1.*x2, x1.*x3, x2.*x3, x1.2, x2.2, x3.2;%下面的A就是我们要的常数,分别对应于a,b1,b2,b3,b4,b5,b6,b7,b8,b9A=maty%第一步结束%得到的结果是:A

19、 = 0 0 0.0149 0.1844 -0.0024 0.0510 -0.0024 0 -0.0002 -0.0448发现第一个,第二个以及第8个等于0。先去掉这三个。即a,b1,b7=0%第二步。去掉上述三项再次拟合%你好好比较一下两步之间的mat矩阵的构造就知道怎么弄了。data=1.0 13.0 1.5 0.330;1.4 19.0 3.0 0.366;1.8 25.0 1.0 0.294;2.2 10.0 2.5 0.476;2.6 16.0 0.5 0.209;3.0 22.0 2.0 0.451;3.4 28.0 3.5 0.482;x1=data(:,1);x2=data(:,2);x3=data(:,3);y=data(:,4);mat=x2,x3, x1.*x2, x1.*x3, x2.*x3, x2.2, x3.2; %去掉a,b1,b7对应的项%下面的A就是我们要的常数,分别对应于b2,b3,b4,b5,b6,b8,b9A=maty%第二步结束得到的结果是:A = 0.0149 0.1844 -0.0024 0.0510 -0.0024 -0.0002 -0.0448上述几项,你觉得哪一项可以去掉,你仿上面第二步。就可以了。祝你成功。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1