我有一个包含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个主变量时,这个方法有效,所以我很确定指标变量的数量与其他东西的数量不匹配,并且条件= FALSE也带有指标变量作品。任何帮助都将非常感激。
答案 0 :(得分:0)
我有同样的错误,在对我的数据进行一些实验后,我发现只有包含逻辑预测变量才会发生。将逻辑变量转换为数字为我解决了问题。你不能说你的预测者是逻辑变量,但也许它是一个看起来的方向。