2013-08-06 39 views
1

我有一個數據集,包含6個預測變量(所有這些變量都是分類的),一個響應變量和一個權值列,和〜3500個觀測值。 該預測變量有水平變化爲2〜7R方有條件varimp錯誤

我已經定義指示變量對於每個預測變量的水平,例如

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) 

如果每個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級主要的變量,所以我相當肯定它與指針變量不匹配的其他東西的數量,且有條件的號碼有問題= FALSE指標變量也有效。任何幫助將非常感激。

+0

你有沒有解決這個問題? – Andrew

回答

0

我有同樣的錯誤,經過對我的數據進行一些試驗後,我發現只有包含邏輯預測變量纔會發生。將邏輯變量轉換爲數字解決了我的問題。你不會說你的預測因素是邏輯變量,但也許這是一個看起來的方向。