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