如何在R中构建分类树时解释rpart分割因子变量的结果?

7
如果因子变量为"Climate",有4个可能的值:热带(Tropical)、干旱(Arid)、温带(Temperate)和雪(Snow),并且我rpart树中的一个节点标记为"Climate:ab",那么这个分割点是什么?

这个问题应该放在stats.stackexchange.com上,并且应该被关闭。 - Joris Meys
1
@Joris 我不同意。这个问题是关于程序答案的解释,与分区树的统计背景和统计本身无关。 - Marek
@ Marek,你还能用什么词来描述对统计分析的解释呢? - Joris Meys
@user281537,您至少可以给我们提供一下您所参考的代码和输出结果。Climate是y变量还是x变量之一?如果它是“the”因子变量,我会期望它是响应变量。如果是这样的话,它就不应该在节点的标签中出现,而只应该在叶子节点中出现。这个结构指向某些交互项。 - Joris Meys
@Marek:你是巧合地在反弹旧问题吗? - Joris Meys
@Joris 如果我遇到缺少R标签或混乱的代码格式的问题,通常不会看日期。这只是一些清理工作。关于问题:我认为OP不知道rpart的默认标签意味着什么。 - Marek
1个回答

11

我假设您使用的是绘制树形结构的标准方法,即

plot(f)
text(f)
根据text.rpart的帮助文档,参数pretty在默认情况下将因子变量表示为字母,因此a表示levels(Climate)[1],这意味着左节点上的观察值具有Climate==levels(Climate)[1],右节点上则是其他观察值。你可以直接打印出水平层次(levels)。
plot(f)
text(f, pretty=1)

由rpart创建

但我建议使用maptree package中的draw.tree

require(maptree)
draw.tree(f)

由maptree创建

我使用了虚假数据来制作绘图:

X <- data.frame(
    y=rep(1:4,25),
    Climate=rep(c("Tropical", "Arid", "Temperate", "Snow"),25)
)
f <- rpart(y~Climate, X)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接