我喜欢计算R中的逻辑固定效应面板回归(条件最大似然(,并获得预测值和/或平均边际效应。
我从的生存包中找到了两个功能:bife和clogit
尽管如此,函数的结果不同,我想知道为什么以及如何修复它。clogit函数给我的结果与Stata(xtlogit,fe(中的结果相同,但我没有找到从中获得平均边际/部分效果的方法(解释如何这样做也能解决我的问题(。在bife中,结果与Stata中的clogit和xtlogit不同,可以选择计算PME(getAPE(。
clogit:
clogit_output <- clogit(binary_variable~ x1 + x2 + x3 + strata(id), data = data)
biffe:
bife_output <- bife(binary_variable ~ x1 + x2 + x3 | id, data = data, model = c("logit"))
我的结果是二进制的(0或1(,预测因子是伪变量和数字。我有一个不平衡的小组,12年来有10000名受访者。我用申报了面板结构
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
对于bife:
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相同的结果。然而,在我的情况下,纠错给出了错误:步骤减半失败。
clogit
和bife
结果的差异用附带参数问题来解释。
正如你自己已经发现的,bife::bias_corr(bife_output)
纠正了这种偏见。您也可以使用summary(bife::bias_corr(bife_output))
来获取标准错误。
另请参阅我对Stack Overflow这个新问题的更详细的回答。