SOBI: SOBI Method for Blind Source Separation

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/SOBI.R

Description

The SOBI method for the second order blind source separation problem. The function estimates the unmixing matrix in a second order stationary source separation model by jointly diagonalizing the covariance matrix and several autocovariance matrices at different lags.

Usage

1
2
3
4
5
6
SOBI(X, ...)

## Default S3 method:
SOBI(X, k=12, method="frjd", eps = 1e-06, maxiter = 100, ...)
## S3 method for class 'ts'
SOBI(X, ...)

Arguments

X

a numeric matrix or a multivariate time series object of class ts. Missing values are not allowed.

k

if a single integer, then the lags 1:k are used, if an integer vector, then these are used as the lags.

method

method to use for the joint diagonalization, options are djd, rjd and frjd

.

eps

convergence tolerance.

maxiter

maximum number of iterations.

...

further arguments to be passed to or from methods.

Details

The order of the estimated components is fixed so that the sums of squared autocovariances are in the decreasing order.

Value

A list with class 'bss' containing the following components:

W

estimated unmixing matrix.

k

lags used.

method

method used for the joint diagonalization.

S

estimated sources as time series objected standardized to have mean 0 and unit variances.

Author(s)

Klaus Nordhausen

References

Belouchrani, A., Abed-Meriam, K., Cardoso, J.F. and Moulines, R. (1997), A blind source separation technique using second-order statistics, IEEE Transactions on Signal Processing, 434–444.

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.J. (2016), Separation of Uncorrelated Stationary Time Series Using Autocovariance Matrices, Journal of Time Series Analysis, 37, 337–354.

Miettinen, J., Nordhausen, K. and Taskinen, S. (2017), Blind Source Separation Based on Joint Diagonalization in R: The Packages JADE and BSSasymp, Journal of Statistical Software, 76, 1–31, <doi:10.18637/jss.v076.i02>.

See Also

ts

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# creating some toy data
A<- matrix(rnorm(9),3,3)
s1 <- arima.sim(list(ar=c(0.3,0.6)),1000)
s2 <- arima.sim(list(ma=c(-0.3,0.3)),1000)
s3 <- arima.sim(list(ar=c(-0.8,0.1)),1000)

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

res1<-SOBI(X)
res1
coef(res1)
plot(res1) # compare to plot.ts(S)
MD(coef(res1),A)

# input of a time series
X2<- ts(X, start=c(1961, 1), frequency=12)
plot(X2)
res2<-SOBI(X2, k=c(5,10,1,4,2,9,10))
plot(res2)

Example output

W :
            [,1]         [,2]        [,3]
[1,]  0.30384685 -0.007935084  0.04832078
[2,] -0.01685206  0.134715202 -0.07728987
[3,] -0.57725332  0.358785975  0.58965812

k :
 [1]  1  2  3  4  5  6  7  8  9 10 11 12

method :
[1] "frjd"

            [,1]         [,2]        [,3]
[1,]  0.30384685 -0.007935084  0.04832078
[2,] -0.01685206  0.134715202 -0.07728987
[3,] -0.57725332  0.358785975  0.58965812
[1] 0.1200428

JADE documentation built on March 25, 2020, 5:07 p.m.