0:12
Перейдем к компьютерной части 9-той недели.
Запуская R-studio, открываем файл с заготовленной загрузкой
пакетов, lab_09_before_R,
выделяем все и запускам, то есть мы активируем необходимые нам пакеты.
Первое, с чего я хочу начать — это еще раз подчеркнуть
что эндогенность не имеет никакого отношения к прогнозированию.
Если мы хотим прогнозировать, если наша задача прогнозировать,
то нам абсолютно не важна форма записи моделей с эндогенностью,
и поэтому мы всегда можем предполагать при прогнозировании что наши
регрессоры не коррелированы со случайными ошибками.
Ну и давайте покажем, что нам может быть важно при прогнозировании.
На самом деле при прогнозировании важно только одно — хорошие прогнозы.
Ни значимость, ни вопросы эндогенности мы никогда не касаемся.
Давайте для примера загрузим в набор данных h, да, убедимся, что мы находимся
в нужной папке, установим Set Working Directory To Source File Location.
Соответственно, загрузим в наши,
в набор данных h данные по стоимости квартир в Москве,
укажем, что в этих данных есть заголовок,
разделитель между наблюдениями, табуляция, десятичный разделитель,
точка.
Загрузили данные, бросили взгляд на данные, чтобы убедиться,
что они корректно загрузились.
И теперь при прогнозировании надо говорить всегда,
что когда мы оцениваем качество прогнозов, нам важно честное качество прогнозов,
то есть я должен оценить модель по одной части выборки, спрогнозировать другую
часть выборки и посмотреть качество прогнозов на другой части выборки.
Потому что если я оцениваю качество прогнозов по той части выборки,
по какой я оцениваю модель, то я могу добиться идеального попадания,
включив достаточное количество регрессоров.
Поэтому первый шаг при честном прогнозировании, при оценке честной
качества прогнозов — это разделить выборку на две части: обучающую и тестовую.
Ну, соответственно, давайте мы попросим компьютер случайно
поделить наши наблюдения на две части: обучающую и тестовую.
И, соответственно, номера наблюдений, давайте их назовем
in_train — это будут номера наблюдений,
которые относятся к обучающей части выборки, соответственно,
я возьму команду из пакета carrot createDataPartition,
она длинная, но я нажал Tab, посмотрел как она называется.
И здесь надо указать зависимую переменную,
зависимая переменная пусть у нас будет из набора данных мы возьмем цену квартиры.
Надо указать сколько наблюдений мы относим к обучающей выборке,
то есть по которой мы будем оценивать модель, ну давайте 75 %, 0.75
отнесем к обучающей части выборки, а по 25 % выборки будем тестировать.
И тут надо еще указать такую опцию для удобства list=FALSE.
Соответственно, что такое in_train?
Ну можно посмотреть на этот in_train, на самом деле это просто номера случайно
отобранных наблюдений, по которым мы будем оценивать регрессию.
Соответственно, h_train — то есть это та часть,
по которой мы оценивам модель методом МНК.
Это мы из набора данных возьмем номера, которые входят в вектор in_train,
ну и, соответственно, все столбики, а h_test — это будет вторая
часть выборки, по ней мы будем оценивать качество прогнозов.
Соответственно, те наблюдения, которые попали в обучающую часть выборки их не
надо брать, остальные надо взять, поэтому здесь перед индексом стоит значок минус.
Ну, соответственно, если посмотреть вот количество строк в наборе данных
h — это 2040, количество строк в наборе данных h_train — это
1533 и остальные отнесены к тестовой части
nrow(h_test) 507, если сложить, получится 2040.
Соответственно, я могу оценить две модели.
Давайте оценим model_1 — это линейная модель по
данным из набора данных h_train вот это важно,
не исходный набор данных, а кусочек его, и любая формула, например,
логарифм цены как он зависит от логарифма
общей площади, логарифма площади кухни,
логарифма жилой площади.
Оценил одну модель, пропустил буковку e — livespend,
чуть-чуть подвинем.
Оцениваем model_2, ну давайте совершенно другую модель-2,
данные мы берем из обучающей выборки и логарифм цены,
строим регрессию на логарифм общей площади плюс кирпичность дома.
И теперь я спрогнозирую
на тестовую часть выборки и посмотрю как эти две модели, то есть я даже не
гляжу на значимость коэффициентов, если моя задача прогнозировать.
Во-первых, y — это будет
из тестовой части выборки надо взять price и
взять логарифм,
соответственно, вот можем посмотреть на наш y какие значения он принимает.
Можем спрогнозировать по первой модели
predict модель
мы используем model_1, а данные мы используем уже h_test.
Ну давайте посмотрим на
прогнозы по модели-1.
Вот прогнозы по модели-1.
И точно так же можно спрогнозировать по модели-2,
model_2.
И ну простейший критерий качества — сумма квадратов ошибок прогнозов,
я возьму сумму квадратов и здесь внутри надо
посчитать ошибки прогнозов (y – y_hat_1)
— это сумма квадратов ошибок прогнозов по первой модели,
а сумма квадратов ошибок прогнозов по второй модели
— она оказывается чуть-чуть меньше.
Соответственно, вот несмотря на то, что во второй модели меньше переменных,
она вне обучающей выборки оказывается прогнозирует лучше.
И сейчас мы перейдем к теме интерпретации, то есть к эндогенности.