开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天,点击查看活动详情
项目实操——回归诊断
找到回归模型之后,我们仍需要解决以下的问题:
这个模型是否是最佳的模型?
模型最大程度满足OLS模型的统计假设?
模型是否经得起更多数据的检验?
如果拟合出来的模型指标不好,该如何继续下去?
我们需要从多个维度对回归分析的结果进行诊断
除了利用summary()函数统计出来的各个指标进行检验,还可以用plot()函数进行绘图,可以生成评价拟合模型的四幅图
下面我们来举个例子:
我们还是使用women这个数据集:
fit <- lm(weight ~ height,data = women)
par(mfrow=c(2,2))
plot(fit)
#par()函数可以修改plot()函数的绘图参数,par()函数的mfrow选项参数可以定制图形的分布,默认是一张图上显示一幅图,可以使这个参数等于c这个向量,mfrow=c(2,2)表示横排显示两幅,纵排显示两幅,这样就可以将四幅图显示在一个画面内。
不是所有的数据都可以使用OLS模型进行拟合的,需要满足以下的前提条件:
正态性:对于固定的自变量值,因变量需要呈正态的分布
独立性:自变量之间相互独立
线性:因变量与自变量之间为线性相关
同方差性:因变量的方差不随自变量的水平不同而变化,也可以称作不变方差
第一幅图是残差与拟合的图,这幅图用来表示因变量与自变量是否呈线性关系,图中的点是残差值的分布,线为拟合曲线。如果图中是一个曲线的分布,说明可能存在二次项的分布
第二幅图是R中比较常见的qq图,QQ图用来描述正态性,如果数据呈正态分布,那么在QQ图中就是一条直线
第三幅图是位置与尺寸图,用来描述同方差性,如果满足不变方差的假设,那么图中水平线周围的点应该是随机分布的
第四幅图是残差与杠杆图,提供了对单个数据值的观测,从图中可以看到哪些点偏差较远,可以用来鉴别离群点、高杠杆点和强影响点,高杠杆点表示它是一个异常的预测变量的组合;强影响点表示这个值对模型参数的估计产生的影响较大,如果删除或者转换就可能违背客观数据的
事实
但是这四幅图没办法说明数据是否具有独立性
只能从收集的数据中验证,要判断收集的数据是否独立,我们可以拟合函数再加一个二次项,再绘制一次图看一下。
fit2 <- lm(weight ~ height+I(height^2),data = women)
> opar <- par(no.readonly = TRUE)
> par(mfrow=c(2,2))
> plot(fit2)
结果明显好一些:
抽样法验证:
1、数据集中有1000个样本,随机抽取500个数据进行回归分析;
2、模型建好之后,利用predict()函数,对剩余的500个样本进行预测,比较残差值
3、如果预测准确,说明模型可以,否则就需要调整模型。