#r #tree #party
Вопрос:
Я оцениваю простую lmtree
модель, используя partykit
библиотеку на R. В этой оценке у меня есть зависимая переменная y, объясняющая переменная x и набор переменных разбиения z.
Некоторые из моих переменных разбиения имеют большое количество пропущенных значений, и я заметил, что окончательный расчетный размер выборки модели за вычетом всех пропущенных значений в этих нескольких категориях. Это означает, что, поскольку по крайней мере одна из переменных разбиения имеет отсутствующее значение в моем фрейме данных, вся строка удаляется из оценки, и я теряю информацию, предоставленную всеми остальными непустыми переменными разбиения.
Для решения этой проблемы в более традиционных оценках деревьев условного вывода используется суррогатное расщепление (например, с ctree_control
помощью функции из partykit
вы можете выбрать maxsurrogate
выполненное в ctree
оценке).
Возможно ли также выполнить суррогатное разбиение lmtree
(рекурсивное разбиение на основе модели)?
Комментарии:
1. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.
Ответ №1:
На данный момент partykit
реализация mob
(и, следовательно lmtree
, и glmtree
) пока не предусматривает суррогатных расщеплений.
Мы работаем над новой реимплементацией, где оба ctree
и mob
могут использоваться с суррогатными переменными, и оба могут использоваться в фоновом режиме для lmtree
и glmtree
т. Д.
На данный момент лучшим решением, когда вам требуется рекурсивное разбиение на основе модели с помощью суррогатных разбиений, является использование ctree
пользовательской ytrafo
функции на основе модели. При этом будет использоваться алгоритм CTree в фоновом режиме (а не МОБ), но они часто дают довольно схожие результаты. С прикладной точки зрения более важным отличием является то, что lmtree
предоставляет различные удобные функции , особенно для plot
и predict
, которых ctree
нет.