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, refI, decreasing=TRUE, pairup.i=NULL,
                      pairup.j=NULL, recallSteps=c(seq(0,0.1,0.005),seq(0.2,1.0,0.1)))

### Arguments

`measurementsMatrix` | matrix containing the measure of association between all pairs of variables.
`refI` | incidence matrix of reference from which to calculate the precision-recall curve.
`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

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

    I <- qpRndGraph(n.vtx=nVar, n.bd=maxCon)
    K <- qpI2K(I)

    X <- qpSampleMvnorm(K, nObs)

    nrr.estimates <- qpNrr(X, q=5, verbose=FALSE) # NRR !

    pcc.estimates <- qpPCC(X) # PCC !

    # calculate area under the precision-recall curve

    nrr.prerec <- qpPrecisionRecall(nrr.estimates, refI=K!=0, 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), refI=K!=0,
                                    recallSteps=seq(0, 1, 0.1))
    f <- approxfun(pcc.prerec[, c("Recall", "Precision")])
    integrate(f, 0, 1)$value

[Package qpgraph version 1.0.0 Index]