如何在 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 ')

R中残差的直方图

请注意,我们还可以使用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 ') 

R中的残差直方图

或者我们可以指定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 ') 

无论我们指定多少个框,我们都可以看到残差近似正态分布。

我们还可以执行夏皮罗-威尔克、科尔莫戈洛夫-斯米尔诺夫或雅克-贝拉等正式统计检验来检验正态性。

然而,请记住,这些检验对大样本量很敏感——也就是说,当样本量很大时,它们通常得出残差不正常的结论。

因此,通过创建残差直方图通常更容易评估正态性。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注