【发布时间】:2021-04-14 03:22:18
【问题描述】:
我正在尝试将基于模型的递归分区 (MOB) 与 mob() 函数(来自 partykit 包)一起使用,以根据使用logistic() 回归找到的最佳分区来获取与每个功能相关的不同参数(glm-二项式)函数。我必须定义我的模型。
按照第 7 页上的示例:https://cran.r-project.org/web/packages/partykit/vignettes/mob.pdf 我创建了一个 logit 函数来估计值并返回logistic() 函数的估计值等。 但是,函数的定义似乎不正确。
library(partykit)
logit_func <- function(y, x, start = NULL, weights = NULL, offset = NULL, ...) {
glm(y ~ 0 + x, family = binomial, start = start, ...)
}
p <- mob(future~., data=sample, fit = logit_func)
...并得到以下错误
Error in model.frame.default(formula = y ~ 0 + x, drop.unused.levels = TRUE) :
invalid type (NULL) for variable 'x'
示例数据框如下:
sample <- structure(list(future = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L,
2L, 2L, 2L), .Label = c("0", "1"), class = "factor"), HHk = c(0.412585987717856,
1, 1, 1, 1, 1, 1, 1, 0.865684350743137, 0.685221125225357), HHd = c(0.529970735028671,
1, 1, 1, 0.611295754192343, 0.171910197073699, 0.722887386610618,
0.457585763978574, 0.517888089662373, 0.401285262785306), via_4 = structure(c(1L,
2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("0", "1"), class = "factor"),
region_5 = structure(c(1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L), .Label = c("0", "1"), class = "factor")), row.names = c(NA,
10L), class = "data.frame")
有什么线索吗?
谢谢你:)
【问题讨论】:
标签: r machine-learning tree regression party