利用MATLAB进行回归分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用MATLAB进行回归分析

一、实验目的:

1.了解回归分析的基本原理,掌握MATLAB实现的方法;

2. 练习用回归分析解决实际问题。

二、实验内容:

题目1

社会学家认为犯罪与收入低、失业及人口规模有关,对20个城市的犯罪率y(每10万人中犯罪的人数)与年收入低于5000美元家庭的百分比1x、失业率2x和人口总数3x(千人)进行了调查,结果如下表。

(1)若1x~3x中至多只许选择2个变量,最好的模型是什么?

(2)包含3个自变量的模型比上面的模型好吗?确定最终模型。

(3)对最终模型观察残差,有无异常点,若有,剔除后如何。

理论分析与程序设计:

为了能够有一个较直观的认识,我们可以先分别作出犯罪率y与年收入低于5000美元家庭的百分比1x、失业率2x和人口总数

x(千人)之间关系的散点图,根据大致分布粗略估计各因素造

3

成的影响大小,再通过逐步回归法确定应该选择哪几个自变量作为模型。

编写程序如下:

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 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'];

stepwise(X1,y)

运行结果与结论:

犯罪率与低收入散点图

犯罪率与失业率散点图

犯罪率与人口总数散点图

低收入与失业率作为自变量

低收入与人口总数作为自变量

失业率与人口总数作为自变量

在图中可以明显看出前两图的线性程度很好,而第三个图的线性程度较差,从这个角度来说我们应该以失业率和低收入为自变量建立模型。

并且我们也可以从相关性角度来选取自变量,可以看出低收入与失业率作为自变量时的RMSE=4.64848;低收入与人口总数作为自变量时的RMSE=5.62245;失业率与人口总数作为自变量时的RMSE=5.04083。我们看到当低收入与失业率作为自变量时RMSE 最小,因此如果选择两个变量作为自变量的会,它们是最适合的。并且可以得到三者的关系为:

1234.0725 1.22393 4.39894y x x =-++;

对同时选取三个自变量的模型分析:

如果我们将其三者同时选为自变量,我们发现RMSE=4.58978,比低收入与失业率二者作为自变量时稍微小了一点,不过我们也发现此时的X3系数为0.00076937,几乎为零,是可以忽略的,因此我们仍然选取两个自变量做最终的模型。关系函数仍为:

1234.0725 1.22393 4.39894y x x =-++

低收入、失业率与人口总数都作为自变量

残差分析:

对我们设定的最终模型运用残差分析,编写程序如下: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 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];

%总人口数(千人)

n=20;

X2=[ones(n,1),x1',x2'];

[b,bint,r,rint,s]=regress(y',X2);

rcoplot(r,rint)

运行结果如下:

我们应该剔除第18、20组数据,剔除后,运行源程序得到新的结果如下:

这时我们在重复本题开始时的做法,就可以得到最终的关系函数了。

剔除不符数据后再次运行程序得到结果

那么最终的函数关系便为:

12

35.7095 1.60228 3.39259y x x =-++

简要分析:

从最终得到的结果上来看,失业率与低收入都将导致犯罪的上升。通过本道例题让我们学会运用逐步回归命令stepwise 来分析多自变量情况下的最优模型问题,得到最优模型后,我们再运用残差法找到不符的数据,将其剔除,这样我们就会得到一个比较科学准确的关系式,这个思路对我们分析回归问题很有效。

题目2

一家洗衣粉制造公司新产品实验时,关心洗衣粉泡沫的高度y 与搅拌程度X1和洗衣粉用量X2之间的关系,其中搅拌程度从弱到强分为3

相关文档
最新文档