利用matlab进行回归分析

上传人:n**** 文档编号:88914927 上传时间:2019-05-13 格式:PDF 页数:19 大小:545.63KB
返回 下载 相关 举报
利用matlab进行回归分析_第1页
第1页 / 共19页
利用matlab进行回归分析_第2页
第2页 / 共19页
利用matlab进行回归分析_第3页
第3页 / 共19页
利用matlab进行回归分析_第4页
第4页 / 共19页
利用matlab进行回归分析_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《利用matlab进行回归分析》由会员分享,可在线阅读,更多相关《利用matlab进行回归分析(19页珍藏版)》请在金锄头文库上搜索。

1、 1 / 19 利用利用 M MA AT TL LA AB B 进行进行回归分析回归分析 一、一、 实验目的:实验目的: 1了解回归分析的基本原理,掌握 MATLAB 实现的方法; 2. 练习用回归分析解决实际问题。 二、二、 实验内容实验内容: 题目题目 1 1 社会学家认为犯罪与收入低、失业及人口规模有关,对 20 个城市的犯罪率 y (每 10 万人中犯罪的人数) 与年收入低于 5000 美元家庭的百分比 1 x 、失业率 2 x 和人口总数 3 x (千人)进行了调 查,结果如下表。 序号 y 1 x 2 x 3 x 序号 y 1 x 2 x 3 x 1 11.2 16.5 6.2 5

2、87 11 14.5 18.1 6.0 7895 2 13.4 20.5 6.4 643 12 26.9 23.1 7.4 762 3 40.7 26.3 9.3 635 13 15.7 19.1 5.8 2793 4 5.3 16.5 5.3 692 14 36.2 24.7 8.6 741 5 24.8 19.2 7.3 1248 15 18.1 18.6 6.5 625 6 12.7 16.5 5.9 643 16 28.9 24.9 8.3 854 7 20.9 20.2 6.4 1964 17 14.9 17.9 6.7 716 8 35.7 21.3 7.6 1531 18 25.

3、8 22.4 8.6 921 9 8.7 17.2 4.9 713 19 21.7 20.2 8.4 595 10 9.6 14.3 6.4 749 20 25.7 16.9 6.7 3353 表 12.26 (1)若 1 x 3 x 中至多只许选择 2 个变量,最好的模型是什么? (2) 包含 3 个自变量的模型比上面的模型好吗?确定最终模型。 (3)对最终模型观察残差,有无异常点,若有,剔除后如何。 理论分析与程序设计理论分析与程序设计: 为了能够有一个较直观的认识, 我们可以先分别作出犯罪率 y 与年收入低于 5000 美元家庭的百分比 1 x 、 失业率 2 x 和人口总数 3 x (

4、千人)之间关系的散点图,根据大致分布粗略估计各因素造 成的影响大小, 再通过逐步回归法确定应该选择哪几个自变量作 为模型。 2 / 19 编写程序如下:编写程序如下: clc; clear all; y=11.2 13.4 40.7 5.3 24.8 12.7 20.9 35.7 8.7 9.6 14.5 26.9 15.7 36.2 18.1 28.9 14.9 25.8 21.7 25.7; %犯罪率(人/十万人) x1=16.5 20.5 26.3 16.5 19.2 16.5 20.2 21.3 17.2 14.3 18.1 23.1 19.1 24.7 18.6 24.9 17.9

5、22.4 20.2 16.9; %低收入家庭百分比 x2=6.2 6.4 9.3 5.3 7.3 5.9 6.4 7.6 4.9 6.4 6.0 7.4 5.8 8.6 6.5 8.3 6.7 8.6 8.4 6.7; %失业率 x3=587 643 635 692 1248 643 1964 1531 713 749 7895 762 2793 741 625 854 716 921 595 3353; %总人口数(千人) figure(1),plot(x1,y,*); figure(2),plot(x2,y,*); figure(3),plot(x3,y,*); X1=x1,x2,x3;

