qpPrecisionRecall {qpgraph} | R Documentation

## 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.

### 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`.

### 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.

### Author(s)

R. Castelo and A. Roverato

### References

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

### See Also

`qpPRscoreThreshold` `qpGraph` `qpAvgNrr` `qpPCC`

### Examples

    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

[Package qpgraph version 2.16.0 Index]