library(ISLR)
data("Auto")
lm.fit <- lm(mpg ~ horsepower, data=Auto)
summary(lm.fit)
##
## Call:
## lm(formula = mpg ~ horsepower, data = Auto)
##
## Residuals:
## Min 1Q Median 3Q Max
## -13.5710 -3.2592 -0.3435 2.7630 16.9240
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 39.935861 0.717499 55.66 <2e-16 ***
## horsepower -0.157845 0.006446 -24.49 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.906 on 390 degrees of freedom
## Multiple R-squared: 0.6059, Adjusted R-squared: 0.6049
## F-statistic: 599.7 on 1 and 390 DF, p-value: < 2.2e-16
I. Есть ли связь между предсказателем и ответом?
Да, коэффициент p-value имеет очень низкое значение
II. Насколько сильна связь между предсказателем и ответом?
Хорошее свидетельство родства,р2р2составляет примерно 0.660% дисперсии ответа, объясненной простой моделью
III. Отношение между предсказателем и ответом положительное или отрицательное?
Отрицательный, так как коэффициент имеет отрицательное значение
IV. Что такое предсказание, mpg связанное с horsepower 98? Каковы связанные 95% доверительные интервалы и интервалы прогноза?
predict(lm.fit, data.frame("horsepower"=98), interval="confidence")
## fit lwr upr
## 1 24.46708 23.97308 24.96108
predict(lm.fit, data.frame("horsepower"=98), interval="prediction")
## fit lwr upr
## 1 24.46708 14.8094 34.12476
б) Постройте ответ и прогнозирующий фактор. Используйте функцию abline() для отображения линии регрессии наименьших квадратов.
plot(Auto$horsepower, Auto$mpg)
abline(lm.fit, lwd=3, col="red")
par(mfrow=c(2,2))
plot(lm.fit)
Мы перечислим типичные проблемы и поговорим о них:
Residuals vs Fitted График , по-видимому, имеет тенденцию мягкой U-образную форму, и , как показано на графике фигуре б , соотношение между предсказателями и ответом не так линейно.
Анализируя Residuals vs Fittedграфик, он НЕ показывает большой гетероскедастичности, величина которой не имеет тенденции к увеличению с подобранными значениями.
Если посмотреть на Scale-Location график, на нем указаны некоторые возможные выбросы, но, проверяя картинку, они не кажутся настоящими выбросами. Я получу ссылку на ISLR, буду использовать стьюдентифицированные остатки и наблюдать, какие из них больше 3.
which(rstudent(lm.fit)>3)
## 323 330
## 321 328
На Residuals vs Leverage графике представлено множество точек с высоким кредитным плечом, но большинство точек воздействия не являются выбросами, обнаруженными выше.
Q9. Этот вопрос включает использование множественной линейной регрессии для Auto набора данных.
pairs(Auto)
б) Вычислить матрицу корреляций между переменными с помощью функции cor(). Вам нужно будет исключить качественную nameпеременную.
cor(Auto[, !(names(Auto)=="name")])
## mpg cylinders displacement horsepower weight
## mpg 1.0000000 -0.7776175 -0.8051269 -0.7784268 -0.8322442
## cylinders -0.7776175 1.0000000 0.9508233 0.8429834 0.8975273
## displacement -0.8051269 0.9508233 1.0000000 0.8972570 0.9329944
## horsepower -0.7784268 0.8429834 0.8972570 1.0000000 0.8645377
## weight -0.8322442 0.8975273 0.9329944 0.8645377 1.0000000
## acceleration 0.4233285 -0.5046834 -0.5438005 -0.6891955 -0.4168392
## year 0.5805410 -0.3456474 -0.3698552 -0.4163615 -0.3091199
## origin 0.5652088 -0.5689316 -0.6145351 -0.4551715 -0.5850054
## acceleration year origin
## mpg 0.4233285 0.5805410 0.5652088
## cylinders -0.5046834 -0.3456474 -0.5689316
## displacement -0.5438005 -0.3698552 -0.6145351
## horsepower -0.6891955 -0.4163615 -0.4551715
## weight -0.4168392 -0.3091199 -0.5850054
## acceleration 1.0000000 0.2903161 0.2127458
## year 0.2903161 1.0000000 0.1815277
## origin 0.2127458 0.1815277 1.0000000
Прокомментируйте результат. Например:
lm.fit <- lm(mpg ~ .-name, data=Auto)
summary(lm.fit)
##
## Call:
## lm(formula = mpg ~ . - name, data = Auto)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.5903 -2.1565 -0.1169 1.8690 13.0604
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -17.218435 4.644294 -3.707 0.00024 ***
## cylinders -0.493376 0.323282 -1.526 0.12780
## displacement 0.019896 0.007515 2.647 0.00844 **
## horsepower -0.016951 0.013787 -1.230 0.21963
## weight -0.006474 0.000652 -9.929 < 2e-16 ***
## acceleration 0.080576 0.098845 0.815 0.41548
## year 0.750773 0.050973 14.729 < 2e-16 ***
## origin 1.426141 0.278136 5.127 4.67e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.328 on 384 degrees of freedom
## Multiple R-squared: 0.8215, Adjusted R-squared: 0.8182
## F-statistic: 252.4 on 7 and 384 DF, p-value: < 2.2e-16
I. Есть ли связь между предикторами и ответом?
Да, F-статистика очень значима с очень маленьким p-значением.
Происхождение, то год и цилиндры.
Это предполагает, что на каждый дополнительный год возможно больше 0.75миль на галон.
par(mfrow=c(2,2))
plot(lm.fit)
На Residuals vs Fittedграфике не видно никаких закономерностей, поэтому он не указывает явных доказательств нелинейности.
Residuals vs FittedГрафик предполагает немного воронки формы, так что она представляет собой немного гетероскедастичности.
На Scale-Locationграфике некоторые наблюдения являются потенциальными выбросами, давайте проверим их по стьюдентизированным остаткам.
rstudent(lm.fit)[which(rstudent(lm.fit)>3)]
## 245 323 326 327
## 3.390068 4.029537 3.494823 3.690246
В основном наблюдение 323 является наиболее вероятным выбросом.
В частности, наблюдение 14 является важным моментом, как показано на Residuals vc Leverage графике.
require(car)
## Loading required package: car
## Loading required package: carData
## Loading required package: car
vif(lm.fit)
## cylinders displacement horsepower weight acceleration year
## 10.737535 21.836792 9.943693 10.831260 2.625806 1.244952
## origin
## 1.772386
Балансовая VIF стоимость, представленная в балансовой стоимости, превышает 5 из 10, указывает на проблематичную коллинеарность. И, как уже было воспринято cor() таблицей, отмечено много коррелированных переменных. Четыре переменных больше, 5а три из них больше 10. Проблема коллинеарности заключается в том, что она снижает точность оценок коэффициентов регрессии и вызывает стандартную ошибку дляβjβjрасти.
е) использовать *и :символы , чтобы соответствовать модели линейной регрессии с эффектами взаимодействия. Сделайте какие-либо эффекты взаимодействия. Оказывается ли какое-либо взаимодействие статистически значимым?
lm.fit.inter = lm(mpg ~ (.-name)*(.-name), data=Auto)
Модель вообще имела улучшениер2р2от 0.82 до почти 0.89, возможно, это может быть переоснащение, хотя наиболее значимый интерактивный термин имел acceleration:originхороший коэффициент по сравнению с основными членами и небольшое значение p, подтверждающее коэффициент.
е) Попробуйте несколько различных преобразований переменных, напримерl o g( Х)лог(Икс),Икс–√Икс,Икс2Икс2. Прокомментируйте свои выводы.
Я анализирую диапазон каждой переменной, чтобы проверить, какое преобразование может быть для нее интересно.
apply(Auto,2,range)
## mpg cylinders displacement horsepower weight acceleration year origin
## [1,] " 9.0" "3" " 68.0" " 46" "1613" " 8.0" "70" "1"
## [2,] "46.6" "8" "455.0" "230" "5140" "24.8" "82" "3"
## name
## [1,] "amc ambassador brougham"
## [2,] "vw rabbit custom"
Произвольно для переменных низкого диапазона я возведу их в квадрат, а для переменной высокого диапазона я взял squared root или log из них, я не изменил происхождение, потому что это качественная переменная.
lm.fit.1 <- lm(I(mpg^2) ~ cylinders + I(displacement^2) + I(horsepower^2) + sqrt(weight) + I(acceleration^2) + sqrt(year) + origin, data=Auto)
summary(lm.fit.1)
##
## Call:
## lm(formula = I(mpg^2) ~ cylinders + I(displacement^2) + I(horsepower^2) +
## sqrt(weight) + I(acceleration^2) + sqrt(year) + origin, data = Auto)
##
## Residuals:
## Min 1Q Median 3Q Max
## -509.60 -125.72 -14.61 92.29 1010.75
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.970e+03 4.642e+02 -8.552 2.92e-16 ***
## cylinders -1.025e+01 1.640e+01 -0.625 0.532
## I(displacement^2) 3.296e-03 7.292e-04 4.520 8.25e-06 ***
## I(horsepower^2) 1.599e-03 2.751e-03 0.581 0.562
## sqrt(weight) -4.569e+01 3.346e+00 -13.654 < 2e-16 ***
## I(acceleration^2) 5.829e-01 1.458e-01 3.998 7.66e-05 ***
## sqrt(year) 7.657e+02 5.167e+01 14.820 < 2e-16 ***
## origin 6.808e+01 1.572e+01 4.332 1.89e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 194.4 on 384 degrees of freedom
## Multiple R-squared: 0.7676, Adjusted R-squared: 0.7633
## F-statistic: 181.1 on 7 and 384 DF, p-value: < 2.2e-16
Отличия от исходной модели заключались в следующем: accelerationстали значимой переменной, а displacementтакже уменьшили ее p-значение. Хотя р2р2 снижает его значение. Предикторы year и weight сохранились как наиболее важные оценщики.