rf.class.sensitivity: Random Forests class-level sensitivity analysis

View source: R/rf.class.sensitivity.R

rf.class.sensitivityR Documentation

Random Forests class-level sensitivity analysis

Description

Performs a sensitivity analysis on a specified class in a random forests model

Usage

rf.class.sensitivity(
  x,
  class = "1",
  p = 0.05,
  nperm = 999,
  plot = TRUE,
  seed = NULL
)

Arguments

x

randomForest or ranger class object

class

Which class to perturb

p

Proportion of class to be randomized

nperm

Number of permutations

plot

Plot results (TRUE/FALSE)

seed

Random seed value

Details

Wildlife survey data likely decreases the proportion of imperfect detection (false absences or presences) but can still be a source of error. Because of this it is often necessary to test the model sensitivity of a given class (eg., used verses available habitat). Model sensitivity of false absences is evaluated by randomly assigning a proportion of the specified positive class to the other, refitting the model and estimating the probabilities. Each perturbed estimate is compared against the "true" estimate. Currently only supports binomial models.

Value

List object with following components:

  • mean.error - [Mean of RMSE]

  • sd.error - [Standard deviation of RMSE]

  • rmse - [Root mean squared error (RMSE) for each perturbed probability]

  • probs - [data.frame with "true" estimate in first column and perturbed probabilities in subsequent columns.]

Author(s)

Jeffrey S. Evans <jeffrey_evans@tnc.org>

References

Evans J.S., M.A. Murphy, Z.A. Holden, S.A. Cushman (2011). Modeling species distribution and change using Random Forests CH.8 in Predictive Modeling in Landscape Ecology eds Drew, CA, Huettmann F, Wiersma Y. Springer

Gardner, R.H., R.V. O'Neill, M.G. Turner, and V.H. Dale (1989). Quantifying scale-dependent effects of animal movements with simple percolation models. Landscape Ecology 3:217-227.

Examples

library(randomForest)
library(ranger) 
data(iris)
  y <- as.factor(ifelse(iris$Species == "setosa" | 
                 iris$Species == "virginica", 1, 0) )
    xdata <- iris[,1:4] 

rf.mdl <- randomForest(xdata, y, ntree=501) 
  ua <- rf.class.sensitivity(rf.mdl, nperm=20) 
  
rf.mdl <- randomForest(xdata, y, probability=TRUE) 
  ua <- rf.class.sensitivity(rf.mdl, nperm=20) 
           

jeffreyevans/rfUtilities documentation built on Nov. 12, 2023, 6:52 p.m.