使用基于模型的递归分区 (partykit R) 进行代理拆分
surrogate splitting with Model-based Recursive Partitioning (partykit R)
我正在使用 R 上的 partykit
库估算一个简单的 lmtree
模型。
在此估计中,我有一个因变量 y、一个解释变量 x 和一组分区变量 z.
我的一些分区变量有大量缺失值,我注意到最终估计的模型样本量是那几个类别中所有缺失值的净值。
这意味着,只要至少一个分区变量在我的数据框中有缺失值,整行就会从估计中删除,我会丢失所有 non-missing 的其余部分提供的信息 分区变量。
为了解决这个问题,在更传统的条件推理树估计中使用代理分裂(例如,使用来自 partykit
的 ctree_control
函数,您可以 select maxsurrogate
在 ctree
估计中执行)。
是否也可以在 lmtree
(基于模型的递归分区)中执行代理拆分?
目前 mob
的 partykit
实现(因此 lmtree
和 glmtree
)尚未提供代理拆分。
我们正在研究一种新的重新实现,其中 ctree
和 mob
都可以与代理变量一起使用,并且都可以在后台用于 lmtree
和 glmtree
等
目前,当您需要使用代理拆分进行基于模型的递归分区时,最好的解决方案是将 ctree
与基于自定义模型的 ytrafo
函数一起使用。这将在后台使用 CTree 算法(而不是 MOB),但这些算法通常会产生非常相似的结果。从应用的角度来看,更重要的区别是 lmtree
提供了各种方便的功能,特别是 plot
和 predict
,ctree
没有。
我正在使用 R 上的 partykit
库估算一个简单的 lmtree
模型。
在此估计中,我有一个因变量 y、一个解释变量 x 和一组分区变量 z.
我的一些分区变量有大量缺失值,我注意到最终估计的模型样本量是那几个类别中所有缺失值的净值。 这意味着,只要至少一个分区变量在我的数据框中有缺失值,整行就会从估计中删除,我会丢失所有 non-missing 的其余部分提供的信息 分区变量。
为了解决这个问题,在更传统的条件推理树估计中使用代理分裂(例如,使用来自 partykit
的 ctree_control
函数,您可以 select maxsurrogate
在 ctree
估计中执行)。
是否也可以在 lmtree
(基于模型的递归分区)中执行代理拆分?
目前 mob
的 partykit
实现(因此 lmtree
和 glmtree
)尚未提供代理拆分。
我们正在研究一种新的重新实现,其中 ctree
和 mob
都可以与代理变量一起使用,并且都可以在后台用于 lmtree
和 glmtree
等
目前,当您需要使用代理拆分进行基于模型的递归分区时,最好的解决方案是将 ctree
与基于自定义模型的 ytrafo
函数一起使用。这将在后台使用 CTree 算法(而不是 MOB),但这些算法通常会产生非常相似的结果。从应用的角度来看,更重要的区别是 lmtree
提供了各种方便的功能,特别是 plot
和 predict
,ctree
没有。