使用基于模型的递归分区 (partykit R) 进行代理拆分

surrogate splitting with Model-based Recursive Partitioning (partykit R)

我正在使用 R 上的 partykit 库估算一个简单的 lmtree 模型。 在此估计中,我有一个因变量 y、一个解释变量 x 和一组分区变量 z.

我的一些分区变量有大量缺失值,我注意到最终估计的模型样本量是那几个类别中所有缺失值的净值。 这意味着,只要至少一个分区变量在我的数据框中有缺失值,整行就会从估计中删除,我会丢失所有 non-missing 的其余部分提供的信息 分区变量。

为了解决这个问题,在更传统的条件推理树估计中使用代理分裂(例如,使用来自 partykitctree_control 函数,您可以 select maxsurrogatectree 估计中执行)。

是否也可以在 lmtree(基于模型的递归分区)中执行代理拆分?

目前 mobpartykit 实现(因此 lmtreeglmtree)尚未提供代理拆分。

我们正在研究一种新的重新实现,其中 ctreemob 都可以与代理变量一起使用,并且都可以在后台用于 lmtreeglmtree

目前,当您需要使用代理拆分进行基于模型的递归分区时,最好的解决方案是将 ctree 与基于自定义模型的 ytrafo 函数一起使用。这将在后台使用 CTree 算法(而不是 MOB),但这些算法通常会产生非常相似的结果。从应用的角度来看,更重要的区别是 lmtree 提供了各种方便的功能,特别是 plotpredictctree 没有。