Description Usage Arguments Details Value Author(s) References See Also Examples
Get the fused principal component analysis path object.
1 2 3 4 5 6 7 | fpca(A, maxsteps = 200, tol = 1e-3, normalised = T, K = 2, score = F,
ridge = T, approx = F)
fpca.nonscore(A, maxsteps = 100, tol = 1e-3, normalised = T, K = 2,
ridge = T, approx = FALSE)
fpca.score(A, maxsteps = 100, tol = 1e-3, K = 2, ridge = T, approx = F)
fpca.start(A, maxsteps = 200, tol = 1e-3, normalised = T, K = 2, score = F,
ridge = T, approx = F)
|
A |
input matrix – adjacency matrix of an observed graph based on the non-isolated nodes, of dimension |
maxsteps |
an integer specifying the maximum number of steps for the algorithm to take before termination. Default is 200. |
tol |
a numeric variable giving the tolerance used in the calculation of the hitting and leaving times. A larger value is more conservative, and may cause the algorithm to miss some hitting or leaving events (do not change unless you know what you are getting into!). Default is 1e-3. |
normalised |
a logic variable indicating whether normalised Laplacian matrix is used in community detection. |
K |
input integer – the pre-specified number of communities, with the default value 2. |
score |
a logical variable indicating whether the RoE is used. |
ridge |
a logical variable, indicating whether to penalise the \ell_2 norm of the estimator, with penalty equal to |
approx |
a logical variable indicating if the approximate solution path should be used (with no dual coordinates leaving the boundary). Default is |
This function is a wrap-up of functions fpca.start
, fpca.cluster
, fpca.cut
and get.cluster
.
final.ratio.cluster |
the final estimator of the community labels according to the ratio cut criterion. |
ratio.location |
the location of the chosen estimator on the path according to the ratio cut criterion. |
final.normalised.cluster |
the final estimator of the community labels according to the normalised cut criterion. |
normalised.location |
the location of the chosen estimator on the path according to the normalised cut criterion. |
final.mod.dcbm.cluster |
the final estimator of the community labels according to the modularity criterion based on the DCBM assumption. |
mod.dcbm.location |
the location of the chosen estimator on the path according to the modularity criterion based on the DCBM assumption. |
final.mod.sbm.cluster |
the final estimator of the community labels according to the modularity criterion based on the SBM assumption. |
mod.sbm.location |
the location of the chosen estimator on the path according to the modularity criterion based on the SBM assumption. |
final.whole |
a matrix if |
iso.seq |
a vector of indices of the isolated nodes. |
final.matrix |
a matrix if |
Yang Feng, Richard J. Samworth and Yi Yu
Feng, Y., Samworth, R. J. and Yu, Y., Community Detection via Fused Principal Component Analysis, manuscript. Holland, P.W., Laskey, K.B. and Leinhardt, S., 1983. Stochastic block models: first steps. Social Networks 5, 109-137. Jin, J., 2012. Fast community detection by score. Karrer, B. and Newman, M.E.J., 2011. Stochastic blockmodels and community structure in networks. Physical Review E 83, 016107.
fpca.start
, fpca.cluster
, fpca.cut
, get.cluster
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | ## sbm
## setting
seed = 2
n = 100
theta.in = 0.03
theta.bw = 0.001
K = 2
A = gen.sbm(n, theta.in, theta.bw, K, seed)
# you can try the following to get separate results
# fit.A = fpca.nonscore(A, maxsteps = 100, tol = 1e-3, normalised = TRUE, K = 2,
# ridge = FALSE, approx = TRUE)
#A.cluster = fpca.nonscore.cluster(fit.A$final.whole)
#A.cut = fpca.cut(A, fit.A, A.cluster)
#get.cluster(A, fit.A$iso.seq, A.cut, A.cluster)
# in fpca.start function, only the matrix/array of the fused loadings estimators
# are get. no further estimation are calculated.
#fit.start.A = fpca.start(A, maxsteps = 100, tol = 1e-3, normalised = TRUE, K = 2,
# ridge = TRUE, approx = TRUE)
fit.A.wrapup = fpca(A, maxsteps = 200, tol = 1e-3, normalised = TRUE, K = 2,
ridge = FALSE, approx = TRUE)
## you can also try the following example
### degree-corrected block model
# seed = 2
# K = 2
# n = 100
# theta.in = 0.03
# theta.bw = 0.001
# theta = rep(0, n*K)
# for(i in 1:(n*K)){
# theta[i] = 0.75 + 0.475*(i/n/K)
# }
# A = gen.dcbm(n = n, theta.in = theta.in, theta.bw = theta.bw, theta = theta, K = 2,
# seed = seed)
# you can try the following to get separate results
# fit.A = fpca.score(A, maxsteps = 200, tol = 1e-3, K = 2, ridge = FALSE,
# approx = TRUE)
# in fpca.start function, only the matrix/array of the fused loadings estimators
# are get. no further estimation are calculated.
#fit.start.A = fpca.start(A, maxsteps = 100, tol = 1e-3, normalised = TRUE, K = 2,
#ridge = TRUE, approx = TRUE, score = TRUE)
# fit.A.wrapup = fpca(A, maxsteps = 200, tol = 1e-3, normalised = TRUE, K = 2,
# ridge = FALSE, approx = FALSE, score = TRUE)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.