graph.model.selection: Graph model selection

Description Usage Arguments Value References Examples

View source: R/statGraph.R

Description

'graph.model.selection' selects the graph model that best approximates the observed graph according to the Graph Information Criterion (GIC).

Usage

1
2
graph.model.selection(A, models = NULL, parameters = NULL, eps = 0.01,
  bandwidth = "Silverman", eigenvalues = NULL)

Arguments

A

the adjacency matrix of the graph. For an unweighted graph it contains only 0s and 1s. For a weighted graph, it may contain nonnegative real values that correspond to the weights of the edges.

models

either a vector of strings, a list of functions or a list of arrays describing graph models:

A vector of strings cotaining some of the following models: "ER" (Erdos-Renyi random graph), "GRG" (geometric random graph), "KR" (k regular random graph), "WS" (Watts-Strogatz model), and "BA" (Barab<c3><a1>si-Albert model).

A list of functions. Each function returns a graph (represented by its adjacency matrix) generated by a graph model and has two arguments: the graph size and the model parameter, in this order.

A list of arrays. Each elememt of the list is a three-dimensional array containing the spectrum of the corresponding model. Let M be a graph model. For each parameter p considered for M, the array of model M contains the eigenvalues of N graphs that were generated by M with parameter p. The position (i,j,k) of the array contains the j-th eigenvalue of the k-th graph that were generated by M with the i-th parameter. The attribute 'rownames' of the array corresponds to the values of the parameter converted to string. To obtain the spectral density for each parameter p, the method will estimate the density of the eigenvalues of each graph that were generated by M with parameter p, and then will take the average density.

If the argument "models" is NULL, then the "ER", "WS", and "BA" models will be considered for the model selection.

parameters

list of numeric vectors. Each vector contains the values that will be considerated for the parameter estimation of the corresponding model. If the user does not provide the argument 'parameters', then default values are used for the predefined models ("ER", "GRG", "KR", "WS", and "BA"). The default vector corresponds to a sequence from

0 to 1 with step 'eps' for the "ER" model (Erdos-Renyi random graph), in which the parameter corresponds to the probability to connect a pair of vertices;

0 to sqrt(2) with step 'eps' for the "GRG" model (geometric random graph), in which the parameter corresponds to the radius used to contruct the geometric graph in a unit square;

0 to 'n' with step 'n*eps' for the "KR" model (k regular random graph), in which the parameter of the model corresponds to the degree 'k' of a regular graph;

0 to 1 with step 'eps' for the "WS" model (Watts-Strogatz model), in which the parameter corresponds to the probability to reconnect a vertex;

and 0 to 3 with step 'eps' for the "BA" model (Barab<c3><a1>si-Albert model), in which the parameter corresponds to the scaling exponent.

eps

precision of the grid (default is 0.01).

bandwidth

string indicating which criterion will be used to choose the bandwidth for the spectral density estimation. The available criteria are "Silverman" (default) and "Sturges".

eigenvalues

optional parameter. It contains the eigenvalues of matrix A. Then, it can be used when the eigenvalues of A were previously computed. If no value is passed, then the eigenvalues of A will be computed by 'graph.model.selection'.

Value

A list containing:

model

the indice(s) or name(s) of the selected model(s), i. e. the model(s) that minimize(s) the Graph Information Criterion (GIC).

estimates

a matrix in which each row corresponds to a model, the column "p" corresponds to the parameter estimate, and the column "GIC" corresponds to the Graph Information Criterion (GIC), i. e. the Kullback-Leibler divergence between the observed graph and the model.

References

Takahashi, D. Y., Sato, J. R., Ferreira, C. E. and Fujita A. (2012) Discriminating Different Classes of Biological Networks by Analyzing the Graph Spectra Distribution. _PLoS ONE_, *7*, e49949. doi:10.1371/journal.pone.0049949.

Silverman, B. W. (1986) _Density Estimation_. London: Chapman and Hall.

Sturges, H. A. The Choice of a Class Interval. _J. Am. Statist. Assoc._, *21*, 65-66.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
require(igraph)
A <- as.matrix(get.adjacency(erdos.renyi.game(30, p=0.5)))
# Using strings to indicate the graph models
result1 <- graph.model.selection(A, models=c("ER", "WS"), eps=0.5)
result1
# Using functions to describe the graph models
# Erdos-Renyi graph
model1 <- function(n, p) {
   return(as.matrix(get.adjacency(erdos.renyi.game(n, p))))
}
# Watts-Strougatz graph
model2 <- function(n, pr, K=8) {
    return(as.matrix(get.adjacency(watts.strogatz.game(1, n, K, pr))))
}
parameters <- list(seq(0, 1, 0.5), seq(0, 1, 0.5))
result2 <- graph.model.selection(A, list(model1, model2), parameters)
result2

statGraph documentation built on May 29, 2017, 9:08 a.m.