partykit::ctree 多数随机性=TRUE

partykit::ctree randomness in majority=TRUE

我试图了解 ctree fits/predict 观察结果如何在所有预测变量中完全缺失。例如,

library(partykit)
airq <- subset(airquality, !is.na(Ozone))
airq <- rbind(airq,data.frame(Ozone=rnorm(50),Solar.R=NA,Wind=NA,Temp=NA,Month=NA,Day=NA))
airct <- ctree(Ozone ~ ., data = airq,control = ctree_control(majority = TRUE))
table(tail(predict(airct,type="node"),50))

airq 的最后 50 行缺少所有预测变量,通过阅读文档,我得到的印象是 majority=TRUE 它只会跟随大多数,这意味着它们都应该进入完全没有变化的相同节点。然而我得到了他们的预测分布。

所以

  1. 我对 majority=TRUE 工作原理的理解正确吗?
  2. ctree fitting/predicting 没有任何观察到的预测变量的行如何?

顺便说一句,我尝试跟踪代码以查看如何使用 majority 参数,并看到 partykit:::.cnode 中的行 #104 具有:

prob <- numeric(0) + 1L:length(prob) %in% which.max(prob)

这对我来说很奇怪,因为结果总是 numeric(0)

这是 is/was 处理 majority 控制参数的错误。它最近已在 R-Forge 存储库中修复(参见 https://R-Forge.R-project.org/R/?group_id=261)但尚未发布到 CRAN。 运行

之后
install.packages("partykit", repos = "http://R-Forge.R-project.org")

一切都应该按预期工作。 CRAN 的发布日期尚未确定,但我认为应该不会太遥远。[​​=13=]