суррогатное расщепление с рекурсивным разделением на основе модели (участник R)

#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 нет.