Мне нравится вычислять панельную регрессию логистического фиксированного эффекта (условная максимальная вероятность) в R и получать прогнозируемые значения и/или средние предельные эффекты.
Нашел две функции: bife и clogit из пакетов выживания
Тем не менее, функции различаются по своим результатам, и я хотел бы знать, почему и как это потенциально исправить. Функция clogit дает мне те же результаты, что и в Stata (xtlogit, fe), но я не нашел способа получить от нее средний предельный/частичный эффект (объяснение того, как это сделать, также решило бы мою проблему). В bife, где результаты отличаются от результатов clogit и xtlogit в Stata, есть возможность рассчитать PME (getAPE).
клогит:
clogit_output <- clogit(binary_variable~ x1 + x2 + x3 + strata(id), data = data)
жизнь:
bife_output <- bife(binary_variable ~ x1 + x2 + x3 | id, data = data, model = c("logit"))
Мой результат двоичный (0 или 1), а предикторы - фиктивные переменные и числовые. У меня есть несбалансированная панель с 10 000 респондентов (id) за 12 лет. Я объявил структуру панели с помощью:
data<- pdata.frame(data, index = c("id", "wave"))
Результат в clogit:
summary(clogit_output)
coef exp(coef) se(coef) z Pr(>|z|)
X1 -0.173637 0.840602 0.103450 -1.678 0.09326
X2 -0.467696 0.626444 0.115345 -4.055 5.02e-05
X3 0.743621 2.103538 0.035638 20.866 < 2e-16
для бифа:
summary (bife_output)
Estimate Std. error z value Pr(> |z|)
X1 -0.2135333 0.1140698 -1.872 0.06121
X2 -0.5624223 0.1268271 -4.435 9.23e-06
X3 0.9150707 0.0399252 22.920 < 2e-16
Я зашел так далеко, что предполагаю, что с помощью исправления ошибок в bife (bias_corr(bife_output)) я получу те же результаты, что и в STATA или clogit. Тем не менее, в моем случае исправление ошибки выдает ошибку: Сбой в делении шага пополам.