Learn R Programming

simone (version 0.1-3)

simone: Statistical Inference methods for MOdular NEtworks (SIMoNe)

Description

The SIMoNe algorithm iteratively combines edges estimation by using $\ell_1$-norm regularization method and node classification on the basis of a mixture model of Laplace distributions for edge weight. Intuitively, the node class information can be used to fine-tune the $\ell_1$ penalty parameter for each edge, thus "focalising" more accurately on the correct graph structure.

Usage

res <- simone (X, Q, ...)

Arguments

X
A $n \times p$ empirical data matrix (e.g. gene epxressions).
Q
Scalar : max number of classes to estimate.
...
Additional arguments are available, see Details.

Value

  • Returns a simone object containing the results of the estimation. simone objects are list-like and contain the following :
  • clVector: the final estimation of node classification.
  • K.hatMatrix: the final estimation of the precision matrix (that is, the network adjacency matrix).
  • K.hat.perfectcontains the estimation of InferEdges using a classified penalty matrix built from the theoretic classification. Requires the additional argument theo.cl.
  • deltaA vector of convergence criterium values.
  • iterationThe final number of iterations.

Details

By default, the algorithm alternates classes estimation and network estimation by himself, automatically constructing an penalty matrix that slighlty encourages an affiliation strucure. The user can adapt the procedure by tuning the following parameters: [object Object],[object Object],[object Object],[object Object],[object Object]

References

C. Ambroise, J. Chiquet, and C. Matias. Penalized maximum likelihood inference for sparse Gaussian graphical models with latent structure. SSB report (20). INRA. Octobre 2008. http://genome.jouy.inra.fr/ssb/preprint/.

See Also

InferEdges, InferClasses, Penalty, SimDataAffiliation, Gplot.

Examples

Run this code
library(simone)
## load the data set
data(cancer)

p <- length(gene.names)
cat("Breast cancer data set: real network with", p, "genes")

## SIMoNe parameters
Q <- 2
mult <- list(init=1,intra=1,inter=2,dust=4)
penalty.pcr <- Penalty(cancer.pcr, risk=0.1*p)[1,2]
penalty.not <- Penalty(cancer.notpcr, risk=0.1*p)[1,2]
rho.fracs <- c(1e-2,5e-2,7.5e-2,.25)
rhos.pcr  <- rho.fracs * penalty.pcr
rhos.not  <- rho.fracs * penalty.not

for (i in 1:length(rho.fracs)) {
  
  cat("Inferring network on the 'pCR' sample with rho =",rhos.pcr[i])
  res.pcr <- simone(cancer.pcr,Q,rho=rhos.pcr[i],multipliers=mult )
  cat("Inferring network on the 'not pCR' sample with rho =",rhos.not[i])
  res.not <- simone(cancer.notpcr,Q,rho=rhos.not[i],multipliers=mult)
  
  a <- readline(prompt="Press enter to continue...")
  
  layout(matrix(c(1,2),1,2),width=c(1,1))
  Gplot(res.pcr$K.hat, res.pcr$cl, cols=c(grey(0),grey(.8),grey(1)),
        display.labels=TRUE, labels=gene.names,main="pCR")
  Gplot(res.not$K.hat, res.not$cl, cols=c(grey(0),grey(.8),grey(1)),
        display.labels=TRUE,labels=gene.names,main="not pCR")
}

Run the code above in your browser using DataLab