R可视乎|回归诊断
回归应该算得上统计分析中最常用的建模手段,要判断最终得到的模型是否准确,还需要进行关键的一步——
回归诊断
。用过 R 语言进行回归分析的小伙伴应该知道,base 包里的
plot()
函数可以直接绘制诊断结果,今天小编介绍一个更方便的工具:
Lindia包[1]
,
使用这个包可以获得更详细的回归诊断结果,语法也非常简单
,下面跟着小编一起学习吧~
Lindia 包简介
Lindia 是 ggplot2 的扩展,提供更详细的线性模型诊断结果的可视化功能。Lindia 中的所有函数输入都必须为 lm 对象(包括
lm()
和
glm()
),并以 ggplot 对象的形式返回线性诊断图。
引言
这里以 Cars93 数据集为例,建立一个线性回归模型。
library(MASS)
data(Cars93)
cars_lm <- lm(Price ~ Passengers + Length + RPM, data = Cars93)
首先,介绍一下使用 base 包中的
plot()
函数进行回归诊断
par(mfrow = c(2,2))
plot(cars_lm)
【🌟🌟🌟】 这四幅图的含义为[2] : (1) Residuals vs Fitted:残差和拟合值。 如果红线能很好地拟合大部分散点且是近乎水平的,则说明自变量和因变量是线性相关的。若呈较明显的曲线,则应考虑可能存在非线性关系。 (2) Normal Q-Q:QQ图,用来检验正态性。 若满足正态假设,那么图上的点应该落在呈45度角的直线上;若不是如此,那么就违反了正态性的假设。 (3) Scale - Location:检验方差齐性。 若满足假设,则散点会均匀地分布在水平线上。 (4) Residuals - Leverage:判断是否有极端值。 判断依据是 cook's distance(库克距离),在红色等高线外的点可以考虑将其删除。
方法介绍
下面正式介绍今天的主角:
Lindia
包,该包来源于 github ,使用其中的
gg_diagnose()
函数实现诊断结果全输出:
# 安装包
devtools::install_github("yeukyul/lindia")
library(lindia)