用matlab进行matlab非线性曲线拟合拟合 nlinfit函数 X=[ 4 7; 8 7; 12 7; 16 7; 4 28; 8 28; 12 28; 16 28; 4 60; 8 60;

matlab的nlinfit问题
matlab的nlinfit问题a=[1,1,1];>> r=15:49;>> b1=[ 0................................... ];>> fun=inline('1/sqrt(2*pi*a(2).^2)*exp(-1/2*(log(r-15)-a(1)).^2/a(2)^2)*a(3)','r','a');>> ae=nlinfit(t,c,f,a);程序显示错误:Error using ==> nlinfit at 127MODELFUN should return a vector of fitted values the same length as Y.然后我简化方程fun=inline('exp(log(r))','r','a'),还是那个错,r,b1都是35个
我的matlab告诉我这错.MODELFUN must be a function that returns a vector of fitted values the same size as Y (1-by-35). The model function youprovided returned a result that was 1-by-3.One common reason for a size mismatch is using matrix operators (*, /, ^) in your function instead of the correspondingelementwise operators (.*, ./, .^).如果你还不知道自己哪错了,就试试用fun=inline('exp(log(r))','a','r')再算一下(注意我给你的函数和你写的是不一样的)然后应该就知道了.
我有更好的回答:
剩余:2000字
与《matlab的nlinfit问题》相关的作业问题
t = [0.25,0.5,0.75,1,1.5,2,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16];y = [30,68,75,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4];mf=@(cs,t1)cs
mu=inline('beta(1)./(1+(beta(1)/)*exp(-beta(2)*(t-1981)))','beta','t');t=[83,];y=[22,];beta=nlinfit(t,y,mu,[10
建立函数文件:function y = myfun(beta,x) y = 2.350176*beta(1)*(1-1/beta(2))*(1-(1-x(:,1).^(1/beta(2))).^beta(2)).^2.*(x(:,1).^(-1/beta(2))-1).^(-beta(2)).*x(:,1).^(-1/
Error using ==& mtimes Inner matrix dimensions must agree.请问是什么原因?那个向量的维数不一致了?x 要用点乘
x=[1.2 0. 0.8]; y=[0.03 1 5.03 15.05 19.97 30.3]; 拟合函数为y=-k*ln(x+a)-b;nlinfit 非线性参数拟合 x=[1.2 0. 0.92
f=inline('(a(1)-a(4))./(1+(x./a(3)).^a(2))+a(4)','a','x'); % 公式错误,其他没事x=0.5:0.1:1.5;y=[0,0,0.006,0.175,1.05,1.7,1.85,1.9,1.95,1.975,2];a0=[0,2,1,3];b=nlinfit(x,
楼主为什么要这么写?betafit=nlinfit(X,y',@modelfun,beta0);首先X,应该写成x.另外y',改成y结果为>> betafitbetafit = 11.1希望楼主采纳.
错误信息是矩阵大小不统一 你仔细看看你的各个参数的大小size是否一致
不是模拟,是拟合对于这个问题,可以用Matlab的nlinfit()来拟合拟合结果:a = & &5.8613;b= & &0.0677;c= & -0.6044;d= & &0.3484;e= & -0.0387 再问: 真是帮大忙了,谢
首先,提供的四组(xi,yi)坐标值是不够的,即使拟合其正确性是不高的,最好能提供十组数据.其次,可以将n=A+B/x^2+C/x^4代人y=(1-n)^2/(1+n)^2后,进行拟合其系数A、B、C最后,可以用Matlab的nlinfit()或lsqcurvefit()来拟合.
1、利用数组的概念,来处理多变量的问题,即x用x(1),y用x(2)2、自定义函数f(a,x)3、根据x、y、z的若干个组数据,利用Matlab的&nlinfit()函数,求出a1,a2,a3.代码见附件 再问: 恩恩恩,我先试试~之前用regress,效果不理想,误差很大~ 再答: regress()主要用
X=[1 2 3 4 5 6 7 8 9 10 11];Y=[100.000 99.1 99.4 103.4 104.9 104.6];eq=inline('a(1)+a(2)*x+a(3)*x.^2'
ln->logMatlab中ln就是log你的初值我改成000了,111的话,计算出来有一小部分虚数成份.另外最后一个plot我也改了一下,你的xx只有一个值啊,我也就直接改成x做图了.因为你的yy也是由x计算的.改成: x=[1.2 0. 0.9251 0.
一般去随机数,但很多都是局部收敛的,需要给出初值比较接近实际解.只能参考其他类似的 再问: 嗯,谢谢,你说的意思我大概懂了,但有的系数不好算啊,比如你看下我在补充里的程序,有5个系数,怎么算呢?是列5个方程解的吗? 再答: 不一定都得算,你的程序呢 或者函数表达式呢? 就是尽量采用最简单的方法求出大约值就可以, 比如看
  你好  对于非鲁棒性拟合,nlinfit使用Levenberg–Marquardt algorithm的非线性最小二乘法.而对于稳健拟合,nlinfit使用一种算法(没有具体的名字,只有一个参考文献,具体见matlab help中队此函数的介绍)不断迭代地整修加权非线性回归,每一次迭代的权重都是基于从上一次迭代中观
拟合函数的输入有两个参数,第一个应该是你要拟合的参数,对应于这里a第二个是输入的自变量,对应于这里的x多维的可以用多列数据,注意行数和y相同还要注意,函数式里向量间的*,\,^,要用.*,.\,.^x=[1,1;2,2;-1,-2;0,-1;3,6];y=[10;23;-8;-3;19];a=[0.5 0.5 0.5
x=x';y=y';myfunc=inline('beta(2)+(beta(1)-beta(2))./(1+exp((x-beta(3))/beta(4)))','beta','x');beta=nlinfit(x,y,myfunc,[5 1 5 5]);betabeta =-1.0 377.0
这个函数的初始值取所求值附近就可以,这个函数就是有这个缺点,你选择不同的初始值往往得到的结果不一样.
简单方法是用拟合工具箱:cftool拟合后左边框里面就有残差分析结果 再问: 我是多元非线性拟合,如何进行呢,里面都是一些指定的函数啊,我是用nlinfit已经拟合了,但不会画图, 再答: nilinfit拟合例子。并做图 T=[27.0 30.0 33.0 36.0 43.0]; E=[0.10使用MATLAB7进行非线性拟合,拟合完出现??? Input must be real. Error in ==& erf at 18等,具体见补充_百度知道
使用MATLAB7进行非线性拟合,拟合完出现??? Input must be real. Error in ==& erf at 18等,具体见补充
使用MATLAB7 进行非线性拟合,自己写的
function f=fun(beta,x)
Cs=beta(1);
Da=beta(2);
C0=beta(3);
f=Cs-(Cs-C0).*erf(x1./sqrt(4.*Da.*28));
x=[1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24]'
y=[0.334 0.374 ...
我有更好的答案
function f=fun(beta0,x)
Cs=beta(1);Da=beta(2);C0=beta(3);
f=Cs-(Cs-C0).*erf(x1./sqrt(4.*Da.*28));endx=[1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24]';y=[0.334 0.374 0.246 0.229 0.229 0.213 0.175 0.151 0.137 0.110 0.090 0.076 0.064 0.058 0.062 0.058 0.056]';beta0=[0.08 0.01 0.02]';[beta,r,j]=nlinfit(x,y,@fun,beta0);
为您推荐:
其他类似问题
matlab7的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。第3章 回归分析1/24普通高等院校计算机课程规划教材MATLAB数据分析方法李柏年 张孔生 吴礼斌 主编 丁 华 参编MATLAB数据分析方法(机械工业出版社) 第3章 回归分析2/24回归分析是最常用的数据分析方法之一。它 是根据已得的试验结果以及以往的经验来建立统 计模型,并研究变量间的相关关系,建立起变量 之间关系的近似表达式即经验公式,并由此对相 应的变量进行预测和控制等.3.1一元回归模型3.1.1一元线性回归模型 1.一元线性回归的基本概念MATLAB数据分析方法(机械工业出版社) 第3章 回归分析3/24设Y是一个可观测的随机变量,它受到一个非随机变 量因素x和随机误差?的影响。若Y与x有如下线性关系: (3.1.1) Y ? ? 0 ? ?1 x ? ? , 且E?=0,D?=?2,则称(3.1.1)为一元线性回归模型.其中?0,?1为回归系数,x为自变量,Y为因变量. 通常,我们对总体(x,Y)进行n次的独立观测,获得n 组数据(称为样本观测值) (x1,y1),(x2,y2),…,(xn,yn) 利用最小二乘法可以得到回归模型参数?0,?1的最 ? ,? ? 小二乘估计 ? 0 1MATLAB数据分析方法(机械工业出版社) 第3章 回归分析? ? y ? x? ?, ? ?? 0 1 ?? ? ??1 ? Lxy Lxx .4/24(3.1.2)Lxx ? ? ( xi ? x ) , Lxy ? ? ( xi ? x )( yi ? y )2 i ?1 n其中1 1 n x ? ? xi, y ? n i ?1 n?y,i ?1 inni ?1于是建立经验公式模型:? ?? ?x ? ?? y 0 1(3.1.3)一元线性回归分析的主要任务:一是利用样本观测值 对回归系数?0,?1和?作点估计;二是对方程的线性关 系即?1作显著性检验;三是在x=x0处对Y作预测等. 以下举例说明建立经验公式(3.1.3)的方法。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析5/24例3.1.1 近10年来,某市社会商品零售总额与职工工 资总额(单位:亿元)数据如下表3.1。 表3.1 商品零售总额与职工工资表 (单位:亿元)工资总额 零售总额 23.8 41.4 27.6 51.8 31.6 61.7 32.4 67.9 33.7 68.7 34.9 77.5 43.2 95.9 52.8 137.4 63.8 155.0 73.4 175.0建立社会商品零售总额与职工工资总额数据的回归模型 解:% 首先输入数据x=[23.80,27.60,31.60,32.40,33.70,34.90,43.20,52.80,63.80,73.40]; y=[41.4,51.8,61.70,67.90,68.70,77.50,95.90,137.40,155.0,175.0];MATLAB数据分析方法(机械工业出版社) 第3章 回归分析 % 然后作散点图 plot(x,y,'*') xlabel('x(职工工资总额)') ylabel('y(商品零售总额)')180 160 1406/24%作散点图 %横坐标名 %纵坐标名y(商品零售总额 )120100806040 20304050 x(职 工 工 资 总 额 )607080图3.1商品零售总额与职工工资总额数据散点图 MATLAB数据分析方法(机械工业出版社) 第3章 回归分析% 计算最佳参数 Lxx=sum((x-mean(x)).^2); Lxy=sum((x-mean(x)).* (y-mean(y))); b1=Lxy/L b0=mean(y)-b1*mean(x); 运行后得到: b1 = 2.7991,b0 = -23.5493 所以,回归模型为7/24? ? 2.7991 y x ? 23.5493问题1:当x=0,得到y=-23.5493亿元如何理解? 问题2:如何检验E?=0? D?=?2?MATLAB数据分析方法(机械工业出版社) 第3章 回归分析2. 一元多项式回归模型8/24在一元回归模型中,如果变量y与x的关系是n次多 项式,即y ? an x ? an?1xnn?1? ... ? a1x ? a0 ? ?(3.1.4)其中?是随机误差,服从正态分布N(0,?2) a0,a1,…,an为回归系数,则称(3.1.4)为多项式回归模型. (1)多项式曲线拟合 在MATLAB7的统计工具箱中,有多项式曲线拟合的 命令polyfit,其调用格式有以下三种:MATLAB数据分析方法(机械工业出版社) 第3章 回归分析9/24p=polyfit(x,y,n) [p,S]=polyfit(x,y,n) [p,S,mu]=polyfit(x,y,n) 其中,输入x,y分别为自变量与因变量的样本观测数据 向量;n是多项式的阶数,对于一元线性回归则取n=1; 输出p是按照降幂排列的多项式的系数向量,S是一个 矩阵,用于估计预测误差或供MATLAB的其它函数的 调用 。例3.1.2 某种合金中的主要成分为A,B两种金属,经过 试验发现:这两种金属成分之和x与合金的膨胀系数y 有如下关系,建立描述这种关系的数学表达式.MATLAB数据分析方法(机械工业出版社) 第3章 回归分析表3.2 合金的膨胀系数表xy10/24373.437.5 383 338.5 392.27 2.139.5 4040.5 411.841.5 421.942.5 431.83 1.53 1.72.35 2.54 2.9解:%首先输入数据 x=37:0.5:43; y=[3.4,3,3,2.27,2.1,1.83,1.53,1.7,1.8,1.9,2.35,2.54,2.9]; %其次做散点图 plot(x,y,‘*’) (2.1.7) xlabel('x(两种合金之和)') %横坐标名 ylabel(‘y(合金膨胀系数)’) %纵坐标名 %然后根据散点图猜测曲线类别MATLAB数据分析方法(机械工业出版社) 第3章 回归分析11/24由于散点图呈抛物线,故选择二次函数曲线进行拟合. p = polyfit(x,y,2) %注意取n=2 运行得到回归系数: p=0.6 271.6231 即二次回归模型为:? ? 0.166x ?13.3866x ? 271.6231 y2MATLAB数据分析方法(机械工业出版社) 第3章 回归分析 (2) 多项式回归的预测与置信区间多项式曲线拟合预测的命令polyval,其调用格 式有以下两种:12/24Y=polyval(p,x0) [Y,Delta]=polyconf(p,x0,S,alpha) 其中,输入p,S是由多项式拟合命[p,S]=polyfit(x,y,n) 的输出,x0是要预测的自变量的值.输出Y是polyfit所 得的回归多项式在x处的预测值。 如果输入数据的误差相互独立,且方差为常数,则 Y±Delta至少包含95%的预测值;alpha缺省时为0.05。(Y-Delta, Y+Delta)即95%的置信区间MATLAB数据分析方法(机械工业出版社) 第3章 回归分析13/24(3) 多项式回归的GUI界面命令 多项式回归的GUI界面命令polytool,其典型调用格式 polytool(x,y,n,alpha) 其中,输入x,y分别为自变量与因变量的样本观测数据 向量;n是多项式的阶数;置信度为(1-alpha)%, alpha缺省时为0.05。 该命令可以绘出总体拟合图形以及(1-alpha) 上、下置信区间的直线(屏幕上显示为红色).此 外,用鼠标拖动图中纵向虚线,就可以显示出对于 不同的自变量数值所对应的预测状况,与此同时图 形左端数值框中会随着自变量的变化而得到的预报 数值以及(1-alpha) 置信区间长度一半的数值。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析14/24MATLAB数据分析方法(机械工业出版社) 第3章 回归分析15/24例3.1.3为了分析X射线的杀菌作用,用200千伏的X 射线来照射细菌,每次照射6分钟用平板计数法估 计尚存活的细菌数,照射次数记为t,照射后的细 菌数y如表3.3所示。表3.3 X射线照射次数与残留细菌数t y 1 352 2 211 3 197 4 160 5 142 6 106 7 104 8 60 9 56 10 38 11 36 12 32 13 21 14 19 15 15数据来源:http//www.ilr.cornell.edu/~hadi/RABE试求:① 给出y与t的二次函数回归模型; ② 在同一坐标系内做出原始数据与拟合结果的散点图 ③ 预测t=16时残留的细菌数; ④ 根据问题实际意义选择多项式函数是否合适?MATLAB数据分析方法(机械工业出版社) 第3章 回归分析 解:% 输入原始数据t=1:15; y=[352,211,197,160,142,106,104,60,56,38,36,32,21,19,15]; p=polyfit(t,y,2); % 作二次多项式回归 y1= polyval(p,t); % 模型估计与作图 plot(t,y,'-*',t,y1,'-o'); legend('原始数据','二次函数') xlabel('t(照射次数)') ylabel('y(残留细菌数)') t0=16; yc1= polyconf(p,t0) % 预测t0=16时残留的细菌数16/24运行结果为p =1.4 347.8967,yc1 =39.0396即二次回归模型为y1 ? 1..67MATLAB数据分析方法(机械工业出版社) 第3章 回归分析17/24原始数据与拟合结果的散点图如图3.3所示,从 图形可知拟合效果较好.图 3.3 原始数据与拟合结果的散点图yc1 =39.0396,表明照射16次后,用二次函数计算出 细菌残留数为39.0396,显然与实际不相符合。 调用多项式回归的GUI界面命令polytool,如图3.4MATLAB数据分析方法(机械工业出版社) 第3章 回归分析18/24图 3.4 二次函数预测交互图根据实际问题的意义可知:尽管二次多项式拟合效 果较好,但是用于预测并不理想。因此如何根据原 始数据散点图的规律,选择适当的回归曲线是非常 重要的,因此有必要研究非线性回归分析.MATLAB数据分析方法(机械工业出版社) 第3章 回归分析 3.1.2一元非线性回归模型 1. 非线性曲线选择19/24为了便于正确地选择合适的函数进行回归分析 建模,我们给出通常选择的六类曲线如下所示: (1)双曲线1/y=a+b/x(见图3.5)。图3.5双曲线MATLAB数据分析方法(机械工业出版社) 第3章 回归分析 (2) 幂函数曲线y=axb, 其中x&0,a&0(图3.6)。20/24图3.6 幂函数曲线(3)指数曲线y=aebx,其中参数a&0(见图3.7)。图3.7 指数曲线MATLAB数据分析方法(机械工业出版社) 第3章 回归分析(4)倒指数曲线y ? aeb / x21/24,其中a&0(图3.8)。图3.8 倒指数曲线(5)y=a+blnx (见图3.9)。图3.9 对数曲线MATLAB数据分析方法(机械工业出版社) 第3章 回归分析(6)S型曲线1 y? ? x (见图3.10)。 a ? be22/24图3.10 S型曲线对于非线性回归建模通常有两种方法:一是通过适 当的变换转化为线性回归模型,例如双曲线模型(图3.5) 。如果无法实现线性化,可以利用最小二乘法直接建立 非线性回归模型,求解最佳参数。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析23/242.非线性回归的MATLAB命令 MATLAB统计工具箱中实现非线性回归的命令有 nlinfit、nlparci、lpredci和nlintool。下面逐一介绍 调用格式。 非线性拟合命令nlinfit,调用格式: [beta,r,J] = nlinfit(x,y,'model',beta0) 其中,输人数据x,y分别为n×m矩阵和n维列向量, 对一元非线性回归,x为n维列向量,model是事先用 M文件定义的非线性函数,beta0是回归系数的初值( 需要通过解方程组得到),beta是估计出的最佳回归系 数,r是残差,J是Jacobian矩阵,它们是估计预测误 差需要的数据。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析24/24非线性回归预测命令nlpredci,调用格式: ypred = nlpredci(FUN,inputs,beta,r,J) 其中,输入参数beta,r,J是非线性回归命令nlinfit的输 出结果, FUN 是拟合函数,inputs是需要预测的自变 量;输出量ypred是inputs的预测值。 非线性回归置信区间命令nlparci,调用格式: ci = nlparci(beta,r,J,alpha) 输入参数beta,r,J就是非线性回归命令nlinfit输出的 结果,输出ci是一个矩阵,每一行分别为每个参数的 (1-alpha)% 的置信区间,alpha缺省时默认为0.05.MATLAB数据分析方法(机械工业出版社) 第3章 回归分析25/24非线性回归的GUI界面命令nlintool,典型调用格式 nlintool(x,y,fun,beta0) 其中参数x,y,fun,beta0与命令nlinfit中的参数含义相同.例3.1.4. 在M文件中建立函数y=a(1-be-cx),其中 a,b,c为待定的参数。 解:fun=inline('b(1)*(1-b(2)*exp(-b(3)*x))','b','x'); 此处,将b看成参变量,b(1),b(2),b(3)为其分量. 例3.1.5 炼钢厂出钢时所用盛钢水的钢包,由于钢水对 耐火材料的侵蚀,容积不断增大,我们希望找出使用 次数与增大容积之间的函数关系.实验数据如表3.4。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析表3.4 钢包使用次数与增大容积使用次数(x) 增大容积(y) 使用次数(x) 2 6.42 10 3 8.2 11 4 9.58 12 5 9.5 13 6 9.7 14 7 10 15 8 9.93 1626/249 9.99增大容积(y)10.4910.5910.610.810.610.910.76(1)建立非线性回归模型1/y=a+b/x; (2)预测钢包使用x0=17次后增大的容积y0; (3)计算回归模型参数的95%的置信区间。MATLAB脚本程序如下: x=[2:16]; y=[6.42,8.2,9.58,9.5,9.7,10,9.93,9.99,10.49,10.59, 10.6,10.8,10.6,10.9,10.76];MATLAB数据分析方法(机械工业出版社) 第3章 回归分析27/24%建立非线性双曲线回归模型 b0=[0.084,0.1436]; % 初始参数值 fun=inline('x./(b(1)*x+b(2))','b','x'); [beta,r,J]=nlinfit(x,y,fun,b0); beta % 输出最佳参数 y1=x./(0.0845*x+0.1152); % 拟合曲线 plot(x,y,'*',x,y1,'-or') legend('原始数据','拟合曲线') 注意:初始值要先计算后,才能得到上面程序中的 b0,由于确定两个参数值,因此我们选择已知数据 中的两点(2,6.42)和(16,10.76)代入设定方程, 得到方程组MATLAB数据分析方法(机械工业出版社) 第3章 回归分析2 ? 6.42 ? ? ? 6.42(2a ? b) ? 2 ? 2a ? b ?? ? 16 ?10.76(16a ? b) ? 16 ?10.76 ? ? 16a ? b ?28/24上述方程组有两种解法:手工方法与Matlab方法。 下面用Matlab方法解方程组: [a,b]=solve('6.42*(2*a+b)=2','10.76*(16*a+b)=16') 输出为 a= . b= .MATLAB数据分析方法(机械工业出版社) 第3章 回归分析29/24图3.11钢包使用次数与增大容积的非线性拟合图在例3.1.5中,预测钢包使用17次后增大的容积,可 在执行上面的程序中,继续输入命令 ypred=nlpredci(fun,17,beta,r,J) 得到: ypred =10.9599 即钢包使用17次后增大的容积10.9599。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析30/24求回归模型参数的95%的置信区间,只要继续添加程序 ci = nlparci(beta,r,J) 运行后得到 ci =0.6 0.0 即回归模型 中参数a,b的95%的置信区间分别为 (0.6) 与(0.0). 我们求出的最佳参数分别为 a=0.0845,b=0.1152均属 于上述置信区间。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析31/24图3.12 钢包使用次数与增大容积的非线性拟合交互图图3.12给出钢包使用次数与增大容积的非线性拟合的 交互图形,图中的的圆圈是实验的原始数据点,两条 虚线为95%上、下置信区间的曲线(屏幕上显示为红 色),中间的实线(屏幕上显示为绿色)是回归模型 曲线,纵向的蓝色虚线显示了在自变量为8.9502,横 向的虚线给出了对应的预测值为10.2734.MATLAB数据分析方法(机械工业出版社) 第3章 回归分析32/24例3.1.6 对例题3.1.3进行非线性回归,并预测照射 16次后细菌残留数目,给出模型参数的95%的置信 区间,绘出模型交互图形. 解:我们选取函数y=aebt进行非线性回归,该方程的两 个参数具有简单的物理解释,a表示实验开始时的细菌 数目,b表示细菌死亡(或衰变)的速率。 MATLAB脚本程序如下:t=1:15; y=[352 211 197 160 142 106 104 60 56 38 36 32 21 19 15]; fun=inline('b(1)*exp(b(2)*t)','b','t') % 非线性函数 beta0=[148,-0.2]; % 参数初始值 [beta,r,J]=nlinfit(t,y,fun,beta0); % 非线性拟合 beta % 输出最佳参数 y1=nlpredci(fun,t,beta,r,J); % 模型数值计算 MATLAB数据分析方法(机械工业出版社) 第3章 回归分析plot(t,y,'*',t,y1,'-or'), legend('原始数据','非线性回归') xlabel('t(照射次数)') ylabel('y(残留细菌数)') ypred = nlpredci(fun,16,beta,r,J) % 预测残留细菌数 ci = nlparci(beta,r,J) % 参数95%区间估计 nlintool(t,y,fun,beta0) % 作出交互图形33/24运行后结果如下: beta = 400.0 即,最佳参数为:a=400.0904,b=-0.2240 故非线性回归模型为y ? 400.tMATLAB数据分析方法(机械工业出版社) 第3章 回归分析34/24预测为:ypred =11.1014 即,照射16次后细菌残留数目为11.1014,该预测符 合实际,显然比例3.1.3中多项式回归的结果合理。 ci =355.6 -0.9 即参数a置信度为95%的置信区间 (ci的第一行)为: [355.2481 , 444.9326] 参数b的置信度为95%的置信区间 (ci的第二行)为 [-0.9] 显然,最佳参数a=400.0904,b=-0.2240,均属于各 自置信度为95%的置信区间。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析35/24图3.13原始数据与非线性回归图形图3.14 原始数据与非线性回归GUI图形MATLAB数据分析方法(机械工业出版社) 第3章 回归分析36/24图3.14 原始数据与非线性回归GUI图形从交互图形3.14可以看出:圆圈为原始数据,两条虚线 (屏幕上显示红色)是置信区间曲线;两条虚线内的实 线(屏幕上显示绿色)是回归模型曲线;纵向虚线指示 照射8次,此时对应的水平虚线表示模型得到的残留细 菌数为:66.6451。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析37/243.1.3一元回归建模实例例3.1.7在四川白鹅的生产性能研究中,得到如下一组 关于雏鹅重(g)与70日龄重(g)的数据,试建立70日 龄重(y)与雏鹅重(x)的直线回归方程,计算模型误差 平方和以及可决系数,当雏鹅重分别为:85,95 ,115 时预测其70日龄重,以及置信区间。表3.5 四川白鹅重与70日龄重测定结果编号 1 2 3 4 5 6 7 8(单位:g)9 10 11 12雏鹅重(x)70日龄重 (Y )80869890120102958311310511010020 80 80 60MATLAB数据分析方法(机械工业出版社) 第3章 回归分析38/24解:(1)作散点图。以雏鹅重(x)为横坐标,70日龄重(y)为 纵坐标作散点图,如图2-14。 在MATLAB命令窗口中输入: x=[80 86 98 90 120 102 95 83 113 105 110 100]'; % 雏鹅重y=[20 80 80 60]'; %70日龄重plot(x,y,'*') xlabel('x(雏鹅重)') ylabel('y(70日龄重)')%作散点图 %横坐标名 %纵坐标名图3.15 四川白鹅的雏鹅重与70日龄重散点图和回归直线图MATLAB数据分析方法(机械工业出版社) 第3章 回归分析39/24由图形3.15可见白鹅的70日龄重与雏鹅重间存在直线 关系,且70日龄重随雏鹅重的增大而增大。因此, 可认为y与x符合一元线性回归模型。 (2)建立直线回归方程。在MATLAB中调用命令 polyfit,从而求出参数?0,?1的最小二乘估计. 在MATLAB命令窗口中继续输入:n= size(x,1) % 计算样本容量 [p,s]=polyfit(x,y,1); % 调用命令polyfit计算回归参数 y1=polyval(p,x); % 计算回归模型的函数值 hold on plot(x,y1) % 作回归方程的图形,结果如图3.15 p % 显示参数的最小二乘估计结果 p=582.2 MATLAB数据分析方法(机械工业出版社) 第3章 回归分析 即参数(? 0 , ?1的最小二乘估计为 )? ? 582.1850 ? ? 21.7122 ? ,? 0 140/24所以70日龄重(y)与雏鹅重(x)的直线回归经验方程为? ? 582.2x y(3)误差估计与决定系数。在MATLAB命令窗口中继续输入: TSS=sum((y-mean(y)).^2) %计算总离差平方和 RSS=sum((y1-mean(y)).^2) %计算回归平方和 ESS=sum((y-y1).^2) %计算残差平方和 R2=RSS/TSS; %计算样本决定系数R2.MATLAB数据分析方法(机械工业出版社) 第3章 回归分析 输出: TSS =8.5 RSS =7.5 ESS =3.4 R2= 0.9553 TSS =8.5 RSS =7.5 ESS =3.4 R2=0.955341/24由于样本决定系数R2=0.9553接近于1,因此模型的 拟合的效果较好。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析42/24(4)回归方程关系显著性的F检验。在MATLAB 命令窗口中继续输入:F=(n-2)*RSS/ESS F1=finv(0.95,1,n-2) F2=finv(0.99,1,n-2) %计算的F统计量 %查F统计量0.05的分位数 %查F统计量0.01的分位数输出结果:F=2.138e+002,F1 =4.9646,F2 =10.0442 为了方便,将以上的计算结果列成表3.6。表3.6 四川白鹅70日龄重与雏鹅重回归关系方差分析表 F0.05 F0.01 自由度(df) 平方和(SS) 均方和(MS) F值回归残差110491.673715.21213.81** 4.9610.04总离差 11MATLAB数据分析方法(机械工业出版社) 第3章 回归分析43/24( 1,10) ? 10.04, 表明四川白鹅70日龄 因为 F ? 213.81 ? F2 ? F0.01 重与雏鹅重间存在显著的线性关系。(5)回归关系显著性的t检验。在MATLAB命令窗口中 继续输入:T=p(2)/sqrt(ESS/(n-2))*sqrt(sum((x-mean(x)).^2))%计算T统计量 T1=tinv(0.975,n-2) %t统计量0.05的分位数 T2=tinv(0.995,n-2) %t统计量0.01的分位数 输出: T =14.622, T1 =2.228, T2 =3.169因为T=14.62&t0.01(10),否定H0,接受H1即四川白鹅70 日龄重(y)与雏鹅重(x)的线性回归系数是显著的,可用所 建立的回归方程进行预测和控制。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析(6)预测 x1=[85,95,115]'; % 输入自变量 yc=polyval(p,x1) % 计算预测值 [Y,Delta]=polyconf(p,x1,s); I1=[Y-Delta,Y+Delta] % 置信区间 输出:yc = 4.84
= 3.01 2927.5544/246.67 3230.62所以当雏鹅重分别为85,95,115时, 白鹅70日龄重分别为 44.84, 3079.08; 且95%的置信区间分别为: [75.96], [6.67], [ 0.62].MATLAB数据分析方法(机械工业出版社) 第3章 回归分析45/24在程序中加入: polytool(x,y) % 交互功能 bar(x,y-y1), % 残差图 legend('残差') h=lillietest(y-y1) % 残差正态性检验 输出h = 0 得到交互图形如图3.16所示,可以看出当雏鹅重为100时,模 型给出70日龄鹅重为.图3.16 四川白鹅70日龄重与雏鹅重线性模型交互图MATLAB数据分析方法(机械工业出版社) 第3章 回归分析46/243.2多元线性回归模型 3.2.1多元线性回归模型及其表示MATLAB数据分析方法(机械工业出版社) 第3章 回归分析对于总体 ( X 1 , X 2 ,?, XY ) 的n组观测值47/24( xi1 , xi 2 ,?, yi )(i ? 1,2,?, n ? p),它应满足式(3.2.1),即? y1 ? ? 0 ? ?1 x11 ? ? 2 x12 ? ? ? ? p x1 p ? ? 1 ?y ? ? ? ? x ? ? x ??? ? x ? ? ? 2 0 1 21 2 22 p 2p 2 ? ? ??????????????? ? ? y n ? ? 0 ? ?1 x n1 ? ? 2 x n 2 ? ? ? ? p x np ? ? n,,其中?i (i=1,2,…,n)相互独立,且设 ? i ~ N (0,? 2 )(i ? 1,2,?, n) ?? ? x ? x ? ?1 x ?? ? ?y ? 记 ? ? ? ? ? ? ? ?111121p01?y ? Y ?? 2? ? ? ? ?y ? ? n??1 x 21 X ?? ? ? ? ?1 x n1 ?x 22? xn 2? x2 p ? ? ? ? ? ? x np ? ?? ?1 ? ? ?? ? ? ? ? ??p? ? ??? 2 ? ? ?? ? ? ? ? ?? ? ? n?MATLAB数据分析方法(机械工业出版社) 第3章 回归分析48/24则模型(3.2.2)可用矩阵形式表示为 Y=X?+? (3.2.3) 其中Y称为观测向量,X称为设计矩阵,?称为待 估计向量,?是不可观测的n维随机向量,它的分 量相互独立,假定 ? ~ N (0, σ 2 I n ) .2. 多元线性回归建模的基本步骤 (1)对问题进行直观分析,选择因变量与解释变量,作 出与因变量与各解释变量的散点图,初步设定多元线 性回归模型的参数个数; (2)输入因变量与自变量的观测数据(y,X)调用命令 [b,bint,r,rint,s]=regress(y,X,alpha), 计算参数的估计。 (3)调用命令rcoplot(r,rint),分析数据的异常点情况。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析49/24(4)作显著性检验,若检验通过,则用模型作预测。 (5)对模型进一步研究:如残差的正态性检验,残差的 异方差检验,残差进行自相关性的检验等。3.2.2 MATLAB的回归分析命令 在MATLAB7.0的统计工具箱中,与多元回归模型 有关的命令有多个,下面逐一介绍。 1.多元回归建模命令regeress,其调用格式有以下三 种: (1)b = regress(y,X) (2)[b,bint,r,rint,stats] = regress(Y,X) (3)[b,bint,r,rint,stats] = regress(Y,X,alpha)MATLAB数据分析方法(机械工业出版社) 第3章 回归分析50/24三种方式的主要区别在输出项参数多少上,第3种方 式可称为全参数方式。以第3种为例来说明regeress 命令的输入与输出参数的含义。 输入参数:输入量Y表示模型(3.1.1)中因变量的 观测向量;X是一个的矩阵,其中第一列元全部是 数“1”,第j列是自变量Xj的观测向量,即?1 x11 ? y1 ? ? ? ? ?1 x 21 ? y2 ? Y ? ? ?, X ? ? ? ? ? ? ? ? ?y ? ?1 x n1 ? n? ? x12 x 22 ? xn 2 ? x1 p ? ? ? x2 p ? , ? ? ? ? ? x np ? ?对一元线性回归,取p=1即可;alpha为显著性水平 输出参数:输出向量b为回归系数估计值,bint为回归 系数的(1-alpha)置信区间;输出向量r表示残差列向量MATLAB数据分析方法(机械工业出版社) 第3章 回归分析51/24输出rint为模型的残差的 (1- ?)的置信区间;输出stats 是用于检验回归模型的统计量,有4个分量值:第一个 是R2,其中R是相关系数,第二个是F统计量值,第三 个是与统计量F对应的概率P,当P&?时拒绝H0,即认 为线性回归模型有意义,第四个是方差?2的无偏估计.例3.2.1某销售公司将库存占用资金情况、广告投入的费 用、员工薪酬以及销售额等方面的数据作了汇总,该公司 试图根据这些数据找到销售额与其他变量之间的关系, 以便进行销售额预测并为工作决策提供参考依据。(1)建 立销售额的回归模型;(2)如果未来某月库存资金额为 150万元,广告投入预算为45万元,员工薪酬总额为27万 元,试根据建立的回归模型预测该月的销售额。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析表3.7 占用资金、广告投入、员工薪酬、销售额(单位:万元)月份 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 库存资金额(x1) 75.2 77.6 80.7 76 79.5 81.8 98.3 67.7 74 151 90.8 102.3 115.6 125 137.8 175.6 155.2 174.3 广告投入(x2) 30.6 31.3 33.9 29.6 32.5 27.9 24.8 23.6 33.9 27.7 45.5 42.6 40 45.8 51.7 67.2 65 65.4 员工薪酬总额(x3) 21.1 21.4 22.9 21.4 21.5 21.7 21.5 21 22.4 24.7 23.2 24.3 23.1 29.1 24.6 27.5 26.5 26.8 销售额(y) 3 3.2 2.2 .3 4.6
1.3 1.7 6.552/24MATLAB数据分析方法(机械工业出版社) 第3章 回归分析53/24解:为了确定销售额与库存占用资金、广告投入、员 工薪酬之间的关系,分别作出y与x1,x2,x3的散点图, 若散点图显示它们之间近似线性关系,则可设定y与 x1,x2,x3的关系为三元线性回归模型y ? ?0 ? ?1 x1 ? ?2 x2 ? ?3 x3 ? ?%输入数据并作散点图(图3.18) A=[75.2 30.6 21.1 .6 31.3 21.4
29.6 21.4 .5 32.5 21.5 .8 27.9 21.7 .3 24.8 21.5 .7 23.6 21 826.3 74 33.9 22.4
27.7 24.7 .8 45.5 23.2
42.6 24.3 .6 40 23.1
45.8 29.1 .8 51.7 24.6 .6 67.2 27.5 .2 65 26.5 .3 65.4 26.8 2256.5];MATLAB数据分析方法(机械工业出版社) 第3章 回归分析[m,n]=size(A); subplot(3,1,1),plot(A(:,1),A(:,4),'+'), xlabel('x1(库存资金额)') ylabel('y(销售额)') subplot(3,1,2),plot(A(:,2),A(:,4),'*'), xlabel('x2(广告投入)') ylabel('y(销售额)') subplot(3,1,3),plot(A(:,3),A(:,4),'x'), xlabel('x3(员工薪酬)') ylabel('y(销售额)')54/24所得图形如图3.18所示,可见销售额y与库存资 金、广告投入、员工薪酬具有线性关系,因此可 以建立三元线性回归模型.MATLAB数据分析方法(机械工业出版社) 第3章 回归分析55/24图3.18销售额与库存、广告、薪酬散点图% 调用命令regress建立三元线性回归模型 x=[ones(m,1), A(:,1), A(:,2), A(:,3)]; y=A(:,4) [b,bint,r,rint,stats]=regress(y,x); b,bint,stats, % 输出结果 MATLAB数据分析方法(机械工业出版社) 第3章 回归分析56/24程序运行结果 bint =-580.7 b =162.4 10.9 7.1 13.6 37.6 stats =0. 105. 0. 1125输出结果说明: b就是模型中的参数?0 ,?1 ,?2 ,因此回归模型为? ? 162.0632 ? 7.2739x1 ? 13.9579x2 ? 4.3996 x3 ybint的各行分别为参数?0 ,?1 ,?2的95%的置信区间。 stats的第一列为模型可决系数,第二列为F统计量的观 测值,第三列得到概率p,最后一列为模型的残差平方和MATLAB数据分析方法(机械工业出版社) 第3章 回归分析57/242.多元回归辅助图形命令(1)残差图命令rcoplot,其调用格式rcoplot(r,rint)其中,输入参数r,rint 是多元回归建模命令 regress 输出的结果,运行该命令后展示了残差 与置信区间的图形。该命令有助于对建立的模 型进行分析,如果图形中出现红色的点,则可 以认作异常点,此时可删除异常点,重新建模, 最终得到改进的回归模型。 在上面的程序中加入 rcoplot(r,rint) 得到如下图形MATLAB数据分析方法(机械工业出版社) 第3章 回归分析58/24图3.19 残差与置信区间图从图形中可以看到第五个点为异常点,实际上从 表3.7可以发现第5个月库存占用资金、广告投入、员 工薪酬均比3月份少,为何销售额反而增加?这就可 以促使该公司的经理找出原因,寻找对策。下面的例 题介绍如何删除异常点,对模型进行改进的方法。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析59/24例3.2.2 葛洲坝机组发电耗水率的主要影响因素为库 水位,出库流量。数据如表3.8所示,利用多元线性回 归分析方法建立耗水率与出库流量、库水位的模型。表3.8 某天耗水率与出库流量、库水位的数据时间年-月-天-时 :00 :02 :04 :06 :08 :10 :12 :14 :16 :18 :20 :22 :00 :02 库水位(米) 65.08 65.10 65.12 65.17 65.21 65.37 65.38 65.39 65.40 65.43 65.47 65.53 65.62 65.58 出库流量(立方米)
机组发电耗水率 (立方米/万千瓦) 60.46 60.28 60.10 59.78 59.44 59.25 58.91 58.76 58.73 58.63 58.48 58.31 57.96 57.06:04:0665.7065.84143931429656.4355.83MATLAB数据分析方法(机械工业出版社) 第3章 回归分析60/24解:% 输入原始数据 % 做散点图 A=[65.08
subplot(1,2,1),plot(A(:,1),A(:,3),'+') 65.10
xlabel('x1(库水位)') 65.12
ylabel('y(耗水率)') 65.17
subplot(1,2,2),plot(A(:,2),A(:,3),'o') 65.21
xlabel('x2(出库流量)') 65.37
ylabel('y(耗水率)') 65.38
运行后得到的图形如图3.20所示, 65.40
从图中可以看到无论是库水位还是 65.47
出库流量都与机组发电耗水率具有 65.53
线性关系,因此,可以建立机组发 65.58
电耗水率与库水位和出库流量的二 65.70
65.84 ]; 元线性回归模型。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析61/24图3.20 库水位、出库流量与耗水率的散点图% 建立模型 [m,n]=size(A); y=A(:,3); x=A(:,1:2); [b,bint,r,rint,stats]=regress(y,[ones(m,1),x]); b,bint,stats 输出回归模型的系数、系数置信区间与统计量如表3.9所示 MATLAB数据分析方法(机械工业出版社) 第3章 回归分析表3.9回归模型的系数、系数置信区间与统计量 回归系数 回归系数估计值 回归系数置信区间62/24?0?1 ?2373.8698-4.7[340.082 ,407.6577][-5.4642 ,-4.4875 ] [0.9]R2= 0.9863,F= 468.4118,p&0.0001,s2 =0.0278由此可得模型为:? ? 373.8698 ? 4.9759 x1 ? 0.0007 x2 y% 模型改进 rcoplot(r,rint); 得到图形如图3.21所示,发现有一个异常点,下 面给出删除异常点后,重新建模的程序。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析63/24图3.21 残差示意图% 删除异常点程序并建模[b1,bint1,r1,rint1,stats1]=regress([y(1:12);y(14:m)],[ones(m1,1),[x(1:12,:);x(14:m,:)]]) rcoplot(r1,rint1);删除异常点后,残差示意图如图2-21所示,此时没有 异常点,改进回归模型的系数、系数置信区间与统计 量参见表3.10MATLAB数据分析方法(机械工业出版社) 第3章 回归分析表3.10改进回归模型的系数、系数置信区间与统计量 回归系数 回归系数估计值 回归系数置信区间64/24?0?1 ?2328.4616-4.0[290.87][-4.8880 ,-3.8308] [0.2]R2= 0.9931,F= 858.5846,p&0.0001,s2 =0.0150我们将表3.9与表3.10加以比较,可以发现:可 决系数从0.9863提高到0.9931,F统计量从 468.4118提高到858.5846,由此可知改进后的 模型显著性提高。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析65/24图3.21 残差示意图图 3-22删除异常点后残差示意图MATLAB数据分析方法(机械工业出版社) 第3章 回归分析66/243.2.3 多元线性回归实例例3.2.3现代服务业是社会分工不断深化的产物,随 着经济的发展,科学技术的进步,现代服务业的发 展受到多种因素和条件的影响。不仅受到经济总体 发展水平的影响,还受到第二产业、就业、投入等 因素的影响,从这几个主要方面出发,利用江苏省 统计年鉴的有关数据,通过建立多元线性回归模型 对年各种因素对现代服务业的影响进行回 归分析。假如构建如下江苏省服务业增长模型:Y ? ? 0 ? ?1 x1 ? ? 2 x2 ? ? 3 x3 ? ? 4 x4MATLAB数据分析方法(机械工业出版社) 第3章 回归分析67/24Y代表江苏省服务业的增加值(单位:亿元), 反映了江苏省服务业发展的总体水平。 x1~x4表示影响江苏省服务业发展的四种主要因 素和影响,其中 x1代表江苏省人均GDP(单位:元),说明江苏省总 体经济发展水平对服务业的影响; x2代表江苏省第二产业的增加值(单位:亿元),说 明了工业发展对服务业的影响,体现了生产性服务 业的需求规模; x3表示江苏省服务业的就业人数(单位:万人); x4表示江苏省服务业资本形成总额(单位:亿元), 主要体现服务业投资的经济效应。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析表3.11 江苏省关于服务业发展及各影响因素相关数据年份 Y服务业增加值 省人均GDP 第二产业增加值 服务业就业人数68/24服务业资本形成总额91 94 97 00 03 06 200737.76 28.13 93.58 160.62 286.58 277.12 387.11 367.16 291.77 280.01 227.61 329.16 385.44 437.02 601.39 704.72 0.09 1769.2853 01 71
70.24 35.53 101.33 325.34 478.79 588.72 528.49 358.86 337.74 228.24 280.05 515.74 471.57 697.03 0.88 5.8 2055.56589.74 623.19 640.95 706.39 786.37 855.97 920.45 975.66 2.31 2.02 1.86 3.37 5.06 1713.33252.01 275.82 330.71 439.32 620.97 858.91 3.43 4.74 3.37 9.78 2.19 8.59 5287.91MATLAB数据分析方法(机械工业出版社) 第3章 回归分析69/24解:%输入各影响因素的数据 x0=[ 589.74 252.01
623.19 275.82 ……………………………………………………………………… .56 7.91]; y=[37.76,28.13,93.58,160.62,286.58,277.12,387.11,367.16,291.77,280.01,227. 61,329.16,385.44,437.02,601.39,704.72,0.09,1769.28]‘; %Y服务业增加值列向量 [n,p]=size(x0); % 矩阵X0的行数即样本容量 x=[ones(n,1),x0]; % 构造设计矩阵 [db,dbint,dr,drint,dstats]=regress(y,x); % 调用多元回归分析命令(1)回归参数的估计输出:db =345.2 0.2 -0.6537所以,服务业增加值Y对4个自 变量的线性回归方程为? ? 345.249? 0.1672x1 ? 0.1962x2 ? 0.7012x3 ? 0.6537x4 yMATLAB数据分析方法(机械工业出版社) 第3章 回归分析输出:70/24dstats = 1.0e+003 * 0.7 0.6 其中dstats的第4项是残差的方差估计值。所以,残差方差?2 的无偏估计值为? 2 ? 5792 ? .6下面对例3.2.3的回归模型进行显著性检验。 (1)F检验 接上面的程序,在MATLAB命令窗口中继续输入:MATLAB数据分析方法(机械工业出版社) 第3章 回归分析TSS=y'*(eye(n)-1/n*ones(n,n))*y; H=x*inv((x'*x))*x'; ESS=y'*(eye(n)-H)*y; RSS=y'*(H-1/n*ones(n,n))*y; MSR=RSS/p; MSE=ESS/(n-p-1);%F检验 F0=(RSS/p)/(ESS/(n-p-1)); Fa=finv(p,n-p-1,0.95); %t检验 S=MSE*inv(x'*x); T0=db./sqrt(diag(S)); Ta=tinv(n-p-1,0.975); pp=tpdf(T0,n-p-1); %可决系数检验 R2=RSS/TSS;71/24% 计算TSS % 计算对称幂等矩阵 % 计算ESS % 计算RSS % 计算MSR %计算MSE% 计算F0 % F分布时的临界值F0.95 ( p, n ? p ? 1)% 计算回归参数的协方差矩阵 % 每个回归参数的T统计量 % t分布的分位数 % 每个回归参数的T统计量对应的概率% 计算样本决定系数MATLAB数据分析方法(机械工业出版社) 第3章 回归分析 程序的输出结果列在表3.12,3.13中表3.12 方差来源 回归 平方和 4000513 自由度 4 方差分析表 均方和
F值 172.65672/24p值 0误差总计4081609 变量1418 表3.13回归系数 β值 标准差t值p值常数项省人均GDP 第二产业增加值345.250.167 0.196150.3220.044 0.0822.2973.812 2.390.0380.002 0.031服务业就业人数服务业资本形成总额-0.701-0.6540.2160.295-3.242-2.2150.0060.044MATLAB数据分析方法(机械工业出版社) 第3章 回归分析该方程的拟合优度判定系数R2 ? SSR ? 0.98 SSTn ?1 ? 0.976 n ? p ?173/24调整后的拟合优度判定系数2 Ra ? 1 ? (1 ? R 2 ) ?由此说明该多元线性回归方程的拟合程度比较理想。;F检验: H : ? ? ? ? ? ? ? ? 0 H : ? (i ? 1,2,3,4) 不全为零 从方方差分析表可知统计量:F0=172.656,给定 ?=0.05,查分布表,得到一个临界值F? =3.1122,因为 F0& F?,或者由F0的p值为0小于0.05,所以拒绝H0,接 受备择假设H1,说明总体回归系数?i不全为零,即表 明模型的线性关系在95%的置信水平下显著成立。0 1 2 3 41 iMATLAB数据分析方法(机械工业出版社) 第3章 回归分析t检验:H 0 : ?i ? 0 ?74/24H1 : ? i ? 0, (i ? 0,1,2,3,4)对于?=0.05,从表3.13 最后一列的概率可以看出均 小于0.05,所以拒绝H0,接受备择假设,即回归系 数?i(i=0,1,2,3,4),显著不为零。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析75/24方法2:从包含全部变量的回归方程中逐次剔除不显 著因子。首先建立包含全部变量的回归方程,然后对 每一个因子作显著性检验,剔除不显著因子中偏回归 平方和最小的一个因子,重新建立包含全部变量(剔 除的除外)的回归方程。然后重复上面的过程,对新 建立回归方程的每一个因子作显著性检验,剔除不显 著因子中偏回归平方和最小的因子,再重新建立回归 方程。如此,当新建立回归方程中所有因子都显著时 ,回归方程就是“最优”的了。这种方法在因子,特别是不显著因子不多时,可 以采用。但计算的工作量仍然可能较大。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析76/243.3逐步回归3.3.1最优回归方程的选择 在建立经济预测问题的数学模型时,常常从可 能影响预测量Y的许多因素中挑选一批因素作为自 变量,应用回归分析的方法建立回归方程作预报或 控制用。问题是如何在为数众多的因素中挑选变量, 以建立我们称为是这批观测数据“最优”的回归方 程。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析77/24选择“最优”回归方程有以下几种方法: 方法1:从所有可能的变量组合的回归方程中挑选最优者 ,即把所有包含1个,2个,…直至所有变量的线性回归 方程全部计算,对每个方程及自变量作显著性检验,然 后从中挑选一个方程,要求所有的变量全部显著,且剩 余均方和MSE较小。这种方法只在变量较少时可用。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析78/24方法3:从一个变量开始,把变量逐个引入回归方 程。这一方法首先计算各因子与Y的相关系数,将 绝对值最大的一个因子引入方程,并对回归平方 和进行检验,若显著则引入。然后找出余下的因 子中与Y的偏相关系数最大的那个因子,将其引入 方程,检验显著性,等等,当引入的因子建立的 方程检验不显著时,该因子就不再引入。 这种方法尽管工作量较小,但并不保证最后所得 到的方程是“最优”的,还得进一步作检验,剔 除不显著因子。同时这种方法每一步要计算偏相 关系数,也较麻烦。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析79/24结合方法2与3,产生了一种建立“最优”回归方 程的方法——逐步回归分析。 逐步回归的基本思想是,将变量一个一个引入,引 入变量的条件是偏回归平方和经检验是显著的,同 时每引入一个新变量后,对已选入的变量要进行逐 个检验,将不显著变量剔除, 具体做法是将变量一个一个引入,当每引入一个自变 量后,对已选的变量要进行逐个检验,当原引入的变 量由于后面变量的引入而变得不再显著时,要将其剔 除。引入一个变量或从回归方程中剔除一个变量,为 逐步回归的一步,每一步都要进行F检验,以确保每 次引入新的变量之前回归方程中只包含显著的变量。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析80/24这个过程反复进行,直到既无显著的自变量选入 回归方程,也无不显著自变量从回归方程中剔除 为止。这样保证最后所得的变量子集中的所有变 量都是显著的。这样经若干步以后便得“最优” 变量子集。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析 3.3.2逐步回归的MATLAB方法81/24统计工具箱中用作逐步回归的是命令stepwise,它提 供了一个交互式画面,通过这个工具你可以自由地选 择变量,进行统计分析,其通常用法是 stepwise(X,Y,in,penter,premove) 其中X是自变量数据,Y是因变量数据,分别为矩阵 ,in是矩阵X的列数的指标,给出初始模型中包括的子 集,缺省时设定为全部自变量不在模型中, penter为变量进入时显著性水平,缺省时=0.05, premove为变量剔除时显著性水平,缺省=0.10MATLAB数据分析方法(机械工业出版社) 第3章 回归分析82/24在应用stepwise命令进行运算时,程序不断提醒将 某个变量加入(Move in)回归方程,或者提醒将 某个变量从回归方程中剔除(Move out)。 注意:应用stepwise命令做逐步回归,数据矩阵X 的第一列不需要人工加一个全1向量,程序会自动 求出回归方程的常数项(intercept)。 下面通过一个例子说明stepwise的用法。例3.3.1(Hald,1960)Hald数据是关于水泥生产的数据 。某种水泥在凝固时放出的热量(单位:卡/克)与水泥 中4种化学成分x1~x4所占的百分比有关: 在生产中测得13组数据,见表3.14,试建立y关于这些 因子的“最优”回归方程。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析表3.14 水泥生产的Hald数据序号x1 x2 x3 x4 y83/2417 26 6 60 78.521 29 15 52 74.3311 56 8 20 104.3411 31 8 47 87.657 52 6 33 95.9611 55 9 22 109.273 71 17 6 102.781 31 22 44 72.592 54 18 22 93.11021 47 4 26 115.9111 40 23 34 83.81211 66 9 12 113.31310 68 8 12 109.4解:在Matlab软件包中写一个M文件“liti3_3_1.m”X=[7,26,6,60;1,29,15,52;11,56,8,20;11,31,8,47;7,52,6,33;11,55,9,22;3,71,17,6;1 ,31,22,44; 2,54,18,22;21,47,4,26;1,40,23,34;11,66,9,12;10,68,8,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]'; %因变量数据 stepwise(X,Y,[1,2,3,4],0.05,0.10) %in=[1,2,3,4]表示x1、x2、x3、x4均保留在模型中MATLAB数据分析方法(机械工业出版社) 第3章 回归分析84/24程序执行后得到下列逐步回归的窗口(如图3.23所示):图3.23 逐步回归窗口MATLAB数据分析方法(机械工业出版社) 第3章 回归分析85/24在图3.23中,用蓝色行显示变量x1、x2、x3、x4均保留在模 型中,窗口的右侧按钮上方提示:将变量x3剔除回归方程 (Move x3 out),点击Next Step按钮,即,进行下一步运算, 将第3列数据对应的变量x3 剔除回归方程。点击Next Step按 健后,剔除的变量x3所对应的行用红色表示,同时又得到提 示:将变量x4剔除回归方程(Move x4 out),点击 Next Step按 钮,即,进行下一步运算,将第4列数据对应的变量x4剔除回 归方程。点击Next Step按健后,x4所对应的行用红色表示, 同时提示:Move No terms,即,没有需要加入(也没有需要 剔除)的变量了(如图3.24所示)。在Matlab7.0软件包中,可以 直接点击“All Steps”按钮,直接求出结果(省略中间过程)。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析86/24图3.24 逐步回归结果由图3.24,最后得到回归方程(蓝色行是被保留的有 效行,红色行表示被剔除的变量):y ? 52.31 x1 ? 0.66225 x2MATLAB数据分析方法(机械工业出版社) 第3章 回归分析87/24图3.24中显示了模型参数R2=0.978698,修正的 R2=0.972282,F_检验值=229.504,与显著性概率相 关的p值=4.4.05,残差均方RMSE= 2.40634(这个值越小越好)。以上指标值都很好,说 明回归效果比较理想。另外,截距intercept=52.5773 ,这就是回归方程的常数项。 逐步回归窗口中对已建模型给出了在线与超链接的显 示功能,当将光标指向“Model History”框中的均方 残差RMSE的第一个蓝色点时,光标在线显示“in model: x1、x2、x3、x4”,若双击光标,则超链接到 图3.23所示的逐步回归窗口。从“Model History”框 中可以观察不同模型的均方残差变化。MATLAB数据分析方法(机械工业出版社) 第3章 回归分析历史考题: 某厂5年间工业增加值与劳动生产率 的资料如下表所示年份 1 2 3 4 588/24工业增加值y(万元)劳动生产率x(万元/人)5 5 5201.5352.05703.51055.051206.02 2 x ? 18 , y ? 350 , x ? 79 . 5 , x y ? 1590 , y ?i ? i ?i ?i i ? i ? 31950 i ?1 i ?1 i ?1 i ?1 i ?1lxx , lxy , l yy (1) 计算 ? ? ?a ? ? bx (2) 求y对x的线性回归方程: y (3) F0.05(1,3)=10.13 对建立的方程进行显著性检验MATLAB数据分析方法(机械工业出版社) 第3章 回归分析解 (1)89/24lxx ? 14.7, l yy ? 7450 , lxy ? 330lxy ? ?x ? ?10.816 ? ? y ?b (2) b ? ? 22.449, a lxx? ? 22.449x ? 10.816 故回归方程为: y(3)F? ? bl xy ? ) /(5 ? 2) (l yy ? bl xy ? 531.3055由于 F=531.=F0.05(1,3)所以 y对x的线性关系显著MATLAB数据分析方法(机械工业出版社) 第3章 回归分析90/24谢谢!THANK YOU!MATLAB数据分析方法(机械工业出版社)
赞助商链接
相关文档:
更多相关文章:
matlab数值分析实验二(1) - 广东金融学院实验报告 本报告正文部分字体、字号要求: (1)正文部分 5 号宋体,23-26 磅行距;所有数字、字母必须用 times new roman...的定义并且编写出与其算法对应的 MATLAB 程序代码; 2.了解三次样条插值的构造方法并且编写出与其算法对应的 MATLAB 程序代码; 3.体会利用 MATLAB 软件进行数值计算...MATLAB与数值分析第二次第三次实验教学及内容_小学作文_小学教育_教育专区。实验...使学生对病态问题、 线性方程组求解和函数的数值逼近方法有一个初步的理 解。 ...本课程主要介绍 MATLAB 软件平台的使用和编程技巧、数值计算方法的基础理论和 ...2. 数值分析基础理论与基本算法(1)数值计算的基本概念 授课时数:3 学时 教学...MATLAB 的图像的数据分析 初始条件:(1)MATLAB 应用软件的基本知识及操作; (2)...并帮助学生掌握基本的文献检索和文献阅读的方法,同时提高学生正确地撰 写论文的...基于Matlab的化学实验数据分析(含源文件) - 基于 Matlab 的化学实验数据分析 摘要:本文对化学实验数据分析方法做了详细的介绍,包括定量分析方法、模式识别、光谱 ...(i) 数据输入 数据输入通常有两种方法,一种是在交互环境中直接输入,如果在统计...极差是 x ? ( x1 , x2 ,?, xn ) 的最大值与最小值之差。 Matlab ...第二讲 MATLAB 的数值分析 2-1 矩阵运算与数组运算矩阵运算和数组运算是 MATLAB 数值运算的两大类型, 矩阵运算是按矩阵的运算规则进 行的,而数组运算则是按数组...数值分析实验二(matlab)插值法_数学_自然科学_专业资料。实验二 插值法 1 实验...20 2 实验 2.1(多项式插值的振荡现象)实验要求 1: 程序: M 文件:lagrange....数值分析Matlab作业 18页 免费M​a​t​l​a​b​与​数​值​...×(d)×(e)√(f)√(g)×(h)×(i)√(j) × 2: 主元的选取方式不...
更多相关标签:
All rights reserved Powered by
copyright &copyright 。甜梦文库内容来自网络,如有侵犯请联系客服。|}

我要回帖

更多关于 matlab中非线性拟合 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信