资源描述:
《数学实验回归分析.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数学实验报告学 院:班 级:学 号:姓 名:完成日期:2016年6月24日回归分析题目(一)一.实验目的1.了解回归分析的基本原理,掌握MATLAB实现的方法.2.练习用回归分析解决实际问题。二.问题描述社会学家认为犯罪与收入低、失业及人口规模有关,对20个城市的犯罪率y(每10万人中犯罪的人数)与年收入低于5000美元家庭的百分比x1、失业率x2和人口总数x3(千人)进行了调查,结果如表11-16所示。表11-16(1)若x1~x3中至多只许选择2个变量,最好的模型是什么?(2)包含3个自变量的模型比上面的模型好吗?确定最终模型。(
2、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.
3、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的关系关系较为复杂,因此
4、,选择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.0024P<0.0001S2=21.8247置信区间没有包含0,R较大,p很小。因此,模型可以是:y=-34
5、.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.6946P<0.0001S2=
6、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.81
7、2.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)
8、,x1',x2'];[b,bint,r,rint,s]=regress(y',X);b,bint,srcoplot(r,rint)stepwise(x,y')%进行