我正在研究各种特征对法院对特定罪行的判决的影响。数据集非常大(28928 个观测值,86 个 2 级单位)。我正在考虑使用级别 1 和级别 2 特征作为控制(级别 1 为大写)来决定是否监禁某人(=二元结果变量)。
这是我的代码:
MLmodel196a_2 <- glmer(NEPO_ANO_NE ~
OZNACENY_RECIDIVISTA_REG + POCET_DRIV_ODSOUZENI_REG +
ROK_ODSOUZENI_REG + OMEZENI_A_POVINNOST_REG +
POCET_HLAVNICH_LICENI + DRUH_ZAHAJENI_RIZENI_REG +
NOVELA_REG + ODSTAVEC_REG +
EU_OBCANSTVI + POHLAVI_REG + VEK_SPACHANI_REG +
objasnenost_procenta + kriminalita_relativni_REG +
venkov_mesto + socialni + nezamestani_celkem +
vzdelani_zakladni_procenta +
prumerny_vek + podil_15az24_muzu_procenta +
zenati_vsichni_procenta +
verici_procenta + volby_ucast +
(1 | Nazev_soudu), family = binomial, data = vyber196)
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到此错误:
Error: (maxstephalfit) PIRLS step-halvings failed to reduce deviance in pwrssUpdate
Run Code Online (Sandbox Code Playgroud)
如果我针对不同的数据集(不同的攻击)运行此分析,它会产生带有多个警告的结果。如果我只使用 level1 控制变量运行这个数据集,它会再次产生带有几个警告的结果。
大多数级别 1 变量是分类变量,级别 2 变量都是连续的(未缩放)。
不幸的是,我无法提供任何数据,因为这些数据是在这种情况下由政府提供的。
我不明白,为什么这只会发生在这次进攻中,而不是其他进攻中。有办法解决吗?
(lme4 版本 1.1-12,R 版本 3.3.1)
删除连续变量之一后,它解决了。连续变量是案件的听证会次数,在大多数情况下为零。由于不可能在没有听证的情况下监禁某人,因此它可能会因为准分离而搞砸了整个过程。大多数警告最终通过缩放和从原始值重新开始拟合得到解决(n. 1 和 4 在 ?convergence 的示例中 - 感谢它!)。