首页 > 解决方案 > partykit:修改终端节点以包括回归量的标准差和显着性

问题描述

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

以下代码来自partykit 文档

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)
}

它是这样产生的: 在此处输入图像描述

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

在此处输入图像描述

提前致谢。

标签: rtreedecision-treeparty

解决方案


当使用node_terminal()终端节点内的信息可视化功能时,您可以插入一个FUN自定义和格式化信息的功能。的输入FUN$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))

自定义树

这仅显示系数和标准误差 - 但您可以添加重要性星或您喜欢的任何其他信息。但是,您需要自己在 custom 中进行所有格式化FUN


推荐阅读