ggm.simulate.pcor {GeneNet}R Documentation

Graphical Gaussian Models: Simulation of Networks

Description

ggm.simulate.pcor generates a random matrix of partial correlations that corresponds to a GGM network of a given size (num.nodes) with a specified fraction of non-zero edges. The diagonal entries of the output matrix contain 1.

If stdprec=TRUE then the standardised precision matrix is returned instead of the patrix of partial correlations.

Usage

ggm.simulate.pcor(num.nodes, etaA=0.05, stdprec=FALSE)

Arguments

num.nodes

number of nodes in the network

etaA

fraction of edges with non-zero partial correlation (default: 0.05)

stdprec

return standardised precision matrix, rather than matrix of partial correlations

Details

The simulation of the partial correlation matrix works by generating a diagonally dominant matrix as a positive definite precision matrix (inverse covariance matrix), which is subsequently standardized and transformed into the matrix of partial correlations. For the full algorithm see Sch\"afer and Strimmer (2005).

Value

A positive partial correlation matrix (diagonal 1) with positive definite underlying precision matrix.

If stdprec=TRUE then the standardised precision matrix is returned instead.

Author(s)

Juliane Sch\"afer and Korbinian Strimmer (https://strimmerlab.github.io).

References

Sch\"afer, J., and Strimmer, K. (2005). An empirical Bayes approach to inferring large-scale gene association networks. Bioinformatics 21:754-764.

See Also

ggm.simulate.data,ggm.estimate.pcor.

Examples

## Not run: 

# load GeneNet library
library("GeneNet")

# generate random network with 40 nodes 
# it contains 780=40*39/2 edges of which 5 percent (=39) are non-zero
true.pcor <- ggm.simulate.pcor(40)
  
# simulate data set with 40 observations
m.sim <- ggm.simulate.data(40, true.pcor)

# simple estimate of partial correlations
estimated.pcor <- cor2pcor( cor(m.sim) )

# comparison of estimated and true values
sum((true.pcor-estimated.pcor)^2)

# a slightly better estimate ...
estimated.pcor.2 <- ggm.estimate.pcor(m.sim)
sum((true.pcor-estimated.pcor.2)^2)


## End(Not run)

[Package GeneNet version 1.2.16 Index]