NSS.JD: NSS.JD Method for Nonstationary Blind Source Separation

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

View source: R/NSSJD.R

Description

The NSS.JD method for nonstationary blind source separation. The method first whitens the complete data and then divides it into K time intervals. Then frjd is used to jointly diagonalize the covariance matrices computed for the individual time intervals to find the sources.

Usage

1
2
3
4
5
6
NSS.JD(X, ...)

## Default S3 method:
NSS.JD(X,  K=12, Tau=0, n.cuts=NULL, eps = 1e-06, maxiter = 100, ...)
## S3 method for class 'ts'
NSS.JD(X, ...)

Arguments

X

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

K

number of intervals to be used.

Tau

By default 0 which means covariance are computed of each time interval, if Tau is an integer > 0 then rather autocovariance matrices at lag Tau are used for the joint diagonaliation.

n.cuts

if NULL, then the time series is divided into K equally long intervals. To specify intervals n.cuts should be given in the form c(1,n.cut.1,...,n.cut.k, nrow(X)) to specify where to split the time series.

eps

maximum number of iterations for frjd.

maxiter

convergence tolerance for frjd.

...

further arguments to be passed to or from methods.

Details

The model assumes that the mean of the p-variate time series is constant but the variances change over time.

Value

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

W

estimated unmixing matrix.

k

the lag used for the autocovariance matrix.

n.cut

specifying the intervals where data is split

K

the number of intervals used

S

estimated sources as time series objected standardized to have mean 0 and that the variance of the sources are 1.

Author(s)

Klaus Nordhausen

References

Choi S. and Cichocki A. (2000), Blind separation of nonstationary sources in noisy mixtures, Electronics Letters, 36, 848–849.

Choi S. and Cichocki A. (2000), Blind separation of nonstationary and temporally correlated sources from noisy mixtures, Proceedings of the 2000 IEEE Signal Processing Society Workshop Neural Networks for Signal Processing X, 1, 405–414.

Nordhausen K. (2014), On robustifying some second order blind source separation methods for nonstationary time series, Statistical Papers, 55, 141–156.

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, NSS.SD, NSS.TD.JD

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
n <- 1000
s1 <- rnorm(n)
s2 <- 2*sin(pi/200*1:n)* rnorm(n)
s3 <- c(rnorm(n/2), rnorm(100,0,2), rnorm(n/2-100,0,1.5))
S <- cbind(s1,s2,s3)
plot.ts(S)
A<-matrix(rnorm(9),3,3)
X<- S%*%t(A)

NSS2 <- NSS.JD(X)
NSS2
MD(coef(NSS2),A)
plot(NSS2)
cor(NSS2$S,S)

NSS2b <- NSS.JD(X, Tau=1)
MD(coef(NSS2b),A)

NSS2c <- NSS.JD(X, n.cuts=c(1,300,500,600,1000))
MD(coef(NSS2c),A)

Example output

W :
          [,1]        [,2]      [,3]
[1,]  1.011721  0.04373234  1.935348
[2,]  7.360286 -3.68769436 24.141919
[3,] 17.968788 -9.68435931 55.315558

k :
[1] 0

n.cut :
 [1]    1   85  168  251  334  418  501  584  667  751  834  917 1000

K :
[1] 12

[1] 0.1259167
                  s1          s2          s3
Series 1 -0.12722234  0.99509928  0.01608690
Series 2 -0.04659412 -0.02961987 -0.99882616
Series 3  0.99077922  0.09434030 -0.04568936
[1] 0.3478984
[1] 0.2552444

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