You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

partykit::mob()设置分割模型后为终端节点拟合不同模型的方法

问题解答:partykit包实现指定参数异质性检验+终端节点完整模型拟合

你需要的功能已经在partykit的lmtree/mob框架中内置实现,核心是使用parm参数指定需要检验异质性的参数即可,单步实现代码如下:

library(partykit)

tree_1 <- lmtree(
  # 完整模型公式,自带截距项
  Sepal.Length ~ Sepal.Width | Species, 
  data = iris,
  # 仅检验Sepal.Width斜率的异质性用于节点分割,截距视为同质不参与分割检验
  parm = "Sepal.Width"
)

方案说明

  • 运行后每个终端节点拟合的都是包含截距项的完整线性模型,调用coef(tree_1)即可查看各节点的截距和斜率估计值
  • 节点分割阶段只会检验parm指定参数的异质性,不会因为截距的波动触发节点分割,完全符合你的需求

原写法报错原因

你之前的写法存在问题的核心原因是公式Sepal.Length ~ 0 + Sepal.Width | Species强制移除了截距项,传入自定义fit函数的特征矩阵本身就不包含截距列,因此在fit函数内部补+1也无法生成截距估计。

补充思路说明

你提到的「基于选定回归参数的同质性优化拟合」就是parm参数的原生设计逻辑,mob框架默认的分割检验逻辑就是对parm指定的参数进行得分检验,不需要自行编写底层逻辑。

内容的提问来源于stack exchange,提问作者Chrr1s

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:36:03