В этой статье я объясню, как построить модель множественной линейной регрессии, и подчеркну важные параметры модели, и мы также увидим, является ли подобранная модель адекватной или нет. Если нет, то как улучшить адекватность модели с помощью определенных преобразований, таких как преобразование Бокса-Кокса и преобразование журнала.

Сначала мы импортируем набор данных Auto-mpg.csv. Он содержит в общей сложности 398 наблюдений и касается расхода топлива в городском цикле (миль на галлон - в милях на галлон) транспортных средств в дополнение к информации о семи других переменных, которые, как ожидается, повлияют на транспортное средство миль на галлон. Ниже приводится сводная информация о наборе данных:

automobiledata <- read.csv("Auto-mpg.csv")
summary(automobiledata)

Интересующая переменная (переменная ответа) - это мили на галлон (миль на галлон). Как мы заметили на приведенном выше рис. 1, данные имеют некоторые нежелательные значения в столбце hp. Давайте заменим их на NA и преобразуем тип данных в числовой тип класса.

automobiledata$hp[automobiledata$hp == "?" ] <- NA
automobiledata$hp<- as.numeric(as.character(automobiledata$hp))
head(automobiledata)

colSums(is.na(automobiledata)

Нам нужно оценить 8 параметров (то есть точку пересечения (b0) и семь других параметров модели (b1, b2, b3… b7)) для каждой переменной-предиктора, которая наилучшим образом объясняет изменение переменной ответа.

Для этого мы запустим модель множественной регрессии с использованием функции lm (), чтобы понять влияние предикторов на миль на галлон транспортного средства. Кроме того, lm () не учитывается в пропущенных наблюдениях.

mlr_model <- lm(mpg ~ ., data = automobiledata)
summary(mlr_model)

В приведенном выше обзоре базовой модели общая степень свободы 384 получается из расчета ниже -

Степень свободы = общее количество наблюдений (398) - недостающие поля (6) - параметры модели (8) = 384; поскольку модель не учитывает недостающие значения, и однажды оцененные параметры модели больше не являются бесплатными.

Давайте посмотрим дальше, чтобы проверить, подходит ли подобранная модель. Для этого мы исследуем достоверность модели, визуализировав график остаточных и подобранных значений, который сообщает нам, является ли подобранная модель адекватной или нет. -

Если мы посмотрим на график более внимательно, мы увидим параболический узор, а не случайный разброс. Таким образом, нынешняя модель неадекватна.

Кстати, если график подобранных значений и остатков показывает линейный тренд, то это указывает на пропущенный регрессор. Однако это не дает никакого представления о том, что это за регрессор. Это должно исходить из знания предметной области.

Чтобы улучшить модель, мы теперь выполним два разных преобразования переменной ответа и сравним их результаты -

1-е преобразование - преобразование Бокс-Кокса

Давайте сделаем преобразование мощности, то есть преобразование Бокса Кокса, которое применяется для уменьшения суммы квадратов ошибок (SSE) и преобразует распределение переменной ответа в нормальное распределение. Это силовое преобразование переменной отклика.

plot(automobiledata$mpg)
boxcoxplot <- boxcox(mlr_model) # plot of loglikelihood vs lambda 
boxcoxplot

Давайте проверим значение индекса ($ x) из приведенного выше графика Бокса-Кокса, при котором мы получаем максимальное значение логарифмического правдоподобия ($ y). Преобразуйте переменную ответа, используя значение лямбда, которое мы получили после преобразования Бокса Кокса -

ind = which.max(boxcoxplot$y)
'get values of log likelihood and lambda value (along x axis) corresponding to index value'
lambdavalue  = boxcoxplot$x[ind] # lambda value
loglikelihoodvalue = boxcoxplot$y[ind]  # log likelihood value
automobiledata1 = automobiledata
automobiledata1$mpg = (automobiledata1$mpg^lambdavalue - 1)/lambdavalue

Повторите шаги модели еще раз, которые мы уже выполнили на предыдущих шагах. Давайте посмотрим на сводку модели, график зависимости невязки от подобранного значения.

mlr_model1 <- lm(mpg ~ ., data = automobiledata1)
summary(mlr_model1)

plot(mlr_model1$fitted.values, mlr_model1$residuals)

Сравнивая базовую модель с этой 1-й преобразованной моделью, мы замечаем -

(a) Из рисунков 7 и 4 видно, что остатки следуют случайному разбросу вместо того, чтобы показывать какой-либо тренд после преобразования Бокса-Кокса, как на рисунке 7.

(b) Из рисунков 6 и 3 видно, что остаточная стандартная ошибка после преобразования Бокса Кокса резко снизилась до 0,0402 по сравнению с базовой моделью, которая имеет остаточную стандартную ошибку 3,328.

(c) В дополнение к пункту (b), скорректированный R-квадрат = 0,8859 после преобразования Бокса-Кокса, который подразумевает, что пересмотренная модель объясняет 88,59% вариации переменной ответа, тогда как базовая модель способна объяснить 81,82% вариации интересующей переменной. Таким образом, модель, подходящая после преобразования Бокса Кокса, несомненно, лучше.

2-е преобразование - преобразование журнала

Теперь давайте выполним логарифмическое преобразование переменной ответа, а затем запустим модель множественной линейной регрессии и посмотрим на результаты модели -

automobiledata2 = automobiledata
automobiledata2$mpg = log(automobiledata$mpg)
mlr_model2 <- lm(mpg ~ ., data = automobiledata2)
summary(mlr_model2)

plot(mlr_model2$fitted.values, mlr_model2$residuals)

Сравнивая базовую модель с моделью с логическим преобразованием, мы замечаем:

(a) Из рисунков 9 и 4 становится очевидно, что остатки следуют случайному разбросу, а не показывают какой-либо тренд после логарифмического преобразования, как на рисунке 9.

(b) Из рисунков 8 и 3 видно, что стандартная остаточная ошибка после преобразования журнала значительно снизилась до 0,1191 по сравнению с базовой моделью, которая имеет стандартную остаточную ошибку 3,328.

(c) В дополнение к пункту (b), скорректированный квадрат R = 0,8773 после логарифмического преобразования, который подразумевает, что пересмотренная модель объясняет 87,73% вариации переменной ответа, тогда как базовая модель способна объяснить 81,82% вариации интересующей переменной.

Модель после того, как мы выполнили преобразование Бокса-Кокса, следует рассматривать как лучшую модель по сравнению с другими преобразованными моделями и базовой моделью по той причине, что остаточная стандартная ошибка значительно уменьшается, а модель лучше объясняет.

Это все.

Использованная литература -

[1] Основы бизнес-аналитики, введение в методологию и ее приложения https: // www.springer.com / in / book / 9783319688367