Learn R Programming

qpgraph (version 2.6.1)

qpAnyGraph: A graph

Description

Obtains an undirected graph from a matrix of pairwise measurements

Usage

qpAnyGraph(measurementsMatrix, threshold=NA_real_, remove=c("below", "above"), topPairs=NA_integer_, decreasing=TRUE, pairup.i=NULL, pairup.j=NULL)

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

Value

The resulting undirected graph as a graphBAM object. 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.

Details

This is a general purpose function for thresholding a matrix of pairwise measurements to select pairs of variables corresponding to selected edges in an undirected graph.

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

Run this code
require(mvtnorm)
require(graph)

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 Pearson correlations
pcc.estimates <- qpPCC(X)

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

## the sparser the qp-graph
numEdges(g) / choose(numNodes(g), 2)

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

# the denser the graph
numEdges(g) / choose(numNodes(g), 2)

Run the code above in your browser using DataLab