[ЗАСТАВКА] [ЗАСТАВКА] [ЗАСТАВКА] Приступим к компьютерной части четвертой недели. Запускаем RStudio, открываем заранее заготовленный файл с загрузкой пакетов, которые нам понадобятся: lab.04.before — это пакеты, которые потребуются нам для работы с мультиколлинеарностью и методы главных компонентов. Мы быстренько их пробегаем Ctrl + Enter чтобы запустить, чтобы компьютер узнал команды, которые в них содержатся, и приступаем к работе. Мы рассмотрим тот же набор данных, что и в первой лекции. В табличку данных h мы поместим данные из набора по машинам. Ну, я на всякий случай напомню, что это за набор данных. Лучше всего напомнить, построив график. Данные возьмем для графика из набора данных h, по горизонтали отложим скорость машины, по вертикали — длину тормозного пути. Вот он, наш набор данных, на графике. И, соответственно... Я напомню, что мы строили... Ну, мы, там, конечно, переводили футы и скорость из миль в час в привычные нам единицы, но сейчас не будем это делать. И, соответственно, мы строили простую модель, простая линейная модель, данные брали из набора данных h, и, соответственно, как зависит длина тормозного пути (distance) от скорости. Если посмотреть на отчет по этой модели, то в этой модели, конечно, никакой мультиколлинеарности нет, видно, что коэффициент прекрасно значим. Ну, а раз коэффициент значим, то проблем мультиколлинеарности не стоит, потому что мультиколлинеарность проявляется в том, что у нас широкий доверительный интервал и коэффициенты не значимы. Однако, я же, на самом деле, когда гляжу на этот график, я не знаю, зависит ли... зависимость является тут идеально линейной или, может, здесь слабая квадратичная зависимость, или кубическая. Ну, и, поскольку я этого не знаю, давайте я создам 2 новых переменных. Я добавлю в набор данных h команду mutate, добавлю квадрат скорости и добавлю куб скорости, назову его speed^3 — это скорость в кубе. И, соответственно, оценю модель, в которую я постараюсь... я включу и скорость, и скорость в квадрате, и скорость в кубе, это будет модель, ну, как бы мы заранее ожидаем, что там будет мультиколлинеарность. Это будет линейная модель по тому же самому набору данных h, но теперь я предполагаю, что длина тормозного пути объясняется скоростью, квадратом скорости и, возможно, кубом скорости. И если я посмотрю на эту модель, summary (model_mk), то здесь я увижу, что у меня нет ни одного значимого коэффициента. Гипотеза о том, что нет зависимости от скорости, не отвергается при value 0,32. Гипотеза о том, что нет зависимости от квадрата скорости, не отвергается. Гипотеза о том, что нет зависимости от куба скорости, тоже не отвергается. То есть нет оснований отвергать гипотезу о том, что какой-то зависимости нет. Однако если посмотреть на F-статистику, которая проверяет гипотезу о значимости регрессии в целом, то гипотеза о значимости, то мы приходим к выводу, что регрессия в целом значима. Гипотеза о том, что все 3 коэффициента нулю при скорости, при скорости в квадрате и при скорости в кубе, гипотеза о том, что все 3 коэффициента равны нулю, отвергается. И value здесь 3 * 10^11. Соответственно, от чего-то зависимость есть, но от чего — не понятно. Вот у нас перед нами ситуация мультиколлинеарности. Ну, действительно, мы можем с помощью корреляции между отдельными регрессорами и показателя коэффициента вздутия дисперсии увидеть, что имеются признаки мультиколлинеарности. Если я посмотрю, попрошу компьютер посчитать коэффициенты вздутия дисперсии, то я увижу, что у меня коэффициент вздутия дисперсии, то есть 1 / 1 − R² в регрессии скорости на остальные объясняющие переменные — 274, аналогично для скорости в квадрате — 1000 с лишним и для скорости в кубе около 500. То есть у нас есть индикация мультиколлинеарности. И аналогично мы можем посмотреть на корреляции. Давайте мы создадим матрицу x0. Матрица x0 — это будут наши регрессоры только без свободного члена. Для этого мы воспользуемся командой model.matrix, и здесь в команде model.matrix надо указать, откуда берутся данные: данные берутся из набора данных h; и дальше указать формулу. Ну, по умолчанию, если написать ту же самую формулу, компьютер добавит единичный столбец, а он нам для расчета корреляции не нужен, поэтому мы тут напишем 0 +. Это означает, что я получу все регрессоры, кроме единичного столбца. Ну, можно посмотреть на этот, на эту матрицу x0: вот, действительно, здесь скорость, квадрат скорости и куб скорости. И можно посчитать корреляцию между регрессорами и увидеть, что корреляция между регрессорами высокая, вон самая низкая — 0,94, а так есть 0,97, 0,99. Соответственно, для чего используются модели? Ну, модели используются для прогнозирования. Давайте посмотрим, насколько разные выходят прогнозы по модели с мультиколлинеарностью, с кучей переменных, не значимых по отдельности, и без. Для этого создадим новый набор данных: nd. Это будет набор данных, data.frame. Значит, скорость будет равняться, пусть будет 10 миль/час, соответственно, квадрат скорости обязан равняться 100 миль/час, и куб скорости обязан равняться 1000 миль/час. И я построю 2 интервала: построю интервал по модели с одной объясняющей переменной для набора данных newdata = nd, и тип интервала, интервал укажу prediction. Соответственно, вот это — это прогнозный интервал, предиктивный, для модели с одной объясняющей переменной без мультиколлинеарности. И легким движением руки я построю доверительный интервал по модели с мультиколлинеарностью. И я вижу, что доверительный интервал поменялся совсем несущественно. Несмотря на то, что там был один значимый коэффициент, а здесь 3 и незначимых, доверительный интервал для прогноза был от − 9,8 до 53, а стал от − 7,8 до 55,4. Причем точный прогноз изменился от 21 фута до 23 футов — то есть несущественно. Однако если я посмотрю на значимость и доверительные интервалы для отдельных коэффициентов, то разница существенная. Если я наберу, хочу доверительные интервалы для коэффициентов модели, то здесь у меня коэффициент при скорости, я оцениваю увеличение скорости на 1 миль/час приводит к увеличению длины тормозного пути от 3 до 4,7 футов. Однако если я построю доверительный интервал для модели с мультиколлинеарностью, то доверительный интервал окажется существенно шире: коэффициент, аналогичный коэффициенту при скорости, вот коэффициент при скорости во второй модели, для него доверительный интервал уже не от 3 до 4,7, а от − 6,8 до 20. Соответственно, мы на данном примере проиллюстрировали мысль о том, что если нас интересует доверительный интервал для прогноза, то мультиколлинеарность для нас не составляет никаких проблем. Однако если мы хотим понять, от какой переменной у нас зависимость, и построить как можно более узкий доверительный интервал, то мультиколлинеарность может быть для нас некоторым препятствием. [ЗАСТАВКА]