如何在R中为随机森林模型运行ANOVA函数?

时间:2019-04-04 08:31:49

标签: r random-forest anova

我需要在随机森林模型上执行ANOVA。调用与我用于glmgam模型的代码相同的方法,无法调用我的rf模型。我应该使用什么代码使其正常工作?

我正在使用R中的sdm软件包来构建我的rf模型。 射频模型可以正常运行,但是,我无法在结果中使用ANOVA函数。

MRF <- sdm(presence~.,data=dM,methods='rf',replication='sub',test.percent=20)

anova(MRF)
  

UseMethod(“ anova”)中的错误:     没有适用于'sdmModels

类对象的'anova'方法

我也尝试过此选项:

m <-MRF@models$presence$rf$`1`@object

anova(m)
  

UseMethod(“ anova”)中的错误:     没有适用于“ anova”的适用方法应用于类“ c('randomForest.formula','randomForest')”的对象

1 个答案:

答案 0 :(得分:0)

您可以计算Variable Importance来查看哪些因素最重要,这与anova类型II对逻辑回归模型所做的类似:

library(caret)

trControl <- trainControl(classProbs = TRUE,
                          method = "cv",
                          number = 5,  # 5-fold cross validation
                          search ="grid",
                          savePredictions = TRUE,
                          summaryFunction = twoClassSummary)

tuneGrid <- expand.grid(.mtry = 18) # Configurable

rf_model <- train(presence~.,            
                          data = dM,
                          method = "rf",
                          tuneGrid = tuneGrid_competitive_jam,
                          trControl = trControl,
                          importance = TRUE,
                          maxnodes = 5,
                          nodesize = 14,
                          ntree = 100)

varImp(rf_model)