# NOT RUN {
#####################################################################
# Simulate 2 clusters, 3 periods and cluster-period size of 5 #######
#####################################################################
t = 3; n = 2; m = 5
# means of cluster 1
u_c1 = c(0.4, 0.3, 0.2)
u1 <- rep(u_c1, c(rep(m, t)))
# means of cluster 2
u_c2 = c(0.35, 0.25, 0.2)
u2 <- rep(u_c2, c(rep(m, t)))
# List of mean vectors
mu = list()
mu[[1]] = u1; mu[[2]] = u2;
# List of correlation matrices
## correlation parameters
alpha0 = 0.03; alpha1 = 0.015; rho = 0.8
## (1) exchangeable
Sigma = list()
Sigma[[1]] = diag(m * t) * ( 1 - alpha1) + matrix(alpha1, m * t, m * t )
Sigma[[2]] = diag(m * t) * ( 1 - alpha1) + matrix(alpha1, m * t, m * t )
y_exc = simbinCLF(mu = mu, Sigma = Sigma, n = n)
## (2) nested exchangeable
Sigma = list()
cor_matrix = matrix(alpha1, m * t, m * t)
loc1 = 0; loc2 = 0
for(t in 1:t){loc1 = loc2 + 1; loc2 = loc1 + m - 1
for(i in loc1:loc2){for(j in loc1:loc2){
if(i != j){cor_matrix[i, j] = alpha0}else{cor_matrix[i, j] = 1}}}}
Sigma[[1]] = cor_matrix; Sigma[[2]] = cor_matrix
y_nex = simbinCLF(mu = mu, Sigma = Sigma, n = n)
## (3) exponential decay
Sigma = list()
### function to find the period of the ith index
region_ij<-function(points, i){diff = i - points
for(h in 1:(length(diff) - 1)){if(diff[h] > 0 & diff[h + 1] <= 0){find <- h}}
return(find)}
cor_matrix = matrix(0, m * t, m * t)
useage_m = cumsum(m * t); useage_m = c(0, useage_m)
for(i in 1:(m * t)){i_reg = region_ij(useage_m, i)
for(j in 1:(m * t)){j_reg = region_ij(useage_m, j)
if(i_reg == j_reg & i != j){
cor_matrix[i, j] = alpha0}else if(i == j){cor_matrix[i, j] = 1
}else if(i_reg != j_reg){cor_matrix[i,j] = alpha0 * (rho^(abs(i_reg - j_reg)))}}}
Sigma[[1]] = cor_matrix; Sigma[[2]] = cor_matrix
y_ed = simbinCLF(mu = mu, Sigma = Sigma, n = n)
# }
Run the code above in your browser using DataLab