【发布时间】:2018-04-09 08:06:19
【问题描述】:
我正在尝试构建具有“双层交互”类型的基于模型的树,其中树的节点中的模型再次被分割。
我正在使用mob() 函数来达到这个目的,但我无法使fit 函数的参数与lmtree() 函数一起工作。
在以下示例中,a 是 b 的函数,a 和 b 之间的关系取决于 d 和 b | d。
library("partykit")
set.seed(321)
b <- runif(200)
d <- sample(1:2, 200, replace = TRUE)
a <- jitter(ifelse(d == 1, 2 * b - 1, 4 * b - 1.2), amount = .1)
a[b < .5 & d == 1] <- jitter(rep(0, length(a[b < .5 & d == 1])))
a[b < .3 & d == 2] <- jitter(rep(0, length(a[b < .3 & d == 2])))
fit <- function(y, x, start = NULL, weights = NULL, offset = NULL, ..., estfun = FALSE, object = FALSE)
{
x <- x[, 2]
l <- lmtree(y ~ x | b)
return(l)
}
m <- mob(a ~ b | d, fit = fit) # not working
当然,通过这个简单的示例,我可以使用lmtree(a ~ b | d + b) 来查找每个交互,但是有没有办法将mob() 的fit 函数用作lmtree()?
【问题讨论】:
标签: r tree partitioning party