BSSS {BSSoverSpace}R Documentation

Blind Source Separation Over Space

Description

BSSS estimates the mixing matrix of blind source separation model for multivariate spatial data.

Usage

BSSS(x, coord, kernel_type, kernel_parameter, kernel_list = NULL)

Arguments

x

A numeric matrix of dimension c(n, p), where the p columns correspond to the entries of the random field and the n rows are the observations.

coord

A numeric matrix of dimension c(n,2) where each row represents the coordinates of a point in the spatial domain. Only needed if the argument kernel_list is NULL.

kernel_type

A string indicating which kernel function to use. Either 'ring', 'ball' or 'gauss'.

kernel_parameter

A numeric vector that gives the parameters for the kernel function. At least length of one for 'ball' and 'gauss' or two for 'ring' kernel.

kernel_list

List of spatial kernel matrices with dimension c(n,n). Can be computed by the function spatial_kernel_matrix.

Details

BSSS estimates the mixing matrix by combining the information of all local covariance matrices together and conduct eigenanalysis.

Value

BSSS returns a list, including the estimation of maxing matrix, the estimated latent field, and eigenvalues of matrix W for validating the estimation. Larger gaps among first few eigenvalues of matrix W strengthens the validity of estimation. See Zhang, Hao and Yao (2022) <arXiv:2201.02023> for details.

Examples



sample_size <- 500
coords <- runif(sample_size * 2) * 50
dim(coords) <- c(sample_size, 2)
dim <- 5 # specify the dimensionality of random variable
nu <- runif(dim, 0, 6) # parameter for matern covariance function
kappa <- runif(dim, 0, 2) # parameter for matern covariance function
zs <- gen_matern_gaussian_rf(coords=coords, dim=dim, nu=nu, kappa=kappa)
mix_mat <- diag(dim) # create a diagonal matrix as the mixing matrix
xs <- t(mix_mat %*% t(zs))
example <- BSSS(xs, coords, 'ring', c(0,0.5,0.5,1,1,8))
d_score(example$mix_mat_est, mix_mat)


[Package BSSoverSpace version 0.1.0 Index]