p = 10
m = 5
n = 2000
mu = t(matrix(rep(runif(p, 0, 100), n), p, n))
mu0 = as.matrix(runif(m, 0))
sigma0 = diag(runif(m, 1))
F = matrix(MASS::mvrnorm(n, mu0, sigma0), nrow = n)
A = matrix(runif(p * m, -1, 1), nrow = p)
xi = 5
omega = 2
alpha = 5
r <- sn::rsn(n * p, omega = omega, alpha = alpha)
D0 = omega * diag(p)
D = diag(D0)
epsilon = matrix(r, nrow = n)
data = mu + F %*% t(A) + epsilon
result <- SAPC.SFM(data, m = m, A = A, D = D, p = p)
print(result)
Run the code above in your browser using DataLab