Как создать гистограмму остатков в R

Как создать гистограмму остатков в R

Одно из основных предположений линейной регрессии состоит в том, что остатки нормально распределены.

Один из способов визуально проверить это предположение — создать гистограмму остатков и посмотреть, соответствует ли распределение «колокольчику», напоминающему нормальное распределение .

В этом руководстве представлен пошаговый пример создания гистограммы остатков для регрессионной модели в 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')
Гистограмма остатков в R

Обратите внимание, что мы также можем указать количество бинов для размещения остатков, используя аргумент 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') 
Остаточная гистограмма в R

Или мы могли бы указать 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') 

Независимо от того, сколько бинов мы указываем, мы видим, что остатки примерно нормально распределены.

Мы также могли бы выполнить формальный статистический тест, такой как тест Шапиро-Уилка, Колмогорова-Смирнова или Харка-Бера, чтобы проверить нормальность.

Однако имейте в виду, что эти тесты чувствительны к большим размерам выборки, то есть они часто заключают, что остатки не являются нормальными, когда размер выборки большой.

По этой причине часто легче оценить нормальность, создав гистограмму остатков.

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.