Тесты на гетероскедастичность



Лабораторная работа 6

Мультиколлинеарность и гетероскедастичность

Мультиколлинеарность

1. Выгрузим файл

f = read.csv(“flats_moscow.txt”, sep=”\t”, header=TRUE, dec=”.”)

Построим регрессионное уравнение

model = lm(data=f, price ~totsp+livesp+kitsp+dist)

Проверим модель на наличие мультиколлиарности.

 

2. Выгрузим исходные данные в виде матрицы

x0 = model.matrix(data=d, price~0+totsp+livesp+kitsp+dist)

head(x0)# проверим что получилось

 

3. Считаем корреляционную матрицу

cor(x0)

Делаем выводы

4. Считаем VIF для каждого фактора с помощью модели (1). Команда vif  из пакета HH.

vif (data=f, price~1+ totsp+livesp+kitsp+dist)

 

5. Сделать выводы о наличии мультиколлинеарности в модели

Гетероскедастичность

Загружаем пакеты ggplot 2 (построение графиков), lmtest , dplyr , sandwich .

Обнаружение гетероскедастичности

A) самое главное - теоретические предпосылки. Если объекты выборки разного «размера», то можно предположить наличие гетероскедастичности и использовать робастные стандартные ошибки.

B) графики

Загружаем файл

f = read.csv(“flats_moscow.txt”, sep=”\t”, header=TRUE, dec=”.”)

head(f)

# price - цена квартиры, тыс. долларов; totsp- общая площадь квартиры,м. кв; livesp -жилая площадь квартиры,м.кв.; kitsp - площадь кухни,м.кв.; dist - расстояние до центра Москвы, км.; metrdist - время до метро, мин.; walk =1, если квартира находится в пешей доступности от метро,= 0 – если до метро нужно добираться на транспорте; brick =1, если дом кирпичный, =0, если дом не кирпичный; floor -этаж#

 

Построим график

qplot (data=f, x=totsp, y=price) #типичное проявление гетероскедастичности. Смотрим на разброс price по вертикали. При маленьких значениях totsp разброс price небольшой, при увеличении totsp разброс price увеличивается.

 

Строим модель линейной парной регрессии

model_1 = lm(data=f, price~totsp)]

summary(model)

coeftest(model)

confint (model )# оценки стандартных ошибок и доверит. интервалов строятся при предположении о гомоскедастичности.

 

2. Способы борьбы с гетероскедастичностью:

а) Найдем робастные стандартные ошибки:

coeftest(model,vcov = vcovHC(model)) # значения коэффициентов регрессии не изменились, изменились стандартные ошибки.

 

Найдем новые доверительные интервалы, используя робастные стандартные ошибки (в R нет готовой команды для расчета робастных доверительных интервалов, поэтому приходится считать их вручную):

conftable = coeftest(model,vcov = vcovHC(model))

ci = data.frame (estimate=conftable[,1], se_hc = conftable[,2])

ci

ci = mutate(ci,left_ci=estimate-1.96*se_hc,right_ci=estimate+1,96*se_hc

ci

Доверительные интервалы увеличились. Часто это приводит к изменению значимости коэффициента регрессии.

Было:

 

Стало:

б) Переход к логарифмам.

Пример1.

Рассмотрим данные о цене бриллиантов

h = diamonds

glimpse(h)

help(diamonds) # очень много наблюдений!!!! 54000

Построим диаграмму рассеивания для двух переменных carat – массы бриллиантов (в каратах) и price – цены бриллианта.

qplot(data=h, carat, price) # по графику видно, присутствует гетероскедастичность.

Построим такой же график для логарифмов переменных

qplot(data=h, log(carat), log(price)) # по графику видно, что гетероскедастичности нет

 

Пример 2.

f = read.csv(“flats_moscow.txt”, sep=”\t”, header=TRUE, dec=”.”)

f

# price - цена квартиры, тыс. долларов; totsp- общая площадь квартиры,м. кв; livesp -жилая площадь квартиры,м.кв.; kitsp - площадь кухни,м.кв.; dist - расстояние до центра Москвы, км.; metrdist - время до метро, мин.; walk =1, если квартира находится в пешей доступности от метро,= 0 – если до метро нужно добираться на транспорте; brick =1, если дом кирпичный, =0, если дом не кирпичный; floor -этаж

 

qplot(data=f, totsp, price) # гетероскедастичность есть.

Перейдем к логарифмам

qplot(data=f, log(totsp), log( price)) #гетероскедастичность существенно уменьшилась.

 

Построим модель зависимости price от totsp в логарифмах

model_0 = lm(data=f, log(price)~log(totsp))

 

Тесты на гетероскедастичность


Дата добавления: 2020-01-07; просмотров: 211; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!