New In

Робастные выводы для линейных моделей

Stata 18 предлагает более точные стандартные ошибки и доверительные интервалы (ДИ) для трех часто используемых в Stata линейных моделей: regress, areg и xtreg, fe.

 

Основные моменты

  • Многосторонние кластерно-растровые стандартные ошибки

  • Стандартные ошибки HC2:

    • Регулировка степеней свободы

    • Кластерно-робастная

    • Кластерно-робастная и корректировка степеней свободы

  • Дикий кластерный бутстрап доверительные интервалы и p-значения

Малое количество кластеров? Неравномерное число наблюдений в кластере? Используйте HC2 с корректировкой по степеням свободы, опция vce(hc2 …, dfadjust), или бутстреп по диким кластерам для получения достоверных выводов.

Несколько невложенных кластеров? Используйте многоходовую кластеризацию, опция vce(cluster group1 group2 … groupk), для учета потенциальной корреляции наблюдений в разных кластерах.

Давайте посмотрим, как это работает

Мы располагаем панелью индивидов и хотели бы изучить влияние принадлежности к профсоюзу на логарифм заработной платы ln_wage. Мы контролируем наличие у индивида высшего образования collgrad, длительность пребывания на работе и фиксированные эффекты времени.

Мы сравниваем несколько методов вычисления стандартных ошибок: робастный, кластерно-робастный, кластерно-робастный HC2 с поправкой на степень свободы и двустороннюю кластеризацию. Второй и третий методы учитывают корреляцию на уровне отрасли. Последний метод учитывает корреляцию как на уровне отрасли, так и на уровне профессии. В нашем примере мы используем только 12 кластеров, что нарушает предположение асимптотического приближения о том, что число кластеров растет с увеличением размера выборки. Мы ограничиваем выборку наблюдениями, в которых имеется код отрасли ind_code. Мы также храним результаты оценки. Мы набираем

. webuse nlswork
(National Longitudinal Survey of Young Women, 14-24 years old in 1968)

. keep if ind_code!=.
(341 observations deleted)

. quietly regress ln_wage tenure union collgrad i.year, vce(robust)

. estimates store robust

. quietly regress ln_wage tenure union collgrad i.year, vce(cluster ind_code)

. estimates store cluster

. quietly regress ln_wage tenure union collgrad i.year, vce(hc2 ind_code, dfadjust)

. estimates store HC2

. quietly regress ln_wage tenure union collgrad i.year, vce(cluster idcode ind_code)

. estimates store multiway

Вместо того чтобы просматривать все выходные таблицы регрессии, мы объединяем их в таблицу оценок с помощью программы etable.

Мы попросили etable использовать сохраненные нами оценки и представить только CI, cstat(_r_ci, …), для коэффициента объединения, keep(union). Затем мы экспортируем таблицу в таблицу в формате .html, которую вы видите на этой странице, export(setable.html, replace).

Наиболее узкими являются КИ с робастными стандартными ошибками. Наиболее широкими они являются при стандартных ошибках, скорректированных по степеням свободы HC2. В последнем случае значение 0 находится в пределах КИ, что говорит о необходимости осторожности в интерпретации влияния членства в профсоюзе на заработную плату. Это противоречит выводам, которые мы могли бы сделать, если бы использовали только робастные стандартные ошибки. Наконец, по-видимому, нет большой разницы между кластеризацией на уровне отрасли и кластеризацией как на уровне отрасли, так и на уровне профессии.

Для учета небольшого числа кластеров и неравного числа наблюдений в каждом кластере можно также использовать бутстреп с диким кластером. Это реализовано в новой команде wildbootstrap. Мы подробно описываем эту возможность в разделе Wild cluster bootstrap, но для сравнения воспользуемся ею и здесь.

. wildbootstrap regress ln_wage tenure union collgrad i.year,
	cluster(ind_code) coefficients(union) rseed(111)

wildbootstrap вызывает regress. Таким образом, после завершения работы вы можете получить доступ к результатам регрессии. Но, кроме того, wildbootstrap строит бутстреп CI для нулевой гипотезы о том, что коэффициент равен 0. По умолчанию он использует все коэффициенты, но вы можете выбрать те, которые хотите исследовать. Мы уделяем особое внимание объединению. Поскольку мы проводим повторную выборку на уровне кластеров, то в cluster() указываем переменную ind_code и задаем seed для воспроизводимости.

ДИ, полученный с помощью wildbootstrap, почти такой же широкий, как и при использовании стандартных ошибок HC2. Хотя значение 0 не входит в КИ, это говорит о большой вариабельности точечной оценки.