R语言之违背基本假设的几种情况xt4.16

第4章 违背基本假设的几种情况
4.16 对第3章思考与练习中第11题做异常值检验 。
研究货运总量y(万吨)与工业总产值x1(亿元)、农业总产值x2(亿元)、居民非商品支出x3(亿元)的关系 。
解:
(1)建立y与x1,x2 , x3的三元回归方程 , 分别计算普通残差,学生化残差,删除残差 , 删除学生化残差,中心化杠杆值,库克距离 。
# 第1次异常值检验 -----data3.11 <- read.csv('D:/rwork/应用回归/习题数据/表3-9.csv',head=TRUE)attach(data3.11) #将该数据框添加到R的搜索路径,以便于下面直接使用数据框中的数组x和ylm3.11 <- lm(y~x1+x2+x3,data=http://www.kingceram.com/post/data3.11) #建立回归方程summary(lm3.11)# 得到y^=-348.280+3.754x1+7.101x2+12.447x3,σ^=23.44e <- resid(lm3.11) #普通残差eiZRE <- e/23.44 #计算标准化残差,ZRE=e/σ^ , σ^=23.44SRE <- rstandard(lm3.11) #计算学生化残差,SRE=e/(σ^*sqrt(1-hii))SRE_drop <- rstudent(lm3.11) #计算删除学生化残差SRE(i)hii <- hatvalues(lm3.11) #计算杠杆值D <- cooks.distance(lm3.11) #计算库克距离# 杠杆值hii的平均值meanh=sum(hii)/n=(p+1)/n=0.4result4.16 <- data.frame(x1,x2,x3,y,e,SRE,SRE_drop,hii,D)result4.16detach(data3.11) #与attach()相对应 , 将数据框从搜索路径中移除
由异常值检验结果可以看到 , 绝对值最大的学生化残差为SRE6=2.1163,因而根据删除学生化残差诊断认为第6个数据为异常值 。其杠杆值为h6=0.742位居第一,库克距离D6=3.216位居第一 。由于h6=0.742>,因而从杠杆值看第6个数据是自变量的异常值,同时库克距离D6=3.216>1 , 这样第6个数据为异常值是由自变量异常与因变量异常两个原因共同引起的 。
【R语言之违背基本假设的几种情况xt4.16】

R语言之违背基本假设的几种情况xt4.16

文章插图
(2)删除第6组数据,重新做回归分析并进行异常值检验 。
# 第2次异常值检验 -----data3.11_drop6 <- data3.11[c(-6),]attach(data3.11_drop6) #将该数据框添加到R的搜索路径,以便于下面直接使用数据框中的数组x和ylm3.11_drop6 <- lm(y~x1+x2+x3,data=http://www.kingceram.com/post/data3.11_drop6) #建立回归方程summary(lm3.11_drop6) # 得到y^_new=-659.510+4.070x1+16.043x2-14.359x3,σ^=12.94e_new <- resid(lm3.11_drop6) #普通残差eiZRE_new <- e_new/12.94 #计算标准化残差,ZRE=e/σ^,σ^=12.94SRE_new <- rstandard(lm3.11_drop6) #计算学生化残差,SRE=e/(σ^*sqrt(1-hii))SRE_drop_new <- rstudent(lm3.11_drop6) #计算删除学生化残差SRE(i)hii_new <- hatvalues(lm3.11_drop6) #计算杠杆值D_new <- cooks.distance(lm3.11_drop6) #计算库克距离# 杠杆值hii_new的平均值meanh_new=sum(hii_new)/n_new=(p+1)/n_new=0.44result4.16_drop6 <- data.frame(x1,x2,x3,y,e_new,SRE_new,SRE_drop_new,hii_new,D_new)result4.16_drop6detach(data3.11_drop6) #与attach()相对应,将数据框从搜索路径中移除
由异常值检验结果可以看到,绝对值最大的学生化残差为SRE5=1.534 所以可判断异常值的原因是由于数据登记或实际问题有突变引起的 。
参考课本:应用回归分析(R语言版),何晓群编著