Переходим к анализу гетероскедастичности B. Откроем файл-заготовку: File, Open file, lab_05_before.R. Открываем. Как всегда, скрипт начинается с подключения полезных пакетов. Первый пакет, собственно, sandwich, который оценивает оценки... получает робастные стандартные ошибки. lmtest и car – это для проведения тестов, dplyr и broom – для манипуляции с данными, и ggplot2 подключаем пакет для рисования графиков. Поехали. Установим рабочую папку: Session, Set working directory, to source file location. И загрузим в табличку h уже знакомый нам набор данных по стоимости квартир. На этот раз мы воспользуемся немножко другой командой table, которая как раз подходит для случая, когда разделителями в данных являются не запятые, а символы табуляции. Нажмем здесь Tab, выберем файл flats_moscow.txt и укажем, что заголовки столбцов в первой строке есть. Как всегда, после загрузки данных важно убедиться, что там всё хорошо. Посмотрим на начало таблички h. Тут, соответственно, у нас переменная цена квартиры, общая площадь, жилая площадь, площадь кухни, пешая доступность от метро, кирпичный, не кирпичный дом, на первом этаже или нет, две переменных, которые характеризуют расстояние от квартиры до центра и до метро. Посмотрим на хвостик таблички h. Всё нормально, 2040 наблюдений. Прежде, чем оценивать любые модели, не важно, есть гетероскедастичность или нет, всегда имеет смысл построить графики. Построим qplot, данные возьмем из таблички h, по горизонтали отложим общую площадь квартиры, по вертикали отложим цену квартиры. Получим график, давайте увеличим этот график. И, соответственно, что мы видим на этом графике? На этом графике мы видим типичное проявление условной гетероскедастичности. При маленьких значениях общей площади, когда total span мало, то мы видим, ну, конечно, и цена мала, но нас интересует не малость цены, а малость разброса цены. При малом значении общей площади вот здесь вот колебания по вертикали стоимости квартир небольшие. А если я возьму большую площадь, 120 метров, то, соответственно, у меня разброс данных гораздо больше. Средний, конечно, тоже больше, да, но меня интересует вот именно сейчас разброс по вертикали при заданном значении общей площади. В принципе, я вижу, что разброс данных большой при больших total span, при малых total span – маленький разброс по вертикальной оси цены. Это говорит об условной гетероскедастичности. Тем не менее, модель, всегда имеет смысл начать оценивание модели с самой простой модели. Построим оценку модели в зависимости цены квартиры от общей площади с помощью метода наименьших квадратов. Соответственно, пусть у нас цена зависит от общей площади, а данные мы возьмем из набора данных h, и после оценки моделей, естественно, имеет смысл посмотреть сразу на отчет по оцениванию модели. И здесь R, как мы знаем, всегда считает кучу всяких показателей. Ну, помимо оценок коэффициентов и их стандартных ошибок t-статистк и p-значений, есть у нас F-statistic, которое проверяет гипотезу о незначимости регрессии в целом с ее p-значением, но сейчас, в условиях гетероскедастичности, часть из этих показателей рассчитывается по неправильным формулам. Ну, в частности, если мы посмотрим на тесты на значимость каждого коэффициента coeftest (model), то в этой табличке сами оценки коэффициентов по прежнему хорошие, не смещенные, состоятельные, однако вот эти стандартные ошибки считаются по умолчанию по формулам, которые годны только для случая условной гомоскедастичности, а для нашего случая мы визуально диагностировали гетероскедастичность, ну и кроме того, было логично ожидать просто по здравому смыслу, даже не глядя на график, что разброс цен для больших квартир больше, чем разброс цен для маленьких квартир, то поэтому вот эти стандартные ошибки, они уже считаются по некорректным формулам. И то же самое можно сказать про доверительные интервалы. Если я строю доверительные интервалы confint (model), то, соответственно, вот эти доверительные интервалы, скажем, доверительный интервал для коэффициента при зависимости цены от метража общего, вот этот доверительный интервал, что коэффициент якобы от 2,5 до 2,7, этот доверительный интервал, к сожалению, неверный, и связано это с чем? Связано это с тем, что неправильно считается оценка ковариационной матрицы, оценка коэффициентов vcov (model), то есть сами-то коэффициенты β с крышкой неплохие, а вот эта оценка ковариационной матрицы, оценка дисперсии β₁ с крышкой – 13, оценка дисперсии β₂ с крышкой – 0,0024 и оценка ковариации между коэффициентами -0,18 и вот эта ковариационная матрица считается неверной. И мы знаем, что вместо, соответственно, неправильной ковариационной матрицы нам надо посчитать правильную оценку и сейчас мы к этому приступим.