R语言 如何创建一个残差图
在这篇文章中,我们将探讨在R编程语言中创建残差图的逐步程序。
残差图 经常被用来评估回归分析中的残差是否为正态分布,以及是否表现出异方差性。
让我们在R编程语言中创建一个残差图。
第1步:拟合回归模型
在这一步中,我们将使用iris数据集(这是rstudio的内置数据集)作为响应变量,使用lm()函数将Sepal.Length和Sepal.Width作为解释变量来拟合回归模型,然后进一步调用resid()函数,通过这个回归模型来获得模型的残差列表。
# load the dataset
data("iris")
# select Target attribute and
# Predictor attribute
Y<- iris[,"Sepal.Width"]
X<- iris[,"Sepal.Length"]
# fit a regression model
model <- lm(Y~X)
# get list of residuals
res <- resid(model)
res
输出 。
第2步:生成残差与拟合图
在这一步中,我们要绘制一个模态残差与过滤模型的散点图,以直观地检测异方差–例如,在一定范围内残差分布的系统变化。
# produce residual vs. fitted plot
plot(fitted(model), res)
# add a horizontal line at 0
abline(0,0)
输出 。
第3步:产生一个Q-Q图
这里,我们使用qqnorm()函数绘制Q-Q图,以确定残差是否遵循正态分布。如果使用传入所需参数的qqline()函数,图中的数据值沿着45度角的大致直线下降,那么数据就是正态分布。而在输出中,残差往往在尾部附近偏离直线相当多,这表明它们不是正态分布。
# create Q-Q plot for residuals
qqnorm(res)
# add a straight diagonal line
# to the plot
qqline(res)
输出 。
第4步: 产生一个密度图
在这一步中,我们绘制密度图以直观地检查残差是否为正态分布。如果该图大致呈钟形,那么残差很可能遵循正态分布,与输出相比,密度图大致呈钟形,这确保了残差更具有正态分布。
plot(density(res))
输出 。