第12章 回归分析.pdf
《第12章 回归分析.pdf》由会员分享,可在线阅读,更多相关《第12章 回归分析.pdf(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 回归分析 谢中华 E-mail: MATLAB统计分析与应用:统计分析与应用:40个案例个案例分析分析 MATLAB从零到进阶从零到进阶 http:/ http:/ 回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 一元线性回归一元线性回归 一元非线性回归一元非线性回归 多元线性和广义线性回归多元线性和广义线性回归 多元多元非线性回归非线性回归 线性线性和非线性回归模型和非线性回归模型类类 多项式回归多项式回归 主要内容:主要内容:回归分析回归分析 谢中华谢中华,MATLAB应
2、用培训应用培训.2013/10/22 第一节第一节 一元线性回归一元线性回归 回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22【例例12.1-1】现有全国现有全国31个主要城市个主要城市2007年的气候情况观测数据,年的气候情况观测数据,如下表所示。试根据表中如下表所示。试根据表中31组观测数据研究年平均气温和全年组观测数据研究年平均气温和全年日照时数之间的关系。日照时数之间的关系。城城 市市 年平均气温年平均气温 单位:单位:年极端最高气温年极端最高气温 单位:单位:年极端最低气温年极端最低气温 单位:单位:年均相对湿度年均相对湿度 单位:单位:%全年日照时
3、数全年日照时数 单位:小时单位:小时 全年降水量全年降水量 单位:毫米单位:毫米 序序号号 北 京 14.0 37.3-11.7 54 2351.1 483.9 1 天 津 13.6 38.5-10.6 61 2165.4 389.7 2 石 家 庄 14.9 39.7-7.4 59 2167.7 430.4 3 太 原 11.4 35.8-13.2 55 2174.6 535.4 4 呼和浩特 9.0 35.6-17.6 47 2647.8 261.2 5 沈 阳 9.0 33.9-23.1 68 2360.9 672.3 6 兰 州 11.1 34.3-11.9 53 2214.1 407
4、.9 28 西 宁 6.1 30.7-21.8 57 2364.7 523.1 29 银 川 10.4 35.0-15.4 52 2529.8 214.7 30 乌鲁木齐 8.5 37.6-24.0 56 2853.4 419.5 31 回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 令令x表示年平均气温,表示年平均气温,y表示全年日照时数。由于表示全年日照时数。由于 x和和 y均为一维变量,可以先从均为一维变量,可以先从 x和和 y的散点图上直观的观察它们的散点图上直观的观察它们之间的关系,然后再作进一步的分析。之间的关系,然后再作进一步的分析。Clima
5、teData=xlsread(examp12_1_1.xls);x=ClimateData(:,1);y=ClimateData(:,5);plot(x,y,k.,Markersize,15);xlabel(年平均气温年平均气温(x);ylabel(全年日照时数全年日照时数(y);%计算计算x和和y的线性相关系数矩阵的线性相关系数矩阵R R=corrcoef(x,y)一、一、数据的散点图数据的散点图 回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 68101214161820222426500100015002000250030003500年 平 均 气 温
6、(x)全年日照时数(y)0.7095xy=回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 二、二、调用调用regress函数作一元线性回归函数作一元线性回归 1.p元广义线性回归模型元广义线性回归模型 1112121011121222212211221()()()1()()()1()()()ppppnnpnppnnyXf xfxfxyf xfxfxyf xfxfxy=+矩阵形式矩阵形式 01 11222()()(),1,iiippipiyf xfxfxin=+=回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 2.regre
7、ss函数的用法函数的用法=nYYYY.21=pb.10 b =regress (Y,X )1112121121222211221()().()1()().().1()().()ppppnnpnpf xfxfxf xfxfxXf xfxfx=回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 回归系数的区间估计回归系数的区间估计 残差残差 用于检验回归模型的统计量,用于检验回归模型的统计量,有有4个数值:判定系数个数值:判定系数r2、F 统计量观测值、检验的统计量观测值、检验的p值值、误差方差的估计误差方差的估计 置信区间置信区间 显著性水平显著性水平(缺省时为(
8、缺省时为0.05)判定判定系数系数2r越接近越接近 1,说明回归方程越显著;,说明回归方程越显著;(,1)FFp np时拒绝时拒绝0H,F越大,说明回归方程越显著;越大,说明回归方程越显著;检验的检验的 p 值值时拒绝时拒绝0H,回归模型成立,回归模型成立.b,bint,r,rint,stats=regress(Y,X,alpha)2.regress函数的用法(续)函数的用法(续)回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 3.调用调用regress函数作一元线性回归函数作一元线性回归 ClimateData=xlsread(examp12_1_1.xl
9、s);x=ClimateData(:,1);y=ClimateData(:,5);xdata=ones(size(x,1),1),x;%调用调用regress函数作一元线性回归函数作一元线性回归 b,bint,r,rint,s=regress(y,xdata);yhat=xdata*b;plot(x,y,k.,Markersize,15);hold on;plot(x,yhat,linewidth,3);xlabel(年平均气温年平均气温(x);ylabel(全年日照时数全年日照时数(y);legend(原始散点原始散点,回归直线回归直线);3115.476.962yx=回归分析回归分析 谢中
10、华谢中华,MATLAB应用培训应用培训.2013/10/22 4.残差分析残差分析 figure rcoplot(r,rint)通过对残差和残差的置信区间进行分析,可以看出原始通过对残差和残差的置信区间进行分析,可以看出原始数据中是否存在异常点,若残差的置信区间不包括数据中是否存在异常点,若残差的置信区间不包括0点,可点,可认为该组观测为异常点。认为该组观测为异常点。51015202530-1500-1000-500050010001500Residual Case Order PlotResidualsCase Number回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.681
11、01214161820222426500100015002000250030003500年平均气温(x)全年日照时数(y)原始数据散点原始数据回归直线剔除异常数据后回归直线2013/10/22 5.剔除异常值后重新回归剔除异常值后重新回归 xt=x(y1250);yt=y(y1250);xtdata=ones(size(xt,1),1),xt;b,bint,r,rint,s=regress(yt,xtdata)从残差图可以看出有从残差图可以看出有4条线段(红色虚线)与水平线条线段(红色虚线)与水平线 没有没有交点,它们对应的观测序号分别为交点,它们对应的观测序号分别为22、23、24和和26,
12、也就是,也就是说这说这4组观测对应的残差的置信区间不包含组观测对应的残差的置信区间不包含0点,可认为这四点,可认为这四组观测数据为异常数据。剔除异常数据后重新作回归。组观测数据为异常数据。剔除异常数据后重新作回归。2983.863.628yx=回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 三、三、调用自编调用自编reglm函数作一元线性回归函数作一元线性回归 1.reglm函数的用法函数的用法 reglm(y,X)stats=reglm(y,X)stats=reglm(y,X,model)stats=reglm(y,X,model,varnames)参数说
13、明请参数说明请参考参考reglm函数源码。函数源码。回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 2.调用调用reglm函数作一元线性回归函数作一元线性回归 ClimateData=xlsread(examp12_1_1.xls);x=ClimateData(:,1);y=ClimateData(:,5);varname=x;reglm(y,x,varname);回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 3.结果结果-方差分析表方差分析表-方差来源方差来源 自由度自由度 平方和平方和 均方均方 F值值 p值值 回归
14、回归 1.0000 4316961.1182 4316961.1182 29.3884 0.0000 残差残差 29.0000 4259914.3811 146893.5993 总计总计 30.0000 8576875.4994 均方根误差均方根误差(Root MSE)383.2670 判定系数判定系数(R-Square)0.5033 因变量均值因变量均值(Dependent Mean)1965.1742 调整的判定系数调整的判定系数(Adj R-Sq)0.4862 -参数估计参数估计-变量变量 估计值估计值 标准误标准误 t值值 p值值 常数项常数项 3115.3773 223.0588 1
15、3.9666 0.0000 x -76.9616 14.1967 -5.4211 0.0000 回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 四、四、调用调用robustfit函数作稳健回归函数作稳健回归 1.robustfit函数的用法函数的用法 b=robustfit(X,Y)b,stats=robustfit(X,Y)b,stats=robustfit(X ,Y,wfun,tune,const)加权函数加权函数 12nyyy当当当当当当当当当当调整常数调整常数 是否显示常是否显示常数项的标示,数项的标示,取值为取值为 on或或 off 回归分析回归分
16、析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 2.调用调用robustfit函数作一元线性回归函数作一元线性回归 ClimateData=xlsread(examp12_1_1.xls);x=ClimateData(:,1);y=ClimateData(:,5);%利用利用robustfit函数作稳健回归函数作稳健回归 b,stats=robustfit(x,y)b=1.0e+003*3.0348 -0.0683 3034.868.3yx=回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.68101214161820222426500100015002000
17、250030003500年平均气温(x)全年日照时数(y)原始数据散点regress函数对应的robustfit函数对应2013/10/22 3.regress和和robustfit函数结果对比函数结果对比 xsort,id=sort(x);ysort=y(id);xdata=ones(size(xsort,1),1),xsort;b1=regress(ysort,xdata);yhat1=xdata*b1;b2=robustfit(xsort,ysort);yhat2=xdata*b2;plot(x,y,ko)hold on plot(xsort,yhat1,r-,linewidth,3)p
18、lot(xsort,yhat2,linewidth,3)legend(原始数据散点原始数据散点,.regress函数对应的回归直线函数对应的回归直线,.robustfit函数对应的回归直线函数对应的回归直线);xlabel(年平均气温年平均气温(x)ylabel(全年日照时数全年日照时数(y)回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 第二节第二节 一元非线性回归一元非线性回归 回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22【例例12.2-1】头围头围(head circumference)是反映婴幼儿大脑和颅骨是反映
19、婴幼儿大脑和颅骨发育程度的重要指标之一,对头围的研究具有非常重要的意义。发育程度的重要指标之一,对头围的研究具有非常重要的意义。笔者研究了天津地区笔者研究了天津地区1281位儿童(位儿童(700个男孩,个男孩,581个女孩)的个女孩)的颅脑发育情况,测量了年龄、头宽、头长、头宽颅脑发育情况,测量了年龄、头宽、头长、头宽/头长、头围和头长、头围和颅围等指标,测得颅围等指标,测得1281组数据,年龄跨度从组数据,年龄跨度从7个星期到个星期到16周岁,周岁,试根据这试根据这1281组数据建立头围关于年龄的回归方程。组数据建立头围关于年龄的回归方程。回归分析回归分析 谢中华谢中华,MATLAB应用培训
20、应用培训.2013/10/22 令令x表示年龄,表示年龄,y表示头围。由于表示头围。由于 x和和 y均为一维变量,均为一维变量,可以先从可以先从 x和和 y的散点图上直观的观察它们之间的关系,然的散点图上直观的观察它们之间的关系,然后再作进一步的分析。后再作进一步的分析。HeadData=xlsread(examp12_2_1.xls);x=HeadData(:,4);y=HeadData(:,9);plot(x,y,k.)xlabel(年龄年龄(x)ylabel(头围头围(y)一、一、数据的散点图及备选方程数据的散点图及备选方程 1.散点图散点图 回归分析回归分析 谢中华谢中华,MATLAB
21、应用培训应用培训.2013/10/22 0246810121416354045505560年龄(x)头围(y)回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 负指数函数:负指数函数:2.备选方程备选方程 231xye+=双曲线函数:双曲线函数:123xyx+=+幂函数:幂函数:312()yx=+Logistic曲线函数:曲线函数:31()21xye+=+对数函数:对数函数:123ln()yx=+回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 二、二、调用调用nlinfit函数作一元非线性回归函数作一元非线性回归 1.nli
22、nfit函数的用法函数的用法 beta,r,J,COVB,mse=nlinfit(X,y,fun,b0,options)()()1212,;,1,2,ikiiipiyfxxxin=+=未知参数未知参数 事先用事先用m-文件文件定义的非线性定义的非线性函数函数 111212122212ppnnnpxxxxxxXxxx=12nyyyy=12.k回归系数初值回归系数初值 优化属性设置优化属性设置 雅可比矩阵雅可比矩阵 残差残差 回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 2.选择合适的理论回归方程选择合适的理论回归方程 负指数函数:负指数函数:231xye+=
23、回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 3.调用调用nlinfit函数作一元非线性回归函数作一元非线性回归 HeadData=xlsread(examp12_2_1.xls);HeadData=sortrows(HeadData,4);x=HeadData(:,4);y=HeadData(:,9);%理论回归方程对应的匿名函数理论回归方程对应的匿名函数 HeadCir2=(beta,x)beta(1)*exp(beta(2)./(x+beta(3);options=statset;options.Robust=on;%调用调用nlinfit函数作非线
24、性回归函数作非线性回归 beta,r,J,COVB,mse=nlinfit(x,y,HeadCir2,53,-0.2604,0.6276,options);0.2595 0.760452.3766xye+=回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 4.绘制一元非线性回归曲线绘制一元非线性回归曲线 yhat=HeadCir2(beta,x);figure plot(x,y,k.)hold on plot(x,yhat,linewidth,3)xlabel(年龄年龄(x)ylabel(头围头围(y)legend(原始数据散点原始数据散点,.非线性回归曲线非
25、线性回归曲线)0246810121416354045505560年 龄(x)头围(y)原 始 数 据 散 点非 线 性 回 归 曲 线回归分析回归分析 谢中华谢中华,MATLAB应用培训应用培训.2013/10/22 5.参数估计值的置信区间参数估计值的置信区间 在调用在调用nlinfit函数得到未知参数的估计值函数得到未知参数的估计值beta、残差向量、残差向量r、雅可比矩阵、雅可比矩阵J、未知参数的协方差矩阵的估计、未知参数的协方差矩阵的估计COVB和误和误差方差差方差 的估计的估计mse后,还可以调用后,还可以调用nlparci函数函数计算参数估计计算参数估计值的置信区间。值的置信区间。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第12章 回归分析 12 回归 分析
限制150内