Одно из основных предположений линейной регрессии состоит в том, что остатки нормально распределены.
Один из способов визуально проверить это предположение — создать гистограмму остатков и посмотреть, соответствует ли распределение «колокольчику», напоминающему нормальное распределение .
В этом руководстве представлен пошаговый пример создания гистограммы остатков для регрессионной модели в R.
Шаг 1: Создайте данные
Во-первых, давайте создадим некоторые поддельные данные для работы:
#make this example reproducible
set.seed(0)
#create data
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 бинов :
#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 бинов :
#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')
Независимо от того, сколько бинов мы указываем, мы видим, что остатки примерно нормально распределены.
Мы также могли бы выполнить формальный статистический тест, такой как тест Шапиро-Уилка, Колмогорова-Смирнова или Харка-Бера, чтобы проверить нормальность.
Однако имейте в виду, что эти тесты чувствительны к большим размерам выборки, то есть они часто заключают, что остатки не являются нормальными, когда размер выборки большой.
По этой причине часто легче оценить нормальность, создав гистограмму остатков.