randomForest в R: есть ли возможность вычисления доверительных интервалов по каждому случаю?

Пакет R randomForest сообщает среднеквадратические ошибки для каждого дерева в лесу. Однако мне нужна степень уверенности для каждого случая данных. Поскольку randomForest вычисляет случайные прогнозы путем усреднения прогнозов отдельных деревьев, я предполагаю, что также должна быть возможность вычислить стандартную ошибку по каждому случаю и, следовательно, доверительный интервал. Можно ли это сделать с помощью выходного объекта randomForest (если да: как?) Или мне нужно копаться в исходном коде?


person user7417    schedule 05.02.2013    source источник


Ответы (1)


Не нужно копаться в исходном коде. Вам нужно только прочитать документацию. ?predict.randomForest заявляет, что один из его аргументов называется predict.all:

pred.all Следует ли сохранять прогнозы для всех деревьев?

Таким образом, установка значения TRUE сохранит прогноз для каждого случая, для каждого дерева, который затем можно использовать для вычисления стандартной ошибки для каждого случая.

Недавно мне стало известно об этой статье Стефана Вейджера, Тревора Хасти и Брэда Эфрона, в которой исследуется больше строго придерживаться идеи стандартных ошибок для прогнозов, генерируемых случайными лесами (и другими предикторами в мешках).

person joran    schedule 05.02.2013
comment
Извините за вопрос. Но на всякий случай, здесь тип RandomForest - это прогнозы, иначе о доверительном интервале говорить не приходится, не так ли? - person agstudy; 05.02.2013
comment
@agstudy Не уверен, что понимаю. Я с готовностью допущу, что статистическое значение интервалов прогноза может быть здесь весьма сомнительным, но на некотором уровне прогнозы являются просто средними, поэтому вычисление доверительного интервала для каждого из них наивным способом действительно просто сумма для расчета CI для среднего. Означает ли полученный интервал что-нибудь полезное - это, очевидно, отдельный вопрос ... - person joran; 05.02.2013
comment
Спасибо. Мой вопрос в том, что мы можем randomForest выполнять классификацию или регрессию (объект $ type = 'predictions'). Так имеет ли расчет CI в случае классификации какой-либо статистический смысл? - person agstudy; 05.02.2013
comment
@agstudy Понятно. Да, этот ответ (и на самом деле вопрос) имеет смысл только в том случае, если они строят дерево регрессии. Если они проводят классификацию, вся эта идея рушится. - person joran; 05.02.2013
comment
Спасибо. Я прошу доказательств, потому что я не статистик. В противном случае ответ @Eric Здесь это начало ответа? - person agstudy; 05.02.2013
comment
@joran - я думаю, что читал документацию десяток раз, но не понял, что это именно тот вариант, который я искал ... - person user7417; 06.02.2013
comment
@joran - Если правильно рассчитывать предсказания по каждому случаю (в контексте регрессии, конечно) как средние предсказания одного дерева, то IMHO также должно иметь смысл охарактеризовать вариацию предсказаний дерева вокруг этих средних значений. - person user7417; 06.02.2013
comment
@joran - Просматривая stackoverflow, мне стало ясно, что на самом деле я ищу интервалы прогноза, что-то, что выражает неопределенность, связанную с прогнозируемым y для одного случая (в то время как доверительный интервал выражает неопределенность относительно ожидаемое значение y). Прогноз-метод для randomForests не позволяет ничего в этом направлении: нет таких параметров, как interval="prediction" или interval="confidence", как для линейных моделей. Есть ли подсказка, как можно рассчитать интервалы прогноза для прогнозов randomForests? - person user7417; 06.02.2013