Graphical Network from a numeric matrix | R Documentation |
Obtain a Graphical Network representation from a matrix where nodes are subjects in the rows and columns, and edges are obtained from the matrix entries
net(object, K = NULL,
nsup = NULL, p.radius = 1.7,
delta = .Machine$double.eps)
object |
Either a numeric matrix |
K |
(numeric matrix) Kinship relationship matrix among nodes |
nsup |
(numeric) For a SGP, average number of training individuals contributing to the prediction (with non-zero regression coefficient) of testing individuals. Default |
p.radius |
(numeric) For a multi-trait SGP, a factor (x-folds radius) to separate each trait from the origin |
delta |
(numeric) Minumum value to determine nodes to be connected. Default is the machine precision (numerical zero) |
For a numeric matrix X={xij} with m
rows and n
columns, a graphical network with m
+ n
nodes is obtained by defining edges connecting subjects in rows with those in columns. An edge between subject in row i
and subject in column j
is
determined if the corresponding (absolute) entry matrix is larger than certain value, i.e., |xij|>δ.
For a symmetric matrix, only m
=n
nodes are considered with edges determined by the above diagonal entries of the matrix.
Nodes and edges are plotted in the cartesian plane according to the Fruchterman-Reingold algorithm. When a matrix K is provided, nodes are plotted according to the top 2 eigenvectors from the spectral value decomposition of K = U D U'.
When the object is a 'SGP' class object the edges are taken from the regression coefficients (associated to a specific nsup
value) are used as matrix X with testing subjects in rows and training subjects in columns.
Returns a plottable object of the class 'net' that can be visualized using 'plot' method
require(SFSI)
data(wheatHTP)
#--------------------------------------
# Net for an SGP object
#--------------------------------------
index = which(Y$trial %in% 1:6) # Use only a subset of data
Y = Y[index,]
M = scale(M[index,])/sqrt(ncol(M)) # Subset and scale markers
G = tcrossprod(M) # Genomic relationship matrix
y = as.vector(scale(Y[,"E1"])) # Scale response variable
# Training and testing sets
tst = which(Y$trial %in% 2)
trn = seq_along(y)[-tst]
fm = SGP(y, K=G, trn=trn, tst=tst)
nt = net(fm) # Get the net
plot(nt) # Plot the net
plot(nt, i=c(1,5)) # Show the first and fifth tst elements
plot(net(fm, nsup=10), show.names=c(TRUE,TRUE,FALSE))
#--------------------------------------
# Net for a numeric matrix
#--------------------------------------
B = as.matrix(coef(fm, nsup=10))
plot(net(B), curve=TRUE, set.size=c(3.5,1.5,1))
#--------------------------------------
# Net for a symmetric numeric matrix
#--------------------------------------
X = X_E1[,seq(1,ncol(X_E1),by=5)]
R2 = cor(X)^2 # An R2 matrix
plot(net(R2, delta=0.9))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.