6

我有一个问题,我在分类树中主要使用分类数据,设置为一类因子。我正在使用partykitR 中的包,而不是party之前的答案建议前一个包更适合处理图形输出。

我的真实数据集中没有很多节点(大约 7 个),但是对于某些变量,我有很多因子水平,我遇到的问题是拆分左侧的因子水平和右侧的因子水平是互相干扰。具体来说,这是因为因子水平列表的水平方向与因子水平的长度相结合。

我可以使用包中的 Aids2 数据集重现该问题MASS。这是一个无意义的例子,但它会产生我希望解决的行为

library("partykit")
SexTest <- ctree(sex ~ ., data=Aids2)
plot(SexTest)

如果您查看节点 1 的节点拆分信息,您将看到我所描述的行为:

在我的真实数据框中,仅当我将字体缩小到 4 点时才有效,这是不可读的。

有没有办法为该字符串定义一个文本框,并使文本能够换行?我已经浏览pargpar试图找到解决方案,但没有成功。另一种合适的选择是错开每个节点的因子信息的垂直位置,以便它们位于另一个之下。

4

2 回答 2

3

嗯。我去过那儿。在不修改 partykit 包的内部结构的情况下,我不知道有什么方法可以改善特定大小的输出(我经常遇到问题,即 X 轴标签在条形图输出上太长,因为绘制了多分树因变量)。

这是一个丑陋的解决方法,但是您可以从树中获取输出以了解哪些类别在哪里,然后使用 GIMP 之类的东西适当地突出显示您的 powerpoint/report/whatever 的图像。

Model formula:
sex ~ state + diag + death + status + T.categ + age

Fitted party:
[1] root
|   [2] T.categ in hs, hsid, haem, other
|   |   [3] T.categ in hs, hsid, haem
|   |   |   [4] state in NSW, Other, VIC: M (n = 2386, err = 0.0%)
|   |   |   [5] state in QLD: M (n = 197, err = 0.5%)
|   |   [6] T.categ in other: M (n = 70, err = 10.0%)
|   [7] T.categ in id, het, blood, mother: M (n = 190, err = 42.6%)

Number of inner nodes:    3
Number of terminal nodes: 4

您还可以将输出的大小调整为更大的值,例如使用 png()

png('tmp.png',width=1024,height=768)
plot(SexTest)
dev.off()

绘图的更大分辨率输出

于 2014-10-15T21:35:12.140 回答
1

另一种方法是在相关点手动拆分列表。您可以通过更改您希望新行包含“\n”的级别名称来做到这一点:“haem\n”。这看起来有点难看,因为该线随后与因子水平部分重叠,但这是迄今为止我发现的唯一真正的工作。

于 2016-11-15T17:03:04.333 回答