partykit:修改终端节点以包括回归变量的标准偏差和重要性
partykit: Modify terminal node to include standard deviation and significance of regressors
在使用 partykit::mob()
函数后,我希望能够对显示的图表进行个性化设置,以包括回归变量的标准差和统计显着性。
以下代码来自partykit
documentation.
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()
函数可视化终端节点内的信息时,您可以插入一个自定义和格式化信息的函数 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))
这仅显示系数和标准误差 - 但您可以添加重要的星星或您喜欢的任何其他信息。但是,您需要在自定义 FUN
.
中自行完成所有格式设置
在使用 partykit::mob()
函数后,我希望能够对显示的图表进行个性化设置,以包括回归变量的标准差和统计显着性。
以下代码来自partykit
documentation.
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()
函数可视化终端节点内的信息时,您可以插入一个自定义和格式化信息的函数 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))
这仅显示系数和标准误差 - 但您可以添加重要的星星或您喜欢的任何其他信息。但是,您需要在自定义 FUN
.