Как fixest обрабатывает отрицательные значения пониженной зависимой переменной в пуассоновских оценках?

Мне нужно выполнить оценки glm (пуассона) с фиксированными эффектами (скажем, просто единичным FE) и несколькими регрессорами (переменные RHS). У меня есть несбалансированный набор панельных данных, в котором большинство (~ 90%) наблюдений имеют пропущенные значения (NA) для некоторых, но не для всех регрессоров.

fixest::feglm() может с этим справиться и вернет мою подогнанную модель. Однако для этого он (и fixest::demean тоже) удаляет наблюдения, в которых отсутствует хотя бы один регрессор, до построения средних значений фиксированного эффекта.

Боюсь, что в моем случае это означает, что в данных не используется значительная часть доступной информации. Поэтому я хотел бы вручную унизить мои переменные, чтобы иметь возможность включить как можно больше информации в среднее значение каждого измерения с фиксированным эффектом, а затем запустить feglm для унизительных данных. Однако это подразумевает получение отрицательных значений зависимой переменной, что несовместимо с Пуассоном. Если я запускаю feglm с семейством Пуассона и моими вручную урезанными данными, я (когерентно) получаю: Отрицательные значения зависимой переменной не допускаются для семейства Пуассона. Та же ошибка возвращается с данными, уничиженными с помощью функции fixest::demean.

Вопрос:

Как feglm обрабатывает отрицательные значения уменьшенной зависимой переменной? Есть ли способ (например, некоторое преобразование данных) воспроизвести fepois на фиксированном эффекте в формуле с fepois на уничиженных данных и в формуле без фиксированного эффекта?

Чтобы использовать пример из документации fixest::demean (с двусторонними фиксированными эффектами):

data(trade)

base = trade
base$ln_dist = log(base$dist_km)
base$ln_euros = log(base$Euros)

# We center the two variables ln_dist and ln_euros
#  on the factors Origin and Destination
X_demean = demean(X = base[, c("ln_dist", "ln_euros")],
                  fe = base[, c("Origin", "Destination")])
base[, c("ln_dist_dm", "ln_euros_dm")] = X_demean

и я хотел бы воспроизвести

est_fe = fepois(ln_euros ~ ln_dist | Origin + Destination, base)

с участием

est = fepois(ln_euros_dm ~ ln_dist_dm, base)

person valium    schedule 09.09.2020    source источник


Ответы (1)


Думаю, есть две основные проблемы.

Стратегия моделирования

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

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

Предполагая, что наблюдения с пропущенными значениями имеют отношение к оценке коэффициентов фиксированных эффектов (или, иначе говоря, что они используются для принижения некоторых переменных), вы подразумеваете, что эти наблюдения не случайным образом распределены. А теперь тебе стоит волноваться.

Простое использование этих наблюдений для уничижения переменных не устранит смещения в оценочных коэффициентах из-за выбора без пропуска. Это более глубокая проблема, которую нельзя устранить с помощью технических уловок, а, скорее, путем глубокого понимания данных.

GLM

Недоразумение с GLM. GLM - очень умный трюк для оценки моделей максимального правдоподобия с помощью OLS (есть хорошее описание здесь). Он был разработан и использовался в то время, когда обычные методы оптимизации были очень дорогими с точки зрения вычислительного времени, и это был способ вместо этого использовать хорошо разработанные и быстрые методы OLS для выполнения эквивалентных оценок.

GLM - это итеративный процесс, в котором типичные оценки OLS выполняются на каждом шаге, единственные изменения на каждой итерации касаются весов, связанных с каждым наблюдением. Следовательно, поскольку это обычный процесс OLS, можно использовать методы для выполнения быстрых оценок OLS с несколькими фиксированными эффектами (как в пакете fixest).

На самом деле, вы могли делать все, что хотите ... но только в рамках этапа OLS алгоритма GLM. Ни в коем случае не следует принижать значение данных перед запуском GLM, потому что, ну, это не имеет смысла (FWL здесь абсолютно неприменима).

person Laurent Bergé    schedule 18.09.2020
comment
Спасибо, что четко разграничили моделирование и алгоритмические проблемы и указали мне на полезный материал по GLM. Действительно, моя мотивация не удалять случайно пропущенные наблюдения в измерении с фиксированным эффектом состоит в том, чтобы уменьшить дисперсию коэффициентов. Возможно ли с помощью {fixest} получить доступ к этапу OLS и реализовать другое унизительное отношение (такое, которое не удаляет частично отсутствующие наблюдения перед уничижением)? Если нет, то в первую очередь из-за практических или концептуальных проблем? - person valium; 18.09.2020
comment
В программировании возможно все. Но в этом случае возникает большая концептуальная проблема. Это связано с тем, что в GLM вам нужны веса, а шаги OLS зависят от весов (что означает, что вы должны применять взвешенное унижение). И у вас не будет весов для наблюдений с пропущенными значениями. Так что мне кажется, то, что вы хотите сделать, просто невозможно. - person Laurent Bergé; 19.09.2020