在具有大量多变量响应的 partykit:ctree 中提取有关终端节点的信息
Extracting information on terminal nodes in partykit:ctree with a large number of multivariate responses
我正在使用 partykit:ctree 来探索我的数据集,这是一组大约 15,000 个海滩调查,调查从 50 个不同类别中发现的碎片数量。数据中有很多零,总碎片量的分布很大。我还有一系列自变量,包括一些因素,一些计数数据,一些连续数据。
这是一个非常小的样本数据集:
Counts<- as.data.frame(matrix (rpois(100,1), ncol=5))
colnames(Counts)<-c("Glass", "HardPlastic", "SoftPlastic", "PlasticBag", "Fragments")
State<-rep(c("CA","OR","WA"), each=6)
Counts$State<-c(State,"CA","OR")
County<-rep((1:9), each=2)
Counts$County<-c(County, 1,4)
Counts$Distance<-c(10, 15, 13, 19, 18, 23, 38, 40, 49, 44, 47, 45, 52, 53, 55, 59, 51, 53, 14, 33)
Year<-rep(c("2010","2011","2012"), times=7)
Counts$Year<-Year[1:20]
我使用以下代码对数据进行分区:
M.2<-ctree(Glass + HardPlastic + SoftPlastic + PlasticBag + Fragments ~
as.factor (State) + as.factor (County) + Distance + as.factor (Year), data=Counts)
plot(M.2, terminal_panel = node_barplot, cex = 0.5)
这得到了一个可爱的图表,但我如何提取每个终端节点的成员资格?如果只有几个项目,我可以在图表中看到它,但是一旦可能的类别数量增加到 50,就很难以图形方式查看它。我想查看节点中包含的信息;特别是每个终端节点中包含的每个单独类别的相对概率。
我知道如果这是一个二叉树 class,我可以使用节点参数,但是当我查询 class(M.2) 它告诉我它来自 constaparty class,我一直没能找到如何从这个 class 中获取节点信息。
我还 运行 遇到了一个次要问题,那就是当我 运行 我的示例数据集上的 ctree 时,它每次都会使 R 崩溃!它适用于我的实际数据集,但我无法弄清楚样本集有什么问题。
编辑:所需的输出类似于:
节点 15:
硬塑料30
玻璃 5
软胶23
塑料袋 6
碎片 12
我刚刚给包维护者 (Torsten Hothorn) 和 ctree()
的主要作者发了电子邮件,这样的请求最好直接发给他们。 (他目前不参与 SO。)显然,这是 ctree()
的 partykit
版本中的一个错误,他正在努力解决这个问题。目前最好为此使用旧的 party
版本 - 希望修复的 partykit
版本很快可用。
我正在使用 partykit:ctree 来探索我的数据集,这是一组大约 15,000 个海滩调查,调查从 50 个不同类别中发现的碎片数量。数据中有很多零,总碎片量的分布很大。我还有一系列自变量,包括一些因素,一些计数数据,一些连续数据。
这是一个非常小的样本数据集:
Counts<- as.data.frame(matrix (rpois(100,1), ncol=5))
colnames(Counts)<-c("Glass", "HardPlastic", "SoftPlastic", "PlasticBag", "Fragments")
State<-rep(c("CA","OR","WA"), each=6)
Counts$State<-c(State,"CA","OR")
County<-rep((1:9), each=2)
Counts$County<-c(County, 1,4)
Counts$Distance<-c(10, 15, 13, 19, 18, 23, 38, 40, 49, 44, 47, 45, 52, 53, 55, 59, 51, 53, 14, 33)
Year<-rep(c("2010","2011","2012"), times=7)
Counts$Year<-Year[1:20]
我使用以下代码对数据进行分区:
M.2<-ctree(Glass + HardPlastic + SoftPlastic + PlasticBag + Fragments ~
as.factor (State) + as.factor (County) + Distance + as.factor (Year), data=Counts)
plot(M.2, terminal_panel = node_barplot, cex = 0.5)
这得到了一个可爱的图表,但我如何提取每个终端节点的成员资格?如果只有几个项目,我可以在图表中看到它,但是一旦可能的类别数量增加到 50,就很难以图形方式查看它。我想查看节点中包含的信息;特别是每个终端节点中包含的每个单独类别的相对概率。
我知道如果这是一个二叉树 class,我可以使用节点参数,但是当我查询 class(M.2) 它告诉我它来自 constaparty class,我一直没能找到如何从这个 class 中获取节点信息。
我还 运行 遇到了一个次要问题,那就是当我 运行 我的示例数据集上的 ctree 时,它每次都会使 R 崩溃!它适用于我的实际数据集,但我无法弄清楚样本集有什么问题。
编辑:所需的输出类似于:
节点 15:
硬塑料30
玻璃 5
软胶23
塑料袋 6
碎片 12
我刚刚给包维护者 (Torsten Hothorn) 和 ctree()
的主要作者发了电子邮件,这样的请求最好直接发给他们。 (他目前不参与 SO。)显然,这是 ctree()
的 partykit
版本中的一个错误,他正在努力解决这个问题。目前最好为此使用旧的 party
版本 - 希望修复的 partykit
版本很快可用。