Теперь перейдем к формальным тестам на гетероскедастичность. Начнем мы с теста Уайта или, по-другому, другую версию называют, этого теста называют тест Бройша-Пагана. Вот мы применим bptest к модели. В чем состоит этот тест? Помимо оценки основной регрессии оценивается вспомогательная регрессия, где квадраты остатков ε с крышкой в квадрате проверяется их зависимость от тех же объясняющих переменных, что и в исходной модели. То есть, здесь была построена регрессия квадратов остатков ε с крышкой в квадрате на те же объясняющие переменные, то есть на одну объясняющую переменную totsp, и оказалось, что гипотеза о том, что зависимости во вспомогательной регрессии нет, эта гипотеза отвергается в силу маленького p-value. То есть, у нас имеет место гетероскедастичность, так как гипотеза об условной гомоскедастичности была отвергнута. Чтобы провести все-таки классический вариант теста Уайта, где во вспомогательной регрессии включаются не только исходные регрессоры, но и их квадраты, попарные произведения, надо это отдельно, специально указать r в команде bptest, то есть надо взять данные из набора данных h и во вспомогательную регрессию, здесь есть varformula, то есть формула для вспомогательной регрессии, соответственно, здесь указать, что нас интересует зависимость не только от исходного фактора общей площади, но также от и исходной площади в квадрате. И, соответственно, если я дам такую команду, во вспомогательной регрессии окажется две объясняющих переменных, соответственно, получится классическая формула статистики Уайта, и тут опять гипотеза о том, что зависимости во вспомогательной регрессии нет, отвергается, значит, имеет место условная гетероскедастичность. И пару слов о синтаксисе. Вот здесь я, когда писал формулу, написал какое-то I со скобками. Это означает, что вот эту степень надо воспринимать r буквально, а не как специальную команду внутри формулы. У r вообще богатый синтаксис, например, я мог тот же самый результат получить с помощью другого описания формулы. Я, например, мог сказать, что нужен полином второй степени со всеми коэффициентами от общей площади. Я мог написать poly(totsp), указатель второй степени, и эта команда имеет абсолютно точно такой же эффект, как предыдущая. То есть, в качестве регрессоров берутся totsp в первой степени, totsp во второй степени и константа. Соответственно, результат выходит совершенно аналогичный. И второй тест, который мы проведем – это тест Голдфелда-Квандта. Соответственно, в чем, как устроен тест Голдфелда-Квандта? Нам поможет команда gqtest. Мы берем нашу модель и здесь для теста Голдфелда-Квандта уже надо указать некую переменную, которая объясняет гетероскедастичность, то есть от которой условная дисперсия ε i-того зависит монотонно. Ну, мы предполагаем, что разброс цены связан с размером квартиры, то есть мы предполагаем, что нам нужно будет сортировать по переменной (нам нужна будет опция order.by) сортировать по переменной totsp, данные мы возьмем из набора данных h, и дальше надо указать, какой процент наблюдений надо выкинуть посередине. Автоматически gqtest в R, он возьмет верхнее наблюдение, нижнее наблюдение, серединку выкинет. Ну давайте, скажем, количество наблюдений по середине, долю, возьмем, скажем, 20 % наблюдений посередине выкинем и проведем тест Голдфелда-Квандта. Соответственно, тест Голдфелда-Квандта, он оценит две вспомогательные регрессии. Поскольку я 20 % выкинул, значит, у меня осталось 40 % наблюдений, где подозрительно большая дисперсия, 40 % наблюдений, где подозрительно маленькая дисперсия, и, соответственно, R оценит две модели: одну, там, где дисперсия ожидается большой, другую, там, где дисперсия ожидается маленькой, поделит RSS одной модели на RSS другой модели. Вот у него получилось в результате 8,2 при делении RSS той части выборки, где, предположительно, высокая дисперсия, на ту часть, на RSS той части выборки, где предположительно низкая дисперсия. И p-value оказалось снова очень маленьким, меньше чем 2,2 * 10 в минус 16. Соответственно, вывод: гипотеза h0 об условной гомоскедастичности также отвергается. Что мы можем сделать, какие меры помимо использования робастных стандартных ошибок мы можем применять? Одним из частых преобразований является логарифмирование данных. Если я посмотрю на исходный график, где гомоскедастичности явно нет, и построю также зависимость цены квартиры также от общей площади, но в логарифмах. Я построю qplot, данные возьму из набора данных h, но по горизонтали я отложу логарифм общей площади, а по вертикали я отложу логарифм цены квартиры. В этих осях у меня уже зависимость будет больше похожа на зависимость условной гомоскедастичности, потому что вот, при логарифме, равном 5, разброс примерно уже похож на разброс цен при логарифме, равном 4. И если я оценю, скажем, модель 2, которая в точности будет дублировать модель 1, точно так же данные берутся из набора данных h, но зависеть будет логарифм цены от логарифма общей площади. Если я оценю модель 2 и посмотрю на, скажем, тот же тест Голдфелда-Квандта, только для модели 2. Здесь я исправлю 2, а так команда совершенно аналогичная. И, соответственно, я дам команду на тест Голдфелда-Квандта, то, несмотря, конечно, на то, что гетероскедастичность в этой преобразованной модели осталась, она уже не так сильно выражена, как в прошлый раз, потому что если посмотреть на статистику Голдфелда-Квандта, то есть во сколько раз отличаются RSS в части выборки с предположительно высокой дисперсией и в части выборки с предположительно низкой дисперсией, то оказывается, сейчас они отличаются всего в 2,5 раза, в то время как, когда мы делали модель без логарифмов, соответствующие RSS отличались в 8 раз, то есть в какой-то мере нам удалось немножко побороться с гетероскедастичностью помимо использования робастных стандартных ошибок. И я хочу еще раз обратить внимание на мой порядок действий: я сначала использовал робастные стандартные ошибки, а потом, собственно, выяснял, есть ли гетероскедастичность или нет. К сожалению, очень распространена практика, когда исследователь сначала проверяет гипотезу, есть гетероскедастичность или нет, и, соответственно, узнав, что гетероскедастичность есть, тогда используются робастные стандартные ошибки, а если гетероскедастичности по тестам не обнаружено, используются обычные стандартные ошибки. Эта практика, к сожалению, неверная, потому что двойное тестирование всегда приводит к неправильным рассчитываемым по умолчанию уровням значимости, поэтому двойного тестирования следует избегать. Как только у вас есть теоретические основания ожидать гетероскедастичность, а у нас они есть, логично предположить, что разброс цены квартиры связан с ее размером, то надо использовать робастные стандартные ошибки даже до, собственно, тестирования гипотезы о том, есть гетероскедастичность или нет.