Learn R Programming

qpgraph (version 2.6.1)

qpPrecisionRecall: Calculation of precision-recall curves

Description

Calculates the precision-recall curve (see Fawcett, 2006) for a given measure of association between all pairs of variables in a matrix.

Usage

qpPrecisionRecall(measurementsMatrix, refGraph, decreasing=TRUE, pairup.i=NULL, pairup.j=NULL, recallSteps=seq(0, 1, by=0.1))

Arguments

measurementsMatrix
matrix containing the measure of association between all pairs of variables.
refGraph
a reference graph from which to calculate the precision-recall curve provided either as an adjacency matrix, a two-column matrix of edges, a graphNEL-class object or a graphAM-class object.
decreasing
logical; if TRUE then the measurements are ordered in decreasing order; if FALSE then in increasing order.
pairup.i
subset of vertices to pair up with subset pairup.j.
pairup.j
subset of vertices to pair up with subset pairup.i.
recallSteps
steps of the recall on which to calculate precision.

Value

A matrix where rows correspond to recall steps and columns correspond, respetively, to the actual recall, the precision, the number of true positives at that recall rate and the threshold score that yields that recall rate.

Details

The measurementsMatrix should be symmetric and may have also contain NA values which will not be taken into account. That is an alternative way to restricting the variable pairs with the parameters pairup.i and pairup.j.

References

Fawcett, T. An introduction to ROC analysis. Pattern Recogn. Lett., 27:861-874, 2006.

See Also

qpPRscoreThreshold qpGraph qpAvgNrr qpPCC

Examples

Run this code
require(mvtnorm)

nVar <- 50  ## number of variables
maxCon <- 5 ## maximum connectivity per variable
nObs <- 30  ## number of observations to simulate

set.seed(123)

A <- qpRndGraph(p=nVar, d=maxCon)
Sigma <- qpG2Sigma(A, rho=0.5)
X <- rmvnorm(nObs, sigma=as.matrix(Sigma))

## estimate non-rejection rates
nrr.estimates <- qpNrr(X, q=5, verbose=FALSE)

## estimate Pearson correlation coefficients
pcc.estimates <- qpPCC(X)

## calculate area under the precision-recall curve
## for both sets of estimated values of association
nrr.prerec <- qpPrecisionRecall(nrr.estimates, refGraph=A, decreasing=FALSE,
                                recallSteps=seq(0, 1, 0.1))
f <- approxfun(nrr.prerec[, c("Recall", "Precision")])
integrate(f, 0, 1)$value

pcc.prerec <- qpPrecisionRecall(abs(pcc.estimates$R), refGraph=A,
                                recallSteps=seq(0, 1, 0.1))
f <- approxfun(pcc.prerec[, c("Recall", "Precision")])
integrate(f, 0, 1)$value

Run the code above in your browser using DataLab