qpAnyGraph | R Documentation |
Obtains an undirected graph from a matrix of pairwise measurements
qpAnyGraph(measurementsMatrix, threshold=NA_real_, remove=c("below", "above"),
topPairs=NA_integer_, decreasing=TRUE, pairup.i=NULL, pairup.j=NULL)
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 |
topPairs |
number of edges from the top of the ranking, defined by the
pairwise measurements in |
decreasing |
logical, only applies when topPairs is set; if |
pairup.i |
subset of vertices to pair up with subset |
pairup.j |
subset of vertices to pair up with subset |
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.
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.
R. Castelo and A. Roverato
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.
qpNrr
qpAvgNrr
qpEdgeNrr
qpGraph
qpGraphDensity
qpClique
qpPrecisionRecall
qpPRscoreThreshold
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.