我有一个包含 6 个预测变量(所有这些都是分类变量)、一个响应变量和一个权重列以及约 3500 个观察值的数据集。预测变量的水平从 2 到 7 不等。
我已经为每个预测变量的水平定义了指标变量,例如
retail <- Trade == "RETAIL"
“主要”变量之一在哪里Trade
,而零售是它可以采用的值。
尝试使用以下方法计算条件变量重要性时遇到问题:
rf <- cforest(Actual ~ comp + tpft + abi1 + abi2 +
abi3 + abi4 + abi5 + abi6 + abio + builders +
clerical + manufacturing + othertrade + retail +
tradeunk + wholesale + firstrenewal + newbusiness +
renewedtwice + MTyes + MTno + ly9 + ly10 + ly11 + ly12 + ly13,
data=table, weights=Expected, controls=data.controls)
imp <- varimp(rf, conditional=TRUE)
其中 , 等中的每一个comp
都是tpft
主要变量可以采用的类别。
这将返回错误:
Error in names(blocks) <- cond :
'names' attribute [24] must be the same length as the vector [12]
我不知道如何解决它!traceback
给出:
> traceback()
2: conditional_perm(ccl, xnames, input, tree, oob)
1: varimp(rf, conditional = TRUE)
当我只想测试 6 个主要变量时,此方法有效,因此我相当确定这是指标变量的数量与其他变量的数量不匹配的问题,并且指标变量的 conditional=FALSE 也有效。任何帮助将不胜感激。