КРОСС-ВАЛИДАЦИЯ И БУТСТРЕП

В этой работе мы будем оценивать точность моделей, используя следующие методы:

Модели: линейная регрессия.

Данные: Carseats {ISLR}

Зависимая переменная - Sales

Объясняющие переменные:

Будем рассматривать 2 линейных регрессии:

Начнем с анализа модели со всеми объясняющими переменными.

Метод проверочной выборки

## [1] 6.436604

Перекрёстная проверка по отдельным наблюдениям (LOOCV)

## [1] 5.829265
##        1        2        3        4        5 
## 5.829265 5.879784 6.037195 5.826086 5.958739

k-кратная перекрёстная проверка

##        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

Перекрёстная проверка по отдельным наблюдениям (LOOCV)

## [1] 5.802091
##        1        2        3        4        5 
## 5.802091 5.852201 6.009838 5.798560 5.929226

k-кратная перекрёстная проверка

##        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 модели(только с непрерывными объясняющими переменными), поэтому будет логично выбрать ее.

Стоит отметить, что методы не дают нам совпадений в расчетах, но все они очень приближены друг к другу.

Метод бутстрепа для 1 модели.

## (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

Метод бутстрепа для 2 модели.

## (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” в МНК, то мы можем заметить, что оценки почти совпадают, что говорит о надежности использования метода бутстреп, по крайней мере, в данном случае.