cforest,varimp错误:使用非单位权重可能会产生误导性的结果

时间:2019-02-03 07:30:06

标签: r statistics random-forest weighted

我是一名使用R的统计学家学生。我尝试使用cforest包中的party函数来运行随机森林模型。我之所以选择该变量,是因为我的数据具有许多不同类型的变量(连续的,具有不同度量范围的类别)。微妙之处在于我拥有加权数据,这意味着每个观察值都经过加权。我的数据中存在一个名为weight的十进制向量。

首先,要运行随机森林模型,请使用cforest函数中提供的weights选项。但是问题是当我尝试使用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)中:     非统一权重的“变异”可能会产生误导性的结果

1 个答案:

答案 0 :(得分:0)

这里是再现错误的最少代码。在此示例中,我有相同的错误:

accounts

在这里,varimp给了0螺母,这不是问题。谢谢您的帮助