如何在MOB树的每个节点中找到观察结果? (partykit包)

时间:2017-12-01 05:04:22

标签: r party

我已经使用partykit包在数据集上创建基于模型的分区(MOB)树,我想知道是否有办法看到我们的数据集中的哪些观察通过了该规则并落入每个节点。 (我想根据树规则为每个节点分别设置数据帧)。

1 个答案:

答案 0 :(得分:1)

您可以对所有predict(..., type = "node")树使用partykit来获取预测的终端节点ID。然后您可以将其用于split()数据集。例如:

library("partykit")
tr <- lmtree(dist ~ speed, data = cars)
plot(tr)

lmtree

split(cars, predict(tr, type = "node"))
## $`3`
##    speed dist
## 1      4    2
## 2      4   10
## 3      7    4
## 4      7   22
## 5      8   16
## 6      9   10
## 7     10   18
## 8     10   26
## 9     10   34
## 10    11   17
## 11    11   28
## 12    12   14
## 13    12   20
## 14    12   24
## 15    12   28
## 
## $`4`
##    speed dist
## 16    13   26
## 17    13   34
## 18    13   34
## 19    13   46
## 20    14   26
## 21    14   36
## 22    14   60
## 23    14   80
## 24    15   20
## 25    15   26
## 26    15   54
## 27    16   32
## 28    16   40
## 29    17   32
## 30    17   40
## 31    17   50
## 
## $`5`
##    speed dist
## 32    18   42
## 33    18   56
## 34    18   76
## 35    18   84
## 36    19   36
## 37    19   46
## 38    19   68
## 39    20   32
## 40    20   48
## 41    20   52
## 42    20   56
## 43    20   64
## 44    22   66
## 45    23   54
## 46    24   70
## 47    24   92
## 48    24   93
## 49    24  120
## 50    25   85