Мне нужно выполнить оценки 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)