机器学习第一讲 R语言线性回归假设检验以及解决方法

①变量之间不存在完全共线性

判定方法:计算变量之间的相关系数(或者计算方差膨胀因子 vif(fit) )
如果方差膨胀因子超过10,则回归模型存在严重的多重共线性。

结果判定:
相关系数 相关性
0.0-0.2 极弱相关或无相关
0.2-0.4 弱相关
0.4-0.6 中等程度相关
0.6-0.8 强相关
0.8-1.0 极强相关

处理方法:删掉VIF过大且不显著的变量

②样本的随机抽样性

判定方法:这个我们通过数据收集方式的先验知识来判断最优,我们不知道是也可以通过残差的独立性来看,在R的car包中提供了一个可做独立性检测(durbin-watson检验)的函数durbinWatsonTest(Model)。
结果判定:P值>0.05 则接受原假设,即序列间不存在自相关性

③误差的条件均值为0

误差项里不包括自变量的任何信息,这个在作解释是十分重要的。也可以证明均值为0的条件总是可以达到的,通过适当变换。

④正态性检验

判定方法:使用qqPlot (Model) 来检验正态性(或函数norm.test、jarque bera test)
结果判定:若残差的点都近似落在45°直线上,则残差满足正态分布 (P值>0.05 则接受原假设,即残差服从正态分布)
处理方法:如果误差项不满足正态性检验,则考虑对因变量采取BOX-COX 转换,使用的是car包中的powerTransform()函数

⑤同方差假设

判定方法:用car包中的ncv.test()函数。
结果判定:P值>0.05 则接受原假设,即不存在明显的异方差现象。
处理方法:消除异方差性的方法通常有加权最小二乘法、Box-Cox变换法。

⑥线性检验

判定方法:关于因变量与自变量的线性假设,可以通过成分残差图来判断各个变量与因变量之间是否存在线性相关。该图的实现可运用car包的crPlots()函数。(或者直接画因变量与自变量之间的散点图)
结果判定:可以通过红线和绿线趋势是否一致来判断线性关系。
处理方法:如果不存在线性关系,可以考虑变量变换(对数变换、指数变换、多项式变换)

你可能感兴趣的:(线性回归,假设检验,机器学习)