Извлечение информации о терминальных узлах в partykit:ctree с большим количеством многовариантных ответов

Я использую partykit:ctree, чтобы исследовать мой набор данных, который представляет собой набор из примерно 15000 обследований пляжей, в которых исследуется количество обломков, обнаруженных в 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, становится намного сложнее смотреть на это графически. Я хотел бы видеть информацию, содержащуюся в узлах; в частности, относительные вероятности каждой отдельной категории содержатся в каждом терминальном узле.

Я знаю, что если бы это был класс BinaryTree, я мог бы использовать аргумент узлов, но когда я запрашиваю класс (M.2), он говорит мне, что он из класса constaparty, и я не смог найти, как получить информация об узле из этого класса.

Я также столкнулся с вторичной проблемой, которая заключается в том, что, когда я запускаю ctree на моем образце набора данных, каждый раз происходит сбой R! Он отлично работает с моим фактическим набором данных, но я не могу понять, что не так с набором выборок.

РЕДАКТИРОВАТЬ: желаемый результат будет что-то вроде:

Node15:
Жесткий пластик 30
Стекло 5
Мягкий пластик 23
Полиэтиленовый пакет 6
Фрагменты 12

1 ответ

Решение

Я только что написал по электронной почте с сопровождающим пакета (Torsten Hothorn) и основным автором ctree() на что такие запросы действительно лучше всего будут направлены. (В настоящее время он не участвует в SO.) По-видимому, это ошибка в partykit версия ctree() и он работает над разрешением этого. Пока лучше всего использовать старый party версия для этого - и, надеюсь, исправлена partykit версия станет доступна в ближайшее время.

Другие вопросы по тегам