Я студент-статистик, использующий R. Я попытался запустить модель случайного леса, используя функцию cforest
из пакета party
.Я выбрал этот, потому что в моих данных много разных типов переменных (непрерывных, категориальных с разными шкалами измерения).Тонкость в том, что у меня есть взвешенные данные, что означает, что каждое наблюдение взвешено.В моих данных присутствует десятичный вектор с именем weight
.
Во-первых, для запуска модели случайного леса я использую опцию весов, присутствующую в функции cforest
.Но проблема в том, когда я пытаюсь вычислить значение переменной с помощью varimp
.Даже если у меня есть результаты, появляется сообщение об ошибке: «веса, не равные единице, могут привести к ошибочным результатам».
PS: моя переменная результата непрерывна
Можете ли вы помочь мне исправить эту ошибкупожалуйста!!!Вот минимальный код для воспроизведения этой ошибки:
weight <- c(rep(0.3, 5), rep(1.2, 10), rep(2.5, 10), rep(0.9, 5)) # 30 observations
a <- rbinom(30, 1, 0.5)
b <- rbinom(30, 1, 0.7)
c <- rbinom(30, 1, 0.6)
d <- rbinom(30, 1, 0.5)
e <- rnorm(30, mean =3)
level <- c(rep("low", 10), rep("medium", 5), rep("high", 15))
outcome <- rnorm(30, mean =10, sd =2)
data <- data.frame(weight, a, b, c, d, e, level = as.factor(level), outcome)
library(party)
res <- cforest(outcome ~. , data = data[,-1], weights = data$weight)
varimp(res)
Предупреждающее сообщение: В varimp (res): 'varimp' с весами, не равными единице, может дать неверные результаты