r - 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)
}
这就是我想要得到的(对于所有节点)。
提前致谢。
解决方案
当使用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
。
推荐阅读
- r - 在R中将文本文件转换为数据框
- android - 将 apk 从 Beta 版发布到生产版时出现错误“Fully Shadowed APK”
- laravel - 在生产服务器中部署时 Laravel Websocket 不工作 - 连接建立错误:net::ERR_CONNECTION_TIMED_OUT
- tensorflow - Keras 的判别学习率
- python - Python 3.0(字典)问题
- android - 类名未出现在错误 Android Studio 中
- r - ggplot:如何在堆叠条形图中的每个填充周围添加轮廓,但仅部分添加
- amazon-web-services - Windows 与 Linux 上的 Localstack(Docker 问题?)
- php - 在 laravel 中编写此代码的更好方法是什么
- c# - 删除证书时,现有 TLS/SSL 连接会在一段时间后停止