optim.thresh: Estimation of Optimal Threshold Values
Description
optim.thresh estimates optimal threshold values given eight methods.
Note: this method will exclude any missing data.
Usage
optim.thresh(obs,pred,threshold)
Arguments
obs
a vector of observed values which must be 0 for absences and 1 for occurrences
pred
a vector of the same length as obs representing the predicted values. Values must be between 0 & 1 representing a likelihood.
threshold
a single integer value representing the number of equal interval threshold values between 0 & 1
Value
Returns a list of the optimal thresholds for the different methods. If the list item is a single value, that is the optimal threshold but if two values are reported for the method, this represents the range in thresholds that are equal for that threshold selection method.
The returned list includes the single or range in thresholds selected using the following methods:
min.occurence.predictionis the minimum prediction for the occurrence (presence) records
mean.occurence.predictionis the mean prediction for the occurrence (presence) records
'10.percent.omission'is the threshold value or range in values that excludes approx. 10 percent of the occurrence records
'sensitivity=specificity'is the threshold value or range in values where sensitivity is equal to sensitivity
'max.sensitivity+specificity'is the threshold value or range in values that maximizes sensitivity plus specificity
maxKappais the threshold value or range in values with the maximum Kappa statistic
max.prop.correctis the threshold value or range in values with the maximum proportion of presence and absence records correctly identified
min.ROC.plot.distanceis the threshold value or range in values where the ROC curve is closest to point (0,1) (or perfect fit)
#create some dataobs = c(sample(c(0,1),20,replace=TRUE),NA); obs = obs[order(obs)]
pred = runif(length(obs),0,1); pred = pred[order(pred)]
#calculate the optimal thresholdsoptim.thresh(obs,pred)