您好,欢迎访问三七文档
数学实验报告学院:班级:学号:姓名:完成日期:2016年6月24日回归分析题目(一)一.实验目的1.了解回归分析的基本原理,掌握MATLAB实现的方法.2.练习用回归分析解决实际问题。二.问题描述社会学家认为犯罪与收入低、失业及人口规模有关,对20个城市的犯罪率y(每10万人中犯罪的人数)与年收入低于5000美元家庭的百分比x1、失业率x2和人口总数x3(千人)进行了调查,结果如表11-16所示。表11-16(1)若x1~x3中至多只许选择2个变量,最好的模型是什么?(2)包含3个自变量的模型比上面的模型好吗?确定最终模型。(3)对最终模型观察残差,有无异常点,若有,剔除后如何。三.实验过程先做y和xi的散点图,来大致判断自变量和因变量的关系。Matlab实现:首先在matlab中输入以下内容y=[11.213.440.75.324.812.720.935.78.79.614.526.915.736.218.128.914.925.821.725.7];x1=[16.520.526.316.519.216.520.221.317.214.318.123.119.124.718.624.917.922.420.216.9];x2=[6.26.49.35.37.35.96.47.64.96.46.07.45.88.66.58.46.78.68.46.7];x3=[587643635692124864319641531713749789576227937416258547169215953353];plot(x1,y,'+');pause;plot(x2,y,'+');pause;plot(x3,y,'+');pause;运行结果如下:y与各个因素的散点图犯罪率与低收入家庭百分比的散点图犯罪率与失业率的散点图犯罪率与人口总数的散点图由散点图可知y与x1,x2大致为线性关系,而y与x3的关系关系较为复杂,因此,选择x1,x2,并让它们与y做二元线性回归分析。Matlab代码如下:n=20;m=2;X=[ones(n,1),x1',x2'];[b,bint,r,rint,s]=regress(y',X);b,bint,s结果如下表所示:回归系数回归系数估计值回归系数置信区间β0-33.8358[-48.0681-19.6035]β11.2240[0.01092.4371]β24.3615[1.11977.6033]R2=0.8000F=34.0024P0.0001S2=21.8247置信区间没有包含0,R较大,p很小。因此,模型可以是:y=-34.0725+1.2239X1+4.3989X2(2)将三个变量均包含进去Matlab代码如下:n=20;m=3;X=[ones(n,1),x1',x2',x3'];[b,bint,r,rint,s]=regress(y',X);b,bint,s结果如下表所示:回归系数回归系数估计值回归系数置信区间β0-36.5104[-51.4209-21.5998]β11.1908[-0.01502.3965]β24.6840[1.41497.9532]β30.0008[-0.00060.0021]R2=0.8163F=23.6946P0.0001S2=21.3036如上表所示,虽然R2等量变化不大,但是β3的置信区间包含了0点,而且β1的置信区间距离0点也比较近。另外,从散点图来分析,y与x3的线性关系也不佳。因此,最终模型是y与x1,x2建立起来的模型。(3)先观察观察模型残差Matlab代码如下:n=20;m=2;X=[ones(n,1),x1',x2'];[b,bint,r,rint,s]=regress(y',X);b,bint,srcoplot(r,rint)结果是:如图所示,应该剔除第8组和第20组数据。在执行如下Matlab代码:y=[11.213.440.75.324.812.720.98.79.614.526.915.736.218.128.914.925.821.7];x1=[16.520.526.316.519.216.520.217.214.318.123.119.124.718.624.917.922.420.2];x2=[6.26.49.35.37.35.96.44.96.46.07.45.88.66.58.46.78.68.4];x3=[5876436356921248643196471374978957622793741625854716921595];n=18;m=2;X=[ones(n,1),x1',x2'];[b,bint,r,rint,s]=regress(y',X);b,bint,srcoplot(r,rint)stepwise(x,y')%进行逐步回归pause;n=18;X=[ones(n,1)x1'x2'];%由前面的逐步回归可以得到包含2个变量x1,x2时s最小[b,bi,r,ri,s]=regress(y',x);s2=sum(r.^2)/(n-3);b,bi,s,s2rcoplot(r,ri)%残差分析剔除之后结果如下:回归系数回归系数估计值回归系数置信区间β0-35.5229[-45.1435-25.9023]β11.6040[0.76612.4418]β23.3581[1.15905.5572]R2=0.9111F=76.9102P0.0001S2=9.3423同未剔除异常点前相比,β估计值改变不大,但是置信区间变短,R2和F值提高,S2值变小。而且残差中没有异常点出现。因此可认为,剔除之后模型变得更精确。最终模型可以是:y=-35.5229+1.6040x1+3.3581x2四.实验总结从最终的结果来看,影响犯罪率的因素是失业率与低收入。本题训练了逐步回归命令stepwise来分析多自变量情况下的变量选择问题。而且得到最优的模型还不够,还要分析残差,剔除不符的数据之后再次计算才能得到最终的模型。题目(二)一.实验目的1.了解回归分析的基本原理,掌握MATLAB实现的方法;2.练习用回归分析解决实际问题。二.问题描述汽车销售商认为汽车销售量与汽油价格、贷款利率有关,两种类型汽车(普通型和豪华型)18个月的调查资料如表,其中y1是普通型汽车售量(千辆),y2是豪华型汽车售量(千辆),x1是汽油价格(元/gal),x2是贷款利率(%)(1)对普通型和豪华型汽车分别建立如下模型:y1=β0(1)+β1(1)x1+β2(1)x2,y2=β0(2)+β1(2)x1+β2(2)x2给出β的估计值和置信区间,决定系数R2,F值及剩余方差等。(2)用x3=0,1表示汽车类型,建立统一模型y=β0+β1x1+β2x2+β3x3,给出给出β的估计值和置信区间,决定系数R2,F值及剩余方差等。以x3=0,1带入统一模型,将结果与(1)的两个模型的结果比较,解释二者的区别。(3)对统一模型就每种类型汽车分别作x1和x2与残差的散点图,有什么现象,说明模型有何缺陷?(4)对统一模型增加二次项和交互相,考察结果有什么改进。序号y1y2x1x2序号y1y2x1x2122.17.21.896.11018.97.01.746.9215.45.41.946.21119.36.81.705.2311.77.61.956.31230.110.11.704.9410.32.51.828.21328.29.41.684.3511.42.41.859.81425.67.91.603.767.51.71.7810.31537.514.116.43.6713.04.31.7610.51636.114.51.643.1812.83.71.768.71739.814.91.671.8914.63.91.757.41844.315.61.682.3三.实验过程由题意,对普通型和豪华型汽车分别建立如下模型:y1=β0(1)+β1(1)x1+β2(1)x2,y2=β0(2)+β1(2)x1+β2(2)x2此为二元线性回归,可用matlab编写程序如下:y1=[22.1,15.4,11.7,10.3,11.4,7.5,13.0,12.8,14.6,18.9,19.3,30.1,28.2,25.6,37.5,36.1,39.8,44.3];y2=[7.2,5.4,7.6,2.5,2.4,1.7,4.3,3.7,3.9,7.0,6.8,10.1,9.4,7.9,14.1,14.5,14.9,15.6];x1=[1.89,1.94,1.95,1.82,1.85,1.78,1.76,1.76,1.75,1.74,1.70,1.70,1.68,1.60,1.61,1.64,1.67,1.68];x2=[6.1,6.2,6.3,8.2,9.8,10.3,10.5,8.7,7.4,6.9,5.2,4.9,4.3,3.7,3.6,3.1,1.8,2.3];n=18;m=2;X=[ones(n,1),x1',x2'];[b1,bint1,r1,rint1,s1]=regress(y1',X);[b2,bint2,r2,rint2,s2]=regress(y2',X);subplot(2,1,1)rcoplot(r1,rint1)subplot(2,1,2)rcoplot(r2,rint2)得到如下图:在残差及置信区间的图中,有三个点的残差的置信区间不包含零点,以红色标出。残差应该服从均值为0的正态分布,可以认为这个数据是异常的,偏离了数据整体的变化趋势,给模型的有效性的精度带来不利影响,应予以剔除。剔除点后的模型求解(1)对于y1=β0(1)+β1(1)x1+β2(1)x2剔除第14、18个点后,输入代码如下:y1=[22.1,15.4,11.7,10.3,11.4,7.5,13.0,12.8,14.6,18.9,19.3,30.1,28.2,37.5,36.1,39.8];x1=[1.89,1.94,1.95,1.82,1.85,1.78,1.76,1.76,1.75,1.74,1.70,1.70,1.68,1.61,1.64,1.67];x2=[6.1,6.2,6.3,8.2,9.8,10.3,10.5,8.7,7.4,6.9,5.2,4.9,4.3,3.6,3.1,1.8];n=16;m=2;X=[ones(n,1),x1',x2'];[b1,bint1,r1,rint1,s1]=regress(y1',X);subplot(2,1,1)rcoplot(r1,rint1)继续自此基础上剔除第11个点,输入代码如下:y1=[22.1,15.4,11.7,10.3,11.4,7.5,13.0,12.8,14.6,18.9,30.1,28.2,37.5,36.1,39.8];x1=[1.89,1.94,1.95,1.82,1.85,1.78,1.76,1.76,1.75,1.74,1.70,1.68,1.61,1.64,1.67];x2=[6.1,6.2,6.3,8.2,9.8,10.3,10.5,8.7,7.4,6.9,4.9,4.3,3.6,3.1,1.8];n=15;m=2;X=[ones(n,1),x1',x2'];[b1,bint1,r1,rint1,s1]=regress(y1',X);subplot(2,1,1)rcoplot(r1,rint1)(2)对于y2=β0(2)+β1(2)x1+β2(2)x2,剔除第14个点后继续剔除第七个点,得到残差及置信区间图如下:将输出结果汇总成下表:普通型回归系数回归系数估值回归系数置信区间β0(1)107.5601[75.3160139.8042]β1(1)-37.9283[-57.2842-18.5723]β2(1)-3.0314[-3.7862-2.2767]R2=0.9334F=84.0758p0.0001s2=9.2746豪华型回归系数回归系数估值回归系数置信区间β0(2)29.7583[16.286443.2303]β1(2)-6.7738[
本文标题:数学实验回归分析
链接地址:https://www.777doc.com/doc-2331249 .html