Learn R Programming

BSSasymp (version 1.2-3)

ASCOV_SOBI_est: Asymptotic covariance matrix of symmetric and deflation-based SOBI estimates

Description

The symmetric and deflation-based SOBI methods solve the blind source separation problem in the case of second order stationary time series sources by jointly diagonalizing the covariance matrix and several autocovariance matrices at different lags. The functions compute an estimate of the covariance matrix of a SOBI estimate for the mixing or the unmixing matrix, under the assumption that the sources are \(MA(\infty)\) time series. Notice that, since AMUSE method is a special case of SOBI, also an estimate of the covariance matrix of an AMUSE estimate can be computed using these functions.

Usage

ASCOV_SOBI_estN(X, taus, mixed=TRUE, M=100, a=2)

ASCOV_SOBI_est(X, taus, arp=NULL, maq=NULL, mixed=TRUE, M=100, a=2, ...)

ASCOV_SOBIdefl_estN(X, taus, mixed=TRUE, M=100)

ASCOV_SOBIdefl_est(X, taus, arp=NULL, maq=NULL, mixed=TRUE, M=100, ...)

Arguments

X

a numeric data matrix or a multivariate time series object of class ts.

taus

a vector of integers for the lags.

arp

a vector containing the AR orders used for the estimation of ARMA coefficients.

maq

a vector containing the MA orders used for the estimation of ARMA coefficients.

mixed

logical, see details.

M

the number of autocovariance matrices used for the estimation of the covariance matrices, see details.

a

numeric, see details

arguments to be passed to arima.

Value

A list with the following components:

W

estimated mean of the unmixing matrix estimate.

COV_W

estimated covariance matrix of the unmixing matrix estimate.

A

estimated mean of the mixing matrix estimate.

COV_A

estimated covariance matrix of the mixing matrix estimate.

Details

Functions ASCOV_SOBI_estN and ASCOV_SOBIdefl_estN assume that the innovations of the components are gaussian. Therefore, they are faster than ASCOV_SOBI_est and ASCOV_SOBI-defl_est, which estimate the fourth moments of the innovations by estimating the ARMA coefficients of the time series. Fitting the univariate ARMA coefficients is done using the function arima based on the orders provided by arp and maq.

The estimation is mostly based on autocovariance matrices and all non-zero matrices should be included. On the other hand, too large value of M increases the computation time and it may even reduce the estimation accuracy.

If mixed is TRUE, then X will be transformed by the corresponding SOBI estimate. The option FALSE can be used, for example, to estimate the covariance when X are source estimates given by some other method than SOBI.

The symmetric SOBI estimator maximizes the sum of squares of the diagonal elements of the autocovariance matrices. Different SOBI estimators are obtained when the diagonality of \(p\times p\) matrices \(B_1,\dots,B_K\) is measured by $$\sum_{k=1}^K\sum_{i=1}^p |(B_k)_{ii}|^a$$ with \(a>1\). The diagonality measure can be selected using the argument a.

References

Miettinen, J. (2015): Alternative diagonality criteria for SOBI. In Nordhausen, K. and Taskinen, S. (editors), Modern Nonparametric, Robust and Multivariate methods, Festschrift in Honour of Hannu Oja, 455--469, Springer.

Miettinen, J., Nordhausen, K., Oja, H. and Taskinen, S. (2012), Statistical properties of a blind source separation estimator for stationary time series, Statistics and Probability Letters, 82, 1865--1873.

Miettinen, J., Nordhausen, K., Oja, H. and Taskinen, S. (2014), Deflation-based separation of uncorrelated stationary time series, Journal of Multivariate Analysis, 123, 214--227.

Miettinen, J., Illner, K., Nordhausen, K., Oja, H., Taskinen, S. and Theis, F. (2015), Separation of uncorrelated stationary time series using autocovariance matrices, Journal of Time Series Analysis, in print, DOI: 10.1111/jtsa.12159.

See Also

ASCOV_SOBI, SOBI, AMUSE, arima

Examples

Run this code
# NOT RUN {
A<- matrix(rnorm(9),3,3)
s1 <- arima.sim(list(ar=0.6),1000)
s2 <- arima.sim(list(ma=c(0.2,0.3,-0.3)),1000)
s3 <- arima.sim(list(ar=-0.2,ma=c(0.5,-0.1,0.4)),1000)

S <- cbind(s1,s2,s3)
X <- S %*% t(A)

round(1000*ASCOV_SOBI_estN(X, taus=1:10)$COV_W,2)
round(1000*ASCOV_SOBIdefl_estN(X, taus=1:10)$COV_W,2)

# }

Run the code above in your browser using DataLab