您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > MATLAB回归分析regress,nlinfit,stepwise函数
回归分析1.多元线性回归在Matlab统计工具箱中使用命令regress()实现多元线性回归,调用格式为b=regress(y,x)或[b,bint,r,rint,statsl=regess(y,x,alpha)其中因变量数据向量y和自变量数据矩阵x按以下排列方式输入对一元线性回归,取k=1即可。alpha为显著性水平(缺省时设定为0.05),输出向量b,bint为回归系数估计值和它们的置信区间,r,rint为残差及其置信区间,stats是用于检验回归模型的统计量,有三个数值,第一个是R2,其中R是相关系数,第二个是F统计量值,第三个是与统计量F对应的概率P,当Pα时拒绝H0,回归模型成立。画出残差及其置信区间,用命令rcoplot(r,rint)实例1:已知某湖八年来湖水中COD浓度实测值(y)与影响因素湖区工业产值(x1)、总人口数(x2)、捕鱼量(x3)、降水量(x4)资料,建立污染物y的水质分析模型。(1)输入数据x1=[1.376,1.375,1.387,1.401,1.412,1.428,1.445,1.477]x2=[0.450,0.475,0.485,0.500,0.535,0.545,0.550,0.575]x3=[2.170,2.554,2.676,2.713,2.823,3.088,3.122,3.262]x4=[0.8922,1.1610,0.5346,0.9589,1.0239,1.0499,1.1065,1.1387]y=[5.19,5.30,5.60,5.82,6.00,6.06,6.45,6.95](2)保存数据(以数据文件.mat形式保存,便于以后调用)savedatax1x2x3x4yloaddata(取出数据)(3)执行回归命令x=[ones(8,1),];[b,bint,r,rint,stats]=regress得结果:b=(-16.5283,15.7206,2.0327,-0.2106,-0.1991)’stats=(0.9908,80.9530,0.0022)即=-16.5283+15.7206xl+2.0327x2-0.2106x3+0.1991x4R2=0.9908,F=80.9530,P=0.00222.非线性回归非线性回归可由命令nlinfit来实现,调用格式为[beta,r,j]=nlinfit(x,y,'model’,beta0)其中,输人数据x,y分别为n×m矩阵和n维列向量,对一元非线性回归,x为n维列向量model是事先用m-文件定义的非线性函数,beta0是回归系数的初值,beta是估计出的回归系数,r是残差,j是Jacobian矩阵,它们是估计预测误差需要的数据。预测和预测误差估计用命令[y,delta]=nlpredci(’model’,x,beta,r,j)实例2:对实例1中COD浓度实测值(y),建立时序预测模型,这里选用logistic模型。即(1)对所要拟合的非线性模型建立的m-文件mode1.m如下:functionyhat=model(beta,t)yhat=beta(1)./(1+beta(2)*exp(-beta(3)*t))(2)输人数据t=1:8loaddatay(在data.mat中取出数据y)beta0=[50,10,1]’(3)求回归系数[beta,r,j]=nlinfit(t’,y’,’model’,beta0)得结果:beta=(56.1157,10.4006,0.0445)’即(4)预测及作图[yy,delta]=nlprodei(’model’,t’,beta,r,j);plot(t,y,’k+’,t,yy,’r’)3.逐步回归逐步回归的命令是stepwise,它提供了一个交互式画面,通过此工具可以自由地选择变量,进行统计分析。调用格式为:stepwise(x,y,inmodel,alpha)其中x是自变量数据,y是因变量数据,分别为n×m和n×l矩阵,inmodel是矩阵的列数指标(缺省时为全部自变量),alpha,为显著性水平(缺省时为0.5)结果产生三个图形窗口,在stepwiseplot窗口,虚线表示该变量的拟合系数与0无显著差异,实线表示有显著差异,红色线表示从模型中移去的变量;绿色线表明存在模型中的变量,点击一条会改变其状态。在stepwiseTable窗口中列出一个统计表,包括回归系数及其置信区间,以及模型的统计量剩余标准差(RMSE),相关系数(R-square),F值和P值。对不含常数项的一元回归模型,、都是向量,在MATLAB中进行回归分析的程序为:①b=regress(y,x)②[b,bint,r,rint,stats]=regress(y,x)③[b,bint,r,rint,stats]=regress(y,x,alpha)说明:b=regress(y,x)返回基于观测y和回归矩阵x的最小二乘拟合系数的结果。[b,bint,r,rint,stats]=regress(y,x)则给出系数的估计值b;系数估计值的置信度为95%的置信区间bint;残差r及各残差的置信区间rint;向量stats给出回归的R2统计量和F以及P值.[b,bint,r,rint,stats]=regess(y,alpha)给出置信度为1-alpha的结果,其他符号意义同上.对含常数项的一元回归模型,可将变为矩阵,其中第一列全为1。结果说明:b为回归模型中的常数项及回归系数.Bint为各系数的95%置信区间.r和rint为对应每个实际值的残差和残差置信区间。Stats向量的值分别为拟合优度、F值和显著性概率p.所以,生产费用对产量的回归函数为:.,说明模型拟合程度相当高。[b,bint,r,rint,ststs]=regress(y,x,alpha)可用help查阅此命令的具体用法残差及置信区间可以用rcoplot(r,rint)画图x=0.1:0.01:0.18;x=[x,0.2,0.21,0.23]';y=[42,41.5,45,45.5,45,47.5,49,55,50,55,55.5,60.5]';X=[ones(12,1),x];[b,bint,r,rint,stats]=regress(y,X,0.05);b,bint,stats,rcoplot(r,rint)结果含义为β0=27.0269β1=140.6194β0的置信区间是[22.3226,31.7313]β1的置信区间是[111.7842,169.4546]tji01.m建模软件建模软件matlab鲜思东重庆邮电大学R2=0.9219F=118.0670,p10-4.R是衡量y与x的相关程度的指标,称为相关系数.R越大,x与y关系越密切.通常R大于0.9才认为相关关系成立.F是一统计指标,p是与F对应的概率,当p0.05时,回归模型成立.此例中p=010-40.05,所以,所得回归模型成立。观察所得残差分布图,看到第8个数据的残差置信区间不含零点,此点视为异常点,剔除后重新计算。此时键入:X(8,:)=[];y(8)=[];[b,bint,r,rint,stats]=regress(y,X);b,bint,stats,rcoplot(r,rint)可以看到:置信区间缩小;R2、F变大,所以应采用修改后的结果。
本文标题:MATLAB回归分析regress,nlinfit,stepwise函数
链接地址:https://www.777doc.com/doc-2887229 .html