如何在随机数据集上绘制条件推理树?
How to plot a conditional inference tree on random dataset?
我需要绘制条件推理树。我选择了 party::ctree() 函数。它适用于 iris 数据集。
library(party)
(irisct_party <- party::ctree(Species ~ .,data = iris))
plot(irisct_party)
但是当我使用随机数据时
library(wakefield)
set.seed(123)
n=200
studs <- data.frame(problem = factor(answer(n, x = c("No", "Yes"))),
age = round(runif(n, 18, 25)),
gender = factor(answer(n, x = c("M", "F" ))),
smoker = factor(answer(n, x = c("No", "Yes" ))),
before = round(runif(n, 60, 80)),
after = before + round(runif(n, 10, 20))
)
(ct <- party::ctree(problem ~ ., data = studs))
plot(ct)
我刚看到
Conditional inference tree with 1 terminal nodes
Response: problem
Inputs: age, gender, smoker, before, after
Number of observations: 200
1)* weights = 200
问题。为什么条件推理树在随机数据上有1个终端节点?
在每个节点(包括根节点)中,ctree()
对因变量(随机数据中的problem
)和每个解释变量(age
, gender
, smoker
, before
, after
)。它为每个测试计算 p-value,并选择具有最低 p-value 的解释变量进行拆分。但前提是 p-value 在某个显着性水平上显着(针对测试多个解释变量进行了调整)。在您的数据中,情况并非如此,因为实际上,因变量是独立于解释变量进行采样的。因此,算法停止,不分裂根节点。
备注:适配ctree()
建议使用后继包partykit
而非party
。另请参阅随附的 vignette("ctree", package = "partykit")
了解更多详细信息。
我需要绘制条件推理树。我选择了 party::ctree() 函数。它适用于 iris 数据集。
library(party)
(irisct_party <- party::ctree(Species ~ .,data = iris))
plot(irisct_party)
但是当我使用随机数据时
library(wakefield)
set.seed(123)
n=200
studs <- data.frame(problem = factor(answer(n, x = c("No", "Yes"))),
age = round(runif(n, 18, 25)),
gender = factor(answer(n, x = c("M", "F" ))),
smoker = factor(answer(n, x = c("No", "Yes" ))),
before = round(runif(n, 60, 80)),
after = before + round(runif(n, 10, 20))
)
(ct <- party::ctree(problem ~ ., data = studs))
plot(ct)
我刚看到
Conditional inference tree with 1 terminal nodes
Response: problem
Inputs: age, gender, smoker, before, after
Number of observations: 200
1)* weights = 200
问题。为什么条件推理树在随机数据上有1个终端节点?
在每个节点(包括根节点)中,ctree()
对因变量(随机数据中的problem
)和每个解释变量(age
, gender
, smoker
, before
, after
)。它为每个测试计算 p-value,并选择具有最低 p-value 的解释变量进行拆分。但前提是 p-value 在某个显着性水平上显着(针对测试多个解释变量进行了调整)。在您的数据中,情况并非如此,因为实际上,因变量是独立于解释变量进行采样的。因此,算法停止,不分裂根节点。
备注:适配ctree()
建议使用后继包partykit
而非party
。另请参阅随附的 vignette("ctree", package = "partykit")
了解更多详细信息。