partykit:修改终端节点以包括回归变量的标准偏差和重要性

partykit: Modify terminal node to include standard deviation and significance of regressors

在使用 partykit::mob() 函数后,我希望能够对显示的图表进行个性化设置,以包括回归变量的标准差和统计显着性。

以下代码来自partykitdocumentation.

library("partykit")
if(require("mlbench")) {
  ## Pima Indians diabetes data
  data("PimaIndiansDiabetes", package = "mlbench")
  ## a simple basic fitting function (of type 1) for a logistic regression
  logit <- function(y, x, start = NULL, weights = NULL, offset = NULL, ...) {
    glm(y ~ 0 + x, family = binomial, start = start, ...)
  }
  ## set up a logistic regression tree
  pid_tree <- mob(diabetes ~ glucose | pregnant + pressure + triceps + insulin +
                    mass + pedigree + age, data = PimaIndiansDiabetes, fit = logit)
  ## see lmtree() and glmtree() for interfaces with more efficient fitting functions
  ## print tree
  print(pid_tree)
  ## print information about (some) nodes
  print(pid_tree, node = 3:4)
  ## visualization
  plot(pid_tree,terminal_panel = NULL)
}

这是它产生的:

这就是我想要得到的(对于所有节点)。

提前致谢。

当使用 node_terminal() 函数可视化终端节点内的信息时,您可以插入一个自定义和格式化信息的函数 FUNFUN 的输入是来自各个终端节点的 $info,其中 mob 树包括拟合模型 $object。输出应该是一个字符向量。例如考虑这个自定义摘要:

mysummary <- function(info, digits = 2) {
  n <- info$nobs
  na <- format(names(coef(info$object)))
  cf <- format(coef(info$object), digits = digits)
  se <- format(sqrt(diag(vcov(info$object))), digits = digits)
  c(paste("n =", n),
    "Estimated parameters:",
    paste(na, cf, se)
  )
}

基于此你得到:

plot(pid_tree,
  terminal_panel = node_terminal,
  tp_args = list(FUN = mysummary))

这仅显示系数和标准误差 - 但您可以添加重要的星星或您喜欢的任何其他信息。但是,您需要在自定义 FUN.

中自行完成所有格式设置