资源描述:
《用r软件做线性回归分析问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一元线性回归分析一、问题考察温度对产量的影响,测得下列10组数据:温度X()20253035404550556065产量Y()13.215.116.417.117.918.719.621.222.524.3二、要求(1)试画出这10对观测值的散点图。(2)求Y和X的相关系数,并判断X、Y是否存在线性相关性。(3)用最小二乘法求出Y对的线性回归方程。(4)求出回归的标准误差与回归拟合系数.(5)对回归方程做显著性检验。(6)画出回归残差图并做相应分析。(7)若温度为62,则产量为多少,并给出置信水平为95%的预测区间。三、目的和意义学会使用R软件来做回归分析问
2、题。四、实验步骤1.绘制x与y的散点图,初步确定回归方程,输入下列程序:>X<-matrix(c(20,13.2,25,15.1,30,16.4,35,17.1,40,17.9,45,18.7,50,19.6,55,21.2,60,22.5,65,24.3),ncol=2,byrow=T,dimnames=list(1:10,c("x","y")))>forbes<-as.data.frame(X)>plot(forbes$x,forbes$y)图表1从窗口中可以观察到,x与y大致成线性关系,假设其为y=β0+β1x;2.做回归分析,输入下列程序:>lm.sol
3、<-lm(y~x,data=forbes)>summary(lm.sol)得到Call:lm(formula=y~x,data=forbes)Residuals:Min1QMedian3QMax-0.67273-0.33333-0.072730.345450.68182Coefficients:EstimateStd.ErrortvaluePr(>
4、t
5、)(Intercept)9.121210.4770819.125.8e-08***x0.223030.0106320.972.8e-08***---Signif.codes:0‘***’0.001‘**’0.01
6、‘*’0.05‘.’0.1‘’1Residualstandarderror:0.483on8degreesoffreedomMultipleR-squared:0.9821,AdjustedR-squared:0.9799F-statistic:439.8on1and8DF,p-value:2.805e-08有以上计算结果得:β0=9.12121,β1=0.22303,sdβ0=0.47708,sdβ1=0.1063,对应两个系数的P-值均小于5.8×10-8,是非常显著的,关于方程的检验,残差的标准差σ=0.483,相关系数的平方R2=0.9821,关于F分布
7、的P-值为2.805×10-8,也是非常显著的。该模型能够通过t检验和f检验,因此回归方程为y=9.12121+0.223.3x我们将得到直线方程放在散点图上,得到图表2:图表2下面分析残差,输入>abline(lm.sol)>y.res<-residuals(lm.sol);plot(y.res)得到残差图图表3图表3由上图知大部分点的绝对值都在0.6以内,第7个点有点反常,可能存在一点问题,现在做一些简单的处理:text(7,y.res[7],labels=7,adj=1.2)>i<-1:10;forbes7<-as.data.frame(X[i!=7,])
8、>lm7<-lm(y~x,data=forbes7)>summary(lm7)得到Call:lm(formula=y~x,data=forbes7)Residuals:Min1QMedian3QMax-0.5417-0.3000-0.12920.37500.5458Coefficients:EstimateStd.ErrortvaluePr(>
9、t
10、)(Intercept)9.0791670.43415420.911.44e-07***x0.2258330.00981123.027.40e-08***---Signif.codes:0‘***’0.001‘**’
11、0.01‘*’0.05‘.’0.1‘’1Residualstandarderror:0.4387on7degreesoffreedomMultipleR-squared:0.987,AdjustedR-squared:0.9851F-statistic:529.9on1and7DF,p-value:7.403e-08可以对比发现,回归系数没有发生什么变化,R2系数有所提高,但是p值增大很多,说明样本点7不能去掉。所以回归方程还是y=9.12121+0.223.3x3.预测若温度为62,给出置信水平为95%的预测区间,输入以下代码>new<-data.frame(
12、x=62)>lm.pre