В этой работе мы будем оценивать точность моделей, используя следующие методы:
метод проверочной выборки
метод перекрёстной проверки по отдельным наблюдениям (LOOCV)
метод k-кратной перекрёстной проверки
бутстреп
Модели: линейная регрессия.
Данные: Carseats {ISLR}
Зависимая переменная - Sales
Объясняющие переменные:
непрерывные(Price, Advertising)
дискретные(Urban)
Будем рассматривать 2 линейных регрессии:
Sales ~ Advertising + Price + Urban
Sales ~ Advertising + Price
Начнем с анализа модели со всеми объясняющими переменными.
## [1] 6.436604
## [1] 5.829265
## 1 2 3 4 5
## 5.829265 5.879784 6.037195 5.826086 5.958739
## 1 2 3 4 5
## 5.897713 5.952966 6.016188 5.976018 6.070495
## 1 2 3 4 5
## 5.854825 5.910273 6.035820 5.929460 5.947468
Запомним ошибки модели, чтобы сравнить теперь с другой, немного измененной.
## [1] 6.38438
## [1] 5.802091
## 1 2 3 4 5
## 5.802091 5.852201 6.009838 5.798560 5.929226
## 1 2 3 4 5
## 5.803527 5.841608 6.080034 5.870203 5.984206
## 1 2 3 4 5
## 5.856454 5.936141 5.989126 5.751290 5.844751
В 3 из 4 случаях, ошибки меньше во 2 модели(только с непрерывными объясняющими переменными), поэтому будет логично выбрать ее.
Стоит отметить, что методы не дают нам совпадений в расчетах, но все они очень приближены друг к другу.
## (Intercept) Advertising Price UrbanYes
## 13.02553186 0.12321075 -0.05458012 -0.03773746
## (Intercept) Advertising Price UrbanYes
## 12.682603505 0.124486882 -0.053214077 -0.006276395
##
## ORDINARY NONPARAMETRIC BOOTSTRAP
##
##
## Call:
## boot(data = Carseats, statistic = boot.fn, R = 1000)
##
##
## Bootstrap Statistics :
## original bias std. error
## t1* 13.02553186 -4.975470e-04 0.665065696
## t2* 0.12321075 1.212154e-03 0.018918303
## t3* -0.05458012 -5.083596e-05 0.005462054
## t4* -0.03773746 -1.860703e-03 0.253926050
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.02553186 0.626952977 20.7759311 2.260943e-65
## Advertising 0.12321075 0.018116042 6.8011959 3.840412e-11
## Price -0.05458012 0.005089613 -10.7238258 9.982375e-24
## UrbanYes -0.03773746 0.263881553 -0.1430091 8.863558e-01
## (Intercept) Advertising Price
## 13.00342697 0.12310706 -0.05461304
## (Intercept) Advertising Price
## 12.6792170 0.1244461 -0.0532223
##
## ORDINARY NONPARAMETRIC BOOTSTRAP
##
##
## Call:
## boot(data = Carseats, statistic = boot.fn, R = 1000)
##
##
## Bootstrap Statistics :
## original bias std. error
## t1* 13.00342697 0.0013103319 0.653806898
## t2* 0.12310706 0.0012146674 0.018996858
## t3* -0.05461304 -0.0000749852 0.005452938
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.00342697 0.606850308 21.427734 3.059318e-68
## Advertising 0.12310706 0.018079180 6.809327 3.639822e-11
## Price -0.05461304 0.005078128 -10.754562 7.596365e-24
Бутстреп нам показывает, что в 2 исследуемых моделях регрессоры являются значимыми так же, как и в МНК. Также если посмотреть на столбец под названием “std. error” в бутстреп-выборке, а потом на столбец “Std. Error” в МНК, то мы можем заметить, что оценки почти совпадают, что говорит о надежности использования метода бутстреп, по крайней мере, в данном случае.