我是一名使用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)中: 非统一权重的“变异”可能会产生误导性的结果
答案 0 :(得分:0)
这里是再现错误的最少代码。在此示例中,我有相同的错误:
accounts
在这里,varimp给了0螺母,这不是问题。谢谢您的帮助