资源描述:
《利用R讨论影响人均消费水平的因素.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一.问题描述1.设定问题与收集数据影响一个地区人均消费水平的因素有很多,例如,一个地区的GDP,该地区人均可支配收入,该地区的教育水平,以及地区人口增长变化情况等,下面我们选取6个解释变量研究地区人均消费水平,解释变量分别为:x1四川地区生产总值,x2人口自然增长率,x3高等学校在校学生数,x4农林牧渔业总产值,x5卫生机构人员数,x6人均可支配收入。选取了2014年《四川省统计年鉴》中1990年到2013年的历年数据,以四川地区人均消费水平为因变量,以如上6个自变量作多元线性回归。数据如下2.
2、阐述理论由经济理论知,地区GDP,地区人均可支配收入,高等学校在校学生数(代表教育水平),农林牧渔业总产值(代表基础消费品供应水平),卫生机构人员数(医疗水平),以及人口自然增长率(人口变化水平)是影响各省GDP的主要因素。通常情况下,除了人口自然增长率以外的其余5个解释变量与人均消费水平呈正相关关系,而人口自然增长率则呈负相关关系。在这里,将人均消费水平作为被解释变量,其余6个变量作为解释变量,建立x1,x2,...,x6与y的多元线性回归模型。二处理数据1.多元回归分析(1)画散点图>set
3、wd("D:/R-3.2.3/data")>mydata<-read.csv("book2.csv",header=T)>plot(mydata)由上图,可以看到y与除X2以外的其余解释变量呈正相关,与X2呈负相关,与我们的分析一致,还可以看到,解释变量本身存在相关性,可能存在多重多线性。(2)将数据标准化与求其相关系数>mydata_scale<-scale(mydata)>mydata_scale_cor<-cor(mydata_scale)>hist(mydata_scale_cor,xl
4、ab="cor")由相关系数的频率直方图可知,大部分相关系数在0.9~1之间,相关性很强,作回归分析较为合理。(3)得到线性拟合模型mydata_scale<-as.data.frame(mydata_scale)tlm<-lm(y~x1+x2+x3+x4+x5+x6,data=mydata_scale)summary(tlm)得到:由上表看到,F值=3633,P值=2.2*10^16,说明回归方程整体显著,但是x2,x4,x5,x6未通过T检验,并且系数不是整体显著,故应当得继续优化该模型。(
5、4)逐步回归tstep<-step(tlm)#逐步回归通过逐步回归法,剔除x6,x4两个变量,得到最优模型summary(tstep):drop1(tstep)tlm<-lm(y~x1+x2+x3+x5,data=mydata_scale)summary(tlm)可以看到,剩余的x1,x2,x3,x5都通过了T检验。P值最大的为x2=0.0321,但也满足小于0.05,所以都是高度显著,回归方程即:y=4.231e-18+9.196e-01*x1-6.044e-02*x6-1.912e-01*x
6、3+2.183e-01*x5(5)多重共线性library(car)vif(tlm)#多重共线性mean(vif(tlm))由上表看到,解释变量的VIF值的均值为359.912,远大于10,说明存在较强的多重共线性,其中x1,x2,x3,x4,x5,x6的VIF值都大于10,x6=884.33035为最大。下面逐一剔除VIF值大于10的解释变量,从最大的x6开始剔除,直到剩余所有解释变量的VIF值小于10即可得到最终回归模型。tlm<-lm(y~x1+x2+x3+x4+x5,data=mydat
7、a_scale)#剔除x6vif(tlm)由上表看到,VIF值大于10的为x1,x2,x3.x4,x5,其中x5最大,故剔除x5。tlm<-lm(y~x1+x2+x3+x4,data=mydata_scale)#剔除x5vif(tlm)由上表看到,VIF值大于10的解释变量为x1,x3,x4,其中x4最大,故剔除x4。tlm<-lm(y~x1+x2+x3,data=mydata_scale)#剔除x4vif(tlm)由上表看到,VIF值大于10的解释变量为x3,故剔除x4。由上表看到,所有解释变
8、量都小于10,说明此模型不存在强多重共线性,可以作为最终回归模型。tlm<-lm(y~x1+x2,data=mydata_scale)summary(tlm)由上表看到,所有的解释变量都小于10,R方=0.9983,F值=6200。最后得到的最终回归模型为:Y=-3.869e-17+9.662e-01*x1-4.5e-02*x21.主成分分析:mydata.pr<-princomp(mydata,cor=TRUE)summary(mydata.pr,loadings=TRUE)结果如下:前两个主