qpAnyGraph {qpgraph} | R Documentation

## A graph

### Description

Obtains an undirected graph from a matrix of pairwise measurements

### Usage

    qpAnyGraph(measurementsMatrix, threshold=NULL, remove=c("below", "above"),
               topPairs=NULL, decreasing=TRUE, pairup.i=NULL, pairup.j=NULL,
               return.type=c("incidence.matrix", "edge.list", "graphNEL", "graphAM"))

### Arguments

`measurementsMatrix` | matrix of pairwise measurements.
`threshold` | threshold on the measurements below or above which pairs of variables are assumed to be disconnected in the resulting graph.
`remove` | direction of the removal with the threshold. It should be either `"below"` (default) or `"above"`.
`topPairs` | number of edges from the top of the ranking, defined by the pairwise measurements in `measurementsMatrix`, to use to form the resulting graph. This parameter is incompatible with a value different from `NULL` in `threshold`.
`decreasing` | logical, only applies when topPairs is set; if `TRUE` then the ranking is made in decreasing order; if `FALSE` then is made 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`
`return.type` | type of data structure on which the resulting undirected graph should be returned. Either a logical incidence matrix with cells set to TRUE when the two indexing variables are connected in the graph (default), or a list of edges in a matrix where each row corresponds to one edge and the two columns contain the two vertices defining each edge, or a `graphNEL-class` object, or a `graphAM-class` object.

### Details

This function requires the `graph` package when `return.type=graphNEL` or `return.type=graphAM`.

### Value

The resulting undirected graph as either an incidence matrix, a `graphNEL` object or a `graphAM` object, depending on the value of the `return.type` parameter. Note that when some gold-standard graph is available for comparison, a value for the parameter `threshold` can be found by calculating a precision-recall curve with `qpPrecisionRecall` with respect to this gold-standard, and then using `qpPRscoreThreshold`. Parameters `threshold` and `topPairs` are mutually exclusive, that is, when we specify with `topPairs=n` that we want a graph with `n` edges then `threshold` cannot be used.

### Author(s)

R. Castelo and A. Roverato

### References

Castelo, R. and Roverato, A. A robust procedure for Gaussian graphical model search from microarray data with p larger than n, J. Mach. Learn. Res., 7:2621-2650, 2006.

### See Also

`qpNrr` `qpAvgNrr` `qpEdgeNrr` `qpGraph` `qpGraphDensity` `qpClique` `qpPrecisionRecall` `qpPRscoreThreshold`

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

    pcc.estimates <- qpPCC(X)

    # the higher the threshold
    g <- qpAnyGraph(abs(pcc.estimates$R), threshold=0.9,
                    remove="below")

    # the sparser the qp-graph
    (sum(g)/2) / (nVar*(nVar-1)/2)

    # the lower the threshold
    g <- qpAnyGraph(abs(pcc.estimates$R), threshold=0.5,
                    remove="below")

    # the denser the graph
    (sum(g)/2) / (nVar*(nVar-1)/2)

[Package qpgraph version 1.0.0 Index]