如何在 r 中创建残差直方图
直观地验证这一假设的一种方法是创建残差直方图,并观察分布是否遵循让人想起正态分布的“钟形”形状。
本教程提供了如何在 R 中为回归模型创建残差直方图的分步示例。
第 1 步:创建数据
首先,让我们创建一些假数据来使用:
#make this example reproducible set.seed(0) #createdata x1 <- rnorm(n=100, 2, 1) x2 <- rnorm(100, 4, 3) y <- rnorm(100, 2, 3) data <- data.frame(x1, x2, y) #view first six rows of data head(data) x1 x2 y 1 3.262954 6.3455776 -1.1371530 2 1.673767 1.6696701 -0.6886338 3 3.329799 2.1520303 5.8081615 4 3.272429 4.1397409 3.7815228 5 2.414641 0.6088427 4.3269030 6 0.460050 5.7301563 6.6721111
步骤 2:拟合回归模型
接下来,我们将对数据拟合多元线性回归模型:
#fit multiple linear regression model
model <- lm(y ~ x1 + x2, data=data)
第 3 步:创建残差直方图
最后,我们将使用ggplot可视化包创建模型残差的直方图:
#load ggplot2
library (ggplot2)
#create histogram of residuals
ggplot(data = data, aes (x = model$residuals)) +
geom_histogram(fill = ' steelblue ', color = ' black ') +
labs(title = ' Histogram of Residuals ', x = ' Residuals ', y = ' Frequency ')
请注意,我们还可以使用bin参数指定放置残基的箱数。
方框越少,直方图中的条形就越宽。例如,我们可以指定20 个 bin :
#create histogram of residuals
ggplot(data = data, aes (x = model$residuals)) +
geom_histogram(bins = 20 , fill = ' steelblue ', color = ' black ') +
labs(title = ' Histogram of Residuals ', x = ' Residuals ', y = ' Frequency ')
或者我们可以指定10 个 bin :
#create histogram of residuals
ggplot(data = data, aes (x = model$residuals)) +
geom_histogram(bins = 10 , fill = ' steelblue ', color = ' black ') +
labs(title = ' Histogram of Residuals ', x = ' Residuals ', y = ' Frequency ')
无论我们指定多少个框,我们都可以看到残差近似正态分布。
我们还可以执行夏皮罗-威尔克、科尔莫戈洛夫-斯米尔诺夫或雅克-贝拉等正式统计检验来检验正态性。
然而,请记住,这些检验对大样本量很敏感——也就是说,当样本量很大时,它们通常得出残差不正常的结论。
因此,通过创建残差直方图通常更容易评估正态性。