6、stepwise(X1,y) 运行结果运行结果与结论与结论: 3 / 19 犯罪率与低收入散点图 犯罪率与失业率散点图 犯罪率与人口总数散点图 4 / 19 低收入与失业率作为自变量 低收入与人口总数作为自变量 5 / 19 失业率与人口总数作为自变量 在图中可以明显看出前两图的线性程度很好, 而第三个图的 线性程度较差, 从这个角度来说我们应该以失业率和低收入为自 变量建立模型。 并且我们也可以从相关性角度来选取自变量, 可以看出低收 入与失业率作为自变量时的 RMSE=4.64848;低收入与人口总数 作为自变量时的 RMSE=5.62245;失业率与人口总数作为自变量 时的 RMSE=5

7、.04083。我们看到当低收入与失业率作为自变量时 RMSE 最小,因此如果选择两个变量作为自变量的会,它们是最 适合的。并且可以得到三者的关系为: 12 34.0725 1.223934.39894yxx ; 对同时选取三个自变量的模型分析对同时选取三个自变量的模型分析: 如 果 我 们 将 其 三 者 同 时 选 为 自 变 量 , 我 们 发 现 RMSE=4.58978, 比低收入与失业率二者作为自变量时稍微小了一 点,不过我们也发现此时的 X3 系数为 0.00076937,几乎为零, 是可以忽略的,因此我们仍然选取两个自变量做最终的模型。关 系函数仍为: 12 34.0725 1.

8、223934.39894yxx 6 / 19 低收入、失业率与人口总数都作为自变量 残差分析:残差分析: 对我们设定的最终模型运用残差分析,编写程序如下: clc; clear all; y=11.2 13.4 40.7 5.3 24.8 12.7 20.9 35.7 8.7 9.6 14.5 26.9 15.7 36.2 18.1 28.9 14.9 25.8 21.7 25.7; %犯罪率(人/十万人) x1=16.5 20.5 26.3 16.5 19.2 16.5 20.2 21.3 17.2 14.3 18.1 23.1 19.1 24.7 18.6 24.9 17.9 22.4 2

9、0.2 16.9; %低收入家庭百分比 x2=6.2 6.4 9.3 5.3 7.3 5.9 6.4 7.6 4.9 6.4 6.0 7.4 5.8 8.6 6.5 8.3 6.7 8.6 8.4 6.7; %失业率 x3=587 643 635 692 1248 643 1964 1531 713 749 7895 762 2793 741 625 854 716 921 595 3353; %总人口数(千人) n=20; X2=ones(n,1),x1,x2; b,bint,r,rint,s=regress(y,X2); rcoplot(r,rint) 运行结果如下:运行结果如下: 7 /

10、 19 我们应该剔除第 18、20 组数据,剔除后,运行源程序得到 新的结果如下: 8 / 19 这时我们在重复本题开始时的做法, 就可以得到最终的关系 函数了。 剔除不符数据后再次运行程序得到结果 那么最终的函数关系便为: 12 35.7095 1.602283.39259yxx 简要分析:简要分析: 从最终得到的结果上来看, 失业率与低收入都将导致犯罪的 上升。通过本道例题让我们学会运用逐步回归命令 stepwise 来 分析多自变量情况下的最优模型问题,得到最优模型后,我们再 运用残差法找到不符的数据,将其剔除,这样我们就会得到一个 比较科学准确的关系式,这个思路对我们分析回归问题很有效

11、。 题目题目 2 2 一家洗衣粉制造公司新产品实验时, 关心洗衣粉泡沫的高度 y 与搅拌程度 X1 和洗衣粉用量 X2 之间的关系,其中搅拌程度从 弱到强分为 3 个水平。实验得到的数据如下表: X1 X2 Y 1 6 28.1 1 7 32.3 1 8 34.8 1 9 38.2 9 / 19 1 10 43.5 X1 X2 Y 2 6 65.3 2 7 67.7 2 8 69.4 2 9 72.2 2 10 76.9 X1 X2 Y 3 6 82.2 3 7 85.3 3 8 88.1 3 9 90.7 3 10 93.6 表 12.30 (1) 将搅拌程度 X1 作为普通变量, 建立 y

