funLBM | R Documentation |
The funLBM algorithm, proposed by Bouveyron et al. (2018) <doi:10.1111/rssc.12260>, allows to simultaneously cluster the rows and the columns of one or more data matrix where each entry of the matrix is a (univariate or multivariate) function or a time series.
funLBM(X, K, L, maxit = 50, burn = 25, basis.name = "fourier", nbasis = 15, nbinit = 1, gibbs.it = 3, display = FALSE, init = "funFEM", mc.cores = 1, ...)
X |
Univariate case: The data array (n x p x T) where each entry corresponds to the measure of one individual i, i=1,...,n, for a functional variable j, j=1,...,p, at point t, t=1,...,T. Multivariate case: a list of data array as described hereinabove with one data array by variable. |
K |
The number of row clusters, |
L |
The number of column clusters, |
maxit |
The maximum number of iterations of the SEM-Gibbs algorithm (default is 100), |
burn |
The number of of iterations of the burn-in period (default is 50), |
basis.name |
The name ('fourier' or 'spline') of the basis functions used for the decomposition of the functions (default is 'fourier'), |
nbasis |
Number of the basis functions used for the decomposition of the functions (default is 15), |
nbinit |
Number of initializations (default is 3), |
gibbs.it |
Number of Gibbs iterations (default is 3), |
display |
Binary value. If TRUE, information about the iterations is displayed, |
init |
The type of initialization: 'random', 'kmeans' or 'funFEM'. Default is 'kmeans', |
mc.cores |
The number of cores for parallel computing (default is 1), |
... |
Additional parameters to provide to sub-functions. |
The resulting object contains, in addition to call information:
prms |
A list containing all fited parameters for the best model (according to ICL) |
Z |
The dummy matrix of row clustering |
W |
The dummy matrix of column clustering |
row_clust |
The group memberships of rows |
col_clust |
The group memberships of columns |
allPrms |
A list containing the fited parameters for all tested models |
loglik |
The log-likelihood of the best model |
icl |
The value of ICL for the best model |
C. Bouveyron, L. Bozzi, J. Jacques and F.-X. Jollois, The Functional Latent Block Model for the Co-Clustering of Electricity Consumption Curves, Journal of the Royal Statistical Society, Series C, 2018 (https://doi.org/10.1111/rssc.12260).
## Univariate example: Co-clustering on simulated data set.seed(12345) X = simulateData(n = 30, p = 30, t = 15) out = funLBM(X$data,K=4,L=3) # Visualization of results plot(out,type='blocks') plot(out,type='proportions') plot(out,type='means') # Evaluating clustering results ari(out$col_clust,X$col_clust) ari(out$row_clust,X$row_clust) ## Multivariate example: X = simulateData2(n = 50, p = 50, t = 15) out = funLBM(list(X$data1,X$data2),K=4,L=3) # Visualization of results plot(out,type='blocks') plot(out,type='proportions') plot(out,type='means') # Evaluating clustering results ari(out$col_clust,X$col_clust) ari(out$row_clust,X$row_clust) ## The following examples could take a few minutes to run ## and depend on the number of available CPU cores! ## Co-clustering on simulated data with parallel model selection #X = simulateData(n = 30, p = 30, t = 15) #out = funLBM(X$data,K=2:4,L=2:4,mc.cores = 4) ## Evaluating clustering results #ari(out$col_clust,X$col_clust) #ari(out$row_clust,X$row_clust) ## Co-clustering of Velib data #data(Velib) #out = funLBM(Velib$data,K=4,L=2) ## Visualization of results #plot(out,type='blocks') #plot(out,type='proportions') #plot(out,type='means')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.