Как создать остаточный график в ggplot2 (с примером)
Графики остатков используются для оценки того, нормально ли распределяются остатки регрессионной модели и проявляют ли они гетероскедастичность .
Чтобы создать остаточный график в ggplot2, вы можете использовать следующий базовый синтаксис:
library (ggplot2) ggplot(model, aes(x = .fitted, y = .resid)) + geom_point() + geom_hline(yintercept = 0 )
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: создание графика остатков в ggplot2
В этом примере мы будем использовать набор данных mtcars , встроенный в R:
#view first six rows of mtcars dataset
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1
Во-первых, мы подберем регрессионную модель, используя миль на галлон в качестве переменной отклика и qsec в качестве предикторной переменной:
#fit regression model
model <- lm(mpg ~ qsec, data=mtcars)
Далее мы будем использовать следующий синтаксис для создания остаточного графика в ggplot2:
library (ggplot2) #create residual plot ggplot(model, aes(x = .fitted, y = .resid)) + geom_point() + geom_hline(yintercept = 0 )
По оси X отображаются подобранные значения, а по оси Y — остатки.
Остатки кажутся случайным образом разбросанными вокруг нуля без четкой закономерности, что указывает на то, что предположение о гомоскедастичности выполнено.
Другими словами, коэффициенты регрессионной модели должны быть надежными, и нам не нужно выполнять какие-либо преобразования данных.
Также обратите внимание, что мы могли бы использовать функцию labs() для добавления заголовка и меток осей к остаточному графику:
library (ggplot2) #create residual plot with title and axis labels ggplot(model, aes(x = .fitted, y = .resid)) + geom_point() + geom_hline(yintercept = 0 ) + labs(title=' Residual vs. Fitted Values Plot ', x=' Fitted Values ', y=' Residuals ')
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как рассчитать стандартизированные остатки в R
Как рассчитать стьюдентизированные остатки в R
Как создать гистограмму остатков в R