回归中异常值的残差诊断探讨北方民族大学信息与计算科学学院马耀兰魏波摘要:本文阐述了用残差进行诊断,主要包括:异常值的普通(非标准化)残差诊断、异常值的剔除残差诊断和异常值的学生化剔除残差诊断。对异常值的处理问题还进行了进一步的探讨,提出了处理异常值的一般性的理论和方法。关键字:异常值;残差诊断作者简介:姓名:马耀兰,女,1981-,宁夏同心人,本科北方民族大学信息与计算科学学院教师。魏波,男,1979-,宁夏银川人,本科,北方民族大学信息与计算科学学院教师1引言回归分析是统计学中一个非常重要的分支,它在自然科学、管理科学和社会等领域应用十分广泛。在回归分析中的一个重要的假设是,使用的模型对所有的数据是适当的。在实际应用中通常会有个别案例观测值似乎与模型不相符,但模型拟合于大多数数据。其中不适合的个别案例就是我们所说的异常值。对于异常值的来源通常有主观和客观两个原因。主观原因是由于人们在收集和记录数据的时候出现错误所造成的。这种异常值诊断出后处理很容易。客观原因是有两类机制所造成的,即重尾分布和混合分布,弄清这类异常值产生的原因很重要,因为这将直接影响后面数据的分析。例如:我们可以想象一个地质模型,其中异常值对应着石油储藏或其他有用特征的案例。它与大多数案例分析不一样,这样的异常值就成了分析目的。因此,对于异常值点不应该机械被删除或自动降低权重,因为他们不一定是坏的观测。相反,如果是准确的,就可能是数据中包含信息最多的值。2异常值检验2.1残差诊断异常值的残差诊断是从直接反映拟合效果好坏的残差入手。常用的残差有:普通残差、预测残差、学生化残差、递归残差和不相关残差。在这里主要以一元线性回归模型为例,用普通残差、预测残差、学生化残差来进行异常值的检验。一元线性回归模型为:),0(~210NXy(2.1.1)对于n个观测点为niyxii,...,2,1),,(模型的最小二乘估计为:nixyii,...,2,1,^1^0^(2.1.2)2.1.1异常值的普通(非标准化)残差诊断普通残差就是最小二乘残差,就是通过最小二乘回归后得到的残差,记为^。第i个样本观测值的普通残差为:^^iiiyy在古典线性回归模型的假设下,niNi,...,2,1),,0(~2^构造统计量:^~(2)itnS(2.1.1.1)其中,njjnS1^22为的最小二估计量。在1的置信水平下,查t分布表)2(2nt,凡满足Snti)2(2^的观测值就可以认为是异常值。在大样本的情况下,t分布与正态分布十分接近,因此,也可以按照正态分布的3原则判断异常值。由普通残差的定义有:niLxhxxiiii,...,2,1)1()1()var(222^。其中,xxjijnjjxxLxxhxL)(,12,显然有:iixxixxjjijijhLxLxxh2222)(从上面可以看出普通残差^i存在异方差问题,并且异方差大小取决于自变量ix的数值,条件niNi,...,2,1),,0(~2^很难满足。因此,用普通残差诊断异常值是不合适的,它只能作为一个参考。2.1.2异常值的删除残差诊断在n个样本观测值的情况下,每次有1n个样本观测值进行回归分析,并用所得到的估计结果来预测省略的哪个样本值,这样就可以得到删除残差:^**iiiyy(2.1.2.1)其中^*iy为n个样本观测值中除去第i样本观测值后得到的iy的拟合值。在古典线形回归模型假设下,构造统计量:)2(~**ntSi(2.1.2.2)其中)2(])([12**nSnjj。在1的置信水平下,查t分布表)2(2nt,凡是满足**2(2)itnS的观测值就可以认为是异常值。在大样本情况下,也可以按照正态分布的3原则判断异常值。与普通残差相比,尽管删除残差也存在异方差问题:)1()1()]([)]1()([)(22***iiiiiiiiihhVarhVarVar,但在诊断异常值时普通残差要包括异常值在内的所有样本观测值来拟合获得,所以很难发现异常值。而删除残差用其他样本观测值来拟合获得,因而更容易发现异常值。2.1.3异常值的学生化删除残差诊断学生化删除残差是删除残差除以其估计标准差,记为*ir,设去掉第i个观测值的回归模型中的2的无偏估计为2)(iS,则第i个观测值的学生化删除残差为:1)(,*)(**iiiirVarSr(2.1.3.1)此时,)3(~*ntri,在1置信水平下查t分布表得到)3(2nt,凡是满足)3(2*ntri的观测值就可以认为是异常值。当然在大样本情况下也可以用正态分布的3原则判断异常值。与删除残差相比,学生化删除残差不存在异方差问题。因此通过学生化删除残差来诊断异常值更科学,更准确。算例智力测试数据:下表是教育学家测试的21个儿童的记录,其中X是儿童的年龄(与月为单位),Y表示某种智力指标,通过这些数据要建立智力随年龄变化的关系。先考虑其线性模型。表2.1组数12345678910x152610915201811820y95718391102879310010494组数1112131415161718192021x79101111101242171110y1139683841021001055712186100用SPSS统计软件求的其线性回归方程为:y=109.874-1.127x用SPSS统计软件得到的残差图:60.0080.00100.00120.00y-2-10123RegressionStandardizedResidualDependentVariable:yScatterplot60.0080.00100.00120.00y-20-10010203040RegressionDeleted(Press)ResidualDependentVariable:yScatterplot图2.1图2.260.0080.00100.00120.00y-2-10123RegressionStudentizedResidualDependentVariable:yScatterplot60.0080.00100.00120.00y-2-101234RegressionStudentizedDeleted(Press)...DependentVariable:yScatterplot图2.3图2.4上面的图分别是因变量与标准化残差(图2.1)、剔除残差(图2.2)、学生化残差(图2.3)、学生化剔除残差(图2.4)的散点图。从上面4幅散点图可以看到,有一点残差远离0点,推断它可能是异常值。同时用SPSS统计软件可以求出它的各种残差、COOK距离和高杆值见下表:组数RES_1DRE_1ZRE_1SRE_1SDR_1COO_1LEV_112.030992.1330.180.190.18002-9.57213-11.3-0.9-0.9-0.90.080.113-15.604-16.6-1.4-1.5-1.50.070.024-8.73094-9.39-0.8-0.8-0.80.030.0259.030999.4860.820.840.830.0206-0.33406-0.36-0-0-000.0373.411963.6220.310.320.3100.0182.523042.6750.230.240.2300.0193.142073.4150.290.30.2900.03106.665947.1880.60.630.620.020.031111.0150812.1111.051.050.050.0412-3.73094-4.01-0.3-0.4-0.300.0213-15.604-16.6-1.4-1.5-1.50.070.0214-13.477-14.3-1.2-1.3-1.30.050.01154.523044.7950.410.420.410.010.01161.396051.490.130.130.1300.02178.650039.1260.780.810.80.02018-5.54031-15.9-0.5-0.9-0.80.680.61930.2849731.982.752.823.610.220.0120-11.477-12.2-1-1.1-1.10.030.01211.396051.490.130.130.1300.02表2.2其中:非标准化残差(RES_1)、剔除残差(DRE_1)、标准化残差(ZRE_1)、学生化残差(SRE_1)、学生化剔除残差(SDR_1)、COOK距离(COO_1)、高杠杆值(LEV_1)。取05.0对他们进行残差诊断,求得S=11.023,0.025(19)2.093,t因此有0.025(19)22.476,St与普通残差相比只有第19组数据的残差为30.28497比476.22)19(025.0tS大,所以从异常值的普通残差(非标准化残差)诊断认为第6组数据为异常值。还可以算出249.12*S,因此有*0.025(19)25.637,St与预测残差(剔除残差)相比只有第19组数据的残差为31.98,比637.25)19(025.0*tS大,从异常值的剔除残差诊断认为第19组数据为异常值。已知学生化剔除残差最大值是第19组数据的残差为3.61,大于0.025(18)2.101,t而其他残差值小于101.2)18(025.0t,故从学生化剔除残差也可以认为第19组数据为异常值。从整个残差表中残差的值,可以看出除第19组数据外,其他数据用残差诊断都可以认为不是异常值,即只有第19组数据是异常值。第18组数据的残差相对较小,但其COOK距离和高杠杆值均远远大于其他值(甚至是19组数据的值),所以第18组数据是一个影响很大的数据。因此,可以利用COOK距离和高杠杆值判断第18组据为高杠杆点。一般异常值往往有极大的残差,而高杠杆点往往仅仅是对应于极端大的iih点,不一定有极大的残差。3结论3.1异常值的处理诊断出异常值后,就要进一步判断引起异常值的原因,通常引起异常值的原因有下面几条:异常值的原因异常值的消除方法数据登记错误,存在抄写或录入的错误重新核实数据数据测量错误重新测量数据数据随机误差删除或重新观测异常值数据缺少重要自变量增加必要的自变量缺少观察数据增加观测数据,适当扩大自变量的取值范围存在异方差采用加权线性回归模型选取错误,线性模型不适合改用非线性回归模型对引起异常值的不同原因,需要采用不同的处理方法。如果一个异常值的数据是准确的,但是找不到对它合理的解释,与剔除这个观测值相比,一个更稳健的方法就是抑制它的影响。参考文献[1]《应用回归分析》何晓群刘文卿编著中国人民大学出版社2001[2]《线性回归模型引论》王松桂史建红等编科学出版社2005[3]《现代回归模型诊断》吴喜之田茂再编著中国统计出版社2003[4]《统计软件SPSS系列》苏金明傅荣华等编著电子工业出版社2002