# NOT RUN {
# Generating time series data
Nlength = 100; N = 150; p = 6; b = 3
I = diag(p)
A = 0.5 * matrix( rbinom( p * p, 1, 0.2 ), p, p )
A[lower.tri(A)] = 0
diag(A) = 0.5
G = matrix( 0, p, p )
K = matrix( 0, p, p * Nlength )
lambda = seq( 0, Nlength - 1, 1 ) * 2 * pi / Nlength
K0 = matrix( 0, p, p * Nlength )
K_times = matrix( 1, p, p )
for( k in 1:Nlength )
{ # Compute K0
K0[, ( k * p - p + 1 ):( k * p )] = I + t(A) <!-- %*% A + -->
complex( 1, cos( -lambda[k] ), sin( -lambda[k] ) ) * A +
complex( 1, cos( lambda[k] ), sin( lambda[k] ) ) * t(A)
K_times = K_times * ( K0[, ( k * p - p + 1 ):( k * p )] != 0 )
diag( K[, (k * p - p + 1 ):( k * p )] ) = 1
}
G0 = K_times
diag(G0) = 0
D = K
# d is the Fourier coefficients of X
d = array( 0, c( p, Nlength, N ) )
x = array( 0, c( p, Nlength, N ) )
for( n in 1:N )
{ # Generate X
e = matrix( rnorm( p * Nlength ), p, Nlength )
x[, 1, n] = e[, 1]
for( t in 2:Nlength ) x[,t,n] = A <!-- %*% x[,t-1,n] + e[,t] -->
}
P = 0 * D
for( n in 1:N )
{ # Compute Pk
X = x[,,n]
for( i in 1:p ) d[i, , n] = fft( X[i,] )
for( i in 1:Nlength )
P[, ( i * p - p + 1 ):( i * p)] = P[, ( i * p - p + 1 ):( i * p )] +
d[, i, n] <!-- %*% t( Conj( d[, i, n] ) ) -->
}
bdgraph.obj = bdgraph.ts( P, Nlength, N, iter = 1000 )
summary( bdgraph.obj )
compare( G0, bdgraph.obj )
# }
Run the code above in your browser using DataLab