1

6 つの予測変数 (すべてカテゴリ変数)、応答変数、重みの列、および約 3500 の観測値を含むデータ セットがあります。予測変数の水準は 2 から 7 までさまざまです。

たとえば、各予測変数のレベルの指標変数を定義しました。

retail <- Trade == "RETAIL"

は「主な」変数の 1 つであり、小売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)

、 などのそれぞれはcomptpft主な変数が取ることができるカテゴリです。

これはエラーを返します:

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 を使用することも機能します。どんな助けでも大歓迎です。

4

1 に答える 1

0

同じエラーが発生し、データをいくつか実験した後、論理予測変数が含まれている場合にのみ発生することがわかりました。論理変数を数値に変換すると、問題が解決しました。予測子が論理変数であるとは言いませんが、おそらくそれは方向性です。

于 2014-04-30T00:36:33.743 に答える