12、 与 X1 和 X2 的回归模 型,从残差图上发现问题。 (2) 将搅拌程度 X1 视为没有定量关系的 3 个水平, 用 0-1 变量 表示,建立回归模型,与(1)比较,从残差图上还能发现 什么问题。 (3) 加入搅拌程度与洗衣粉用量的交互项, 看看模型有无改进。 理论分析与程序设计:理论分析与程序设计: 仿照题目 1 中的程序,我们对搅拌程度(当成普通变量)与 洗衣粉用量建立回归模型,并且进行残差分析。 编写程序如下:编写程序如下: clc; clear all; y=28.1 32.3 34.8 38.2 43.5 65.3 67.7 69.4 72.2 76.9 82.2 85.3 88

13、.1 90.7 93.6; %洗衣粉泡沫高度 x1=1 1 1 1 1 2 2 2 2 2 3 3 3 3 3; %搅拌程度 x2=6 7 8 9 10 6 7 8 9 10 6 7 8 9 10; %洗衣粉用量 figure(1),plot(x1,y,*); figure(2),plot(x2,y,*); X1=x1,x2; stepwise(X1,y) 10 / 19 运行结果如运行结果如下:下: 搅拌程度与泡沫高度关系 洗衣粉用量与泡沫高度的关系 11 / 19 我们还可以得到选取不同的变量时 RMSE 的大小,为了让 RMSE 最小,我们根据“Next step”的提示,最后得到如下结

14、果: 从上图中可以看出当含有 x1、x2 两项时 RMSE 最小,因此该 模型建立为: 1212.7426.33.08667yxx 编写程序进行残差分析: clc; clear all; y=28.1 32.3 34.8 38.2 43.5 65.3 67.7 69.4 72.2 76.9 82.2 85.3 88.1 90.7 93.6; %洗衣粉泡沫高度 x1=1 1 1 1 1 2 2 2 2 2 3 3 3 3 3; %搅拌程度 x2=6 7 8 9 10 6 7 8 9 10 6 7 8 9 10; %洗衣粉用量 figure(1),plot(x1,y,*); figure(2),p

15、lot(x2,y,*); X1=x1,x2; stepwise(X1,y) n=15; X2=ones(n,1),x1,x2; b,bint,r,rint,s=regress(y,X2); rcoplot(r,rint) 我们得到如下结果:我们得到如下结果: 12 / 19 说明中等搅拌程度的残差与其他不同。 将搅拌程度用将搅拌程度用 0 0- -1 1 表示,泡沫高度关系分析:表示,泡沫高度关系分析: 我们不妨设 x0 与 x1 共同表示搅拌程度, 当 (x0, x1) = (0,0) 时,代表搅拌程度为 1;当(x0,x1)=(0,1)时,代表搅拌程 度为 2;当(x0,x1)=(1,0)

16、时,代表搅拌程度为 3,我们就 可以编写如下程序: clc; clear all; y=28.1 32.3 34.8 38.2 43.5 65.3 67.7 69.4 72.2 76.9 82.2 85.3 88.1 90.7 93.6; %洗衣粉泡沫高度 x0=0 0 0 0 0 0 0 0 0 0 1 1 1 1 1; x1=0 0 0 0 0 1 1 1 1 1 0 0 0 0 0; %搅拌程度 x2=6 7 8 9 10 6 7 8 9 10 6 7 8 9 10; %洗衣粉用量 figure(1),plot(x0,y,*); figure(2),plot(x1,y,*); figure(3),plot(x2,y,*); X1=x0,x1,x2; stepwise(X1,y) n=15; X2=ones(n,1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号