当在使用线性回归进行分析时,常常会碰到以下这几个问题,识别和解决这些问题是保证线性回归分析结果准确可信的重要前提。
数据非线性(Non-linearity)
即预测变量X与响应变量Y之间的关系为非线性。
问题:如果X与Y的关系为非线性,那通过线性回归得出的结果将是不可信的。
判断:在一元线性回归中,可绘制残差E与预测变量X的散点图,在多元线性回归中,可绘制残差E与预测值predict(Y)的散点图。
残差E = 响应变量Y – 预测值predict(Y)
残差图若存在明显规律,则表示线性模型的某些方面可能有问题。即有规律的残差图可能指示数据为非线性。
解决:如果数据中存在非线性关系,一种简单的方法是对预测变量X进行非线性变换,如:进行对数转换ln(X) , 平方转换X2 , 平方根转换 。
误差存在相关(Correlation of Error)
在一元线性回归中,Y = aX + b,其中b既叫截距,也叫误差项。
误差相关指bn值与bn+1值存在关系,或者说通过bn值可以推断出bn+1值。
问题:误差项之间存在相关会导致低估真实的标准误,从而使得置信区间更窄。比如:在正态分布下,95%置信区间的计算公式为:
Mean(X)+1.96*SE ≥ X ≥ Mean(X)-1.96*SE
假如上式中,X的均值Mean(X)=5,标准误SE=2,计算得X的值有95%的可能性在1~9之间。
如果误差项之间存在相关,使得标准误SE变小,SE=1,则结果是X的值有95%的可能性在3~7之间。最后如果X等于2或8,将会做出错误的结果推论。
判断:误差项之间存在相关经常出现于时间序列(time series)数据,即在不同的时间点测量得到的观测数据中。
可绘制每个观测数据的残差图,如果相邻的残差有类似或趋势相近的值,则可能指示误差项之间存在相关。
解决:前期良好的实验设计和数据收集方案至关重要!
误差方差不恒定(Non-constant Variance of Error)
通常情况下,误差项的方差不是恒定的,但误差项的方差恒定是线性回归模型的一个重要假设。因此,该假设可变为:需要误差项的方差稳定在一个范围区间内。
问题:误差方差不恒定将导致标准误差、置信区间等的计算结果出现问题。
判断:可绘制残差E与预测值predict(Y)的散点图。残差如果稳定的在一个范围区间内波动,说明误差方差恒定,否则即为不恒定。
解决:当误差方差不恒定时,一种简单的方法是对响应变量Y进行变换,如:进行对数转换ln(Y) ,平方根转换 。这种变换使得Y值整体性的减小,从而起到降低误差方差不恒定的作用。
响应变量Y异常(Outliers)
指某个或某些预测值predict(Y)与实际Y值相差很大的现象。
问题:异常的Y值将使得回归模型的解释力度(R2)降低、残差标准误(Residual standard error, RSE) 增加。
RSE = sqrt( RSS / (n-2) )
RSS = SUM( (响应变量Y – 预测值predict(Y))2 )
RSS意为残差平方和(Residual sum of squares),n为响应变量Y的数量,sqrt()意为开平方根。
判断:可绘制学生化残差(studentized residuals,SR)与预测值predict(Y)的散点图。SR超出±2.5区间的Y值为异常值。SR等于残差除以残差的标准差,其意义近似于在t检验中求t值,故也称作标准化残差。
解决:如果数据量特别大,可直接删除异常Y值。但是,异常的Y值也可能暗示模型存在缺陷,即缺少重要的预测变量X。
预测变量X异常(High Leverage Points)
指实际的观测值X比其他X值异常过大或过小的现象。
问题:异常X值将导致回归模型的解释性错误增大,模型拟合出现问题。
判断:在R语言中,语句cooks.distance()、hatvalues()、rstudent()是求取异常值的三个语句(一般各类统计软件中都有类似的计算)。其中,rstudent()即上面所说的标准化残差,用于判断异常的Y值;hatvalues()被用于判断异常的X值。
cooks.distance()被用于判断对回归模型的拟合有异常影响力的一组数据(X和Y)。
解决:如果数据量特别大,可直接删除(hat值)异常的X值。
需要注意的是,对cook值较大的数据需要谨慎处理,它综合考虑了模型的解释性和拟合性,当值较大时,说明存在异常值 (标准化残差值或hat值异常),其值指示了相应数据对模型拟合的影响程度。
共线性(Collinearity)
共线性是指两个或多个预测变量X之间存在高度相关,在进行多元回归建模时,首先需要进行共线性检验。
问题:共线性将导致混淆不同的预测变量X对响应变量Y的影响,无法区分不同预测变量X的影响力,并降低了对回归系数估计的准确性。
判断:可以通过相关系数判断两两变量间是否存在共线性。如果变量超过两个,由于可能出现三个或更多变量之间存在共线性(被称为多重共线性),则需要计算方差膨胀因子(variance inflation factor , VIF) 来进行判断。通常,如果某个预测变量X的VIF大于5,则预示着该X会导致共线性。
解决:解决共线性主要有两种方法:第一种是剔除共线性高的问题变量,剔除后需要比较剔除前的模型解释力与剔除后的模型解释力,即R2的变化。如果解释力降低过多,则不能随意剔除。第二种是把存在共线性的变量组合成一个单一的预测变量,如取两个变量的平均值。
END
这么厉害啊,你简直是大神啊!
大神好,您如何看待心理测评?以及测量工具的应用是否存在价值?