R - partykit - 自定义模型树节点和拆分

R - partykit - custom model tree nodes and splits

在 partykit 包中,有一种方法可以通过指定预测器和拆分来构建自定义树。例如:

data("WeatherPlay", package = "partykit")

#create a split
sp_o <- partysplit(3L, breaks = 75) 

#create a node
n1 <- partynode(id = 1L, split = sp_o, kids = lapply(2L:3L, partynode))

#and make a "tree" out of it
t2 <- party(
  n1,
  data = WeatherPlay,
  fitted = data.frame(
    "(fitted)" = fitted_node(n1, data = WeatherPlay),
    "(response)" = WeatherPlay$play,
    check.names = FALSE
  ),
  terms = terms(play ~ ., data = WeatherPlay),
)

t2 <- as.constparty(t2)
t2
plot(t2)

模型树(由 mob() 返回)是否可行?我可以逐个节点构建树,然后将指定函数拟合到终端节点吗?

原则上,可以手动构建一个 "modelparty" 对象(由 mob() 返回)。但是,在您引用的示例中没有像 as.constparty() 这样的简单强制函数。原因是为了构建模型树、打印,尤其是用它们进行预测,需要关于模型的更多详细信息。

我建议先构建树结构 ("partynode"),然后填充整个 $info 插槽(使用 callformulaFormulatermsfitcontroldotsnreg)。然后应该可以调用 refit.modelparty() 来改装所有终端节点中的模型。然后这可以用来填充 $node$info(使用 coefficientsobjfunnobs、...)。

免责声明:所有这些都是完全未经测试的。但是,除了模仿 "modelparty",您当然也可以创建自己的方式来将模型存储在 "party" 对象中,并且只使用 partykit.[=31 提供的更多基本构建块=]