2015-10-23 3 views
0

Это продолжение после previous question Я попросил некоторое время назад, на что недавно был дан ответ.Использование модели «gbm», созданной в R-пакете «dismo» с функциями в пакете R «gbm»

Я построил несколько моделей gbm с dismo::gbm.step, которая опирается на gbm подгоночных функций, найденных в R пакете gbm, а также кросс-инструменты проверки из R пакета splines.

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

Реализация в dismo объясняется в Elith et. al (2008) и возвращает статистику, которая указывает отклонения модельных предсказаний от линейной комбинации предикторов, одновременно удерживая все остальные предиктора по их средствам.

Реализация в gbm использует статистику Friedman`s H (Friedman & Popescue, 2005) и возвращает другую метрику, а также НЕ устанавливает другие переменные по их усмотрению.

Взаимодействие, смоделированное и нанесенное с использованием dismo::gbm.interactions, отличное и очень информативное. Тем не менее, я также хотел бы использовать gbm::interact.gbm, отчасти за силу публикации, а также сравнить результаты двух методов.

Если я пытаюсь запустить gbm::interact.gbm в gbm.object, созданный с dismo, возвращается ошибка ...

"Error in is.factor(data[, x$var.names[j]]) : 
    argument "data" is missing, with no default" 

Я понимаю dismo::gmb.step добавляет дополнительные данные авторы считали бы полезным для gbm model.

Я также понимаю, что ответ на мой вопрос лежит где-то в исходном коде.

Мои вопросы ...

  1. Можно ли изменить gbm объект, созданный в dismo, который будет использоваться в gbm::gbm.interact? Если да, то это будет достигнуто ...

    a. Изменение объекта gbm, созданного в dismo::gbm.step?

    b. Изменение исходного кода для gbm::interact.gbm?

    c. Делать что-то еще?

Я буду проходить через исходный код, пытаясь решить это сам, если я придумаю решение, прежде чем кто-либо ответит, я отвечу на свой вопрос.

ответ

-1

Функция gbm::interact.gbm требует данных в качестве аргумента interact.gbm <- function(x, data, i.var = 1, n.trees = x$n.trees).

dismogbm.object, по существу, такой же, как gbmgbm.object, но с дополнительной информацией прилагается, так что я не думаю, меняя gbm.object бы помочь.

+0

Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы будете быть в состоянии [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). - [Из обзора] (/ review/low-quality-posts/11376657) – Prune

+0

Недостаточно репутации для комментариев. Я уверен, что он будет работать, если данные будут указаны при вызове функции. – at888

Смежные вопросы