cmx {PresenceAbsence} | R Documentation |
Confusion Matrix
Description
cmx
calculates the confusion matrix for a single model.
Usage
cmx(DATA, threshold = 0.5, which.model = 1, na.rm = FALSE)
Arguments
DATA |
a matrix or dataframe of observed and predicted values where each row represents one plot and where columns are:
| ||||||||||||||||||||||||
threshold |
a cutoff value between zero and one used for translating predicted probabilities into 0 /1 values, defaults to 0.5. It must be a single value between zero and one. | ||||||||||||||||||||||||
which.model |
a number indicating which model from DATA should be used | ||||||||||||||||||||||||
na.rm |
a logical indicating whether missing values should be removed |
Details
cmx
calculates the confusion matrix for a single model at a single threshold.
If DATA
contains more predictions from more than one model WHICH.DATA
can be used to specify which model should be used. If WHICH.DATA
is not given, cmx
will use predictions from the first model by default.
When calculating the confusion matrix, any plot with a predicted probability greater than threshold
is considered to be predicted Present
, while any plot with a predicted probability less than or equal to threshold
is considered to be predicted Absent
. The only exception is when threshold
equals zero. In that case, all plots are considered to be predicted Present
.
Unlike other functions in this library, threshold
can not be a vector or an integer greater than one. Instead, threshold
must be given as a single number between zero and one.
If na.rm
equals FALSE
and NA
's are present in the DATA
function will return NA
.
If na.rm
equals TRUE
and NA
's are present in the DATA
, function will remove all rows where any of the values in the row consist of NA
. Function will also print the number of rows that have been removed.
Value
the confusion matrix is returned in the form of a table where:
columns |
observed values |
rows |
predicted values |
Author(s)
Elizabeth Freeman eafreeman@fs.fed.us
See Also
pcc
, sensitivity
, specificity
, Kappa
Examples
### EXAMPLE 1 ###
### generate simulated data ###
set.seed(666)
N=1000
SIMDATA<-matrix(0,N,3)
SIMDATA<-as.data.frame(SIMDATA)
names(SIMDATA)<-c("plotID","Observed","Predicted")
SIMDATA$plotID<-1:N
SIMDATA$Observed<-rbinom(n=N,size=1,prob=.2)
SIMDATA$Predicted[SIMDATA$Observed==1]<-rnorm(n=length(SIMDATA$Observed[SIMDATA$Observed==1]),
mean=.8,sd=.15)
SIMDATA$Predicted[SIMDATA$Observed==0]<-rnorm(n=length(SIMDATA$Observed[SIMDATA$Observed==0]),
mean=.2,sd=.15)
SIMDATA$Predicted<-(SIMDATA$Predicted-min(SIMDATA$Predicted))/
(max(SIMDATA$Predicted)-min(SIMDATA$Predicted))
### plot simulated data
hist(SIMDATA$Predicted,100)
### calculate confusion matrix ###
cmx(SIMDATA)
### EXAMPLE 2 ###
data(SIM3DATA)
cmx(SIM3DATA)
cmx(SIM3DATA,which.model=2)
cmx(SIM3DATA,which.model=3,threshold=.2)