X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=R%2FgenerateIO.R;h=4527f0897705bc9065e93f203567f53549352212;hb=0b216f854a21821f9be375d07c2932b31e227e78;hp=83d8cc9f19bcc4f3689817547cd5e9db7b83c23b;hpb=d1531659214edd6eaef0ac9ec835455614bba16c;p=valse.git diff --git a/R/generateIO.R b/R/generateIO.R index 83d8cc9..4527f08 100644 --- a/R/generateIO.R +++ b/R/generateIO.R @@ -1,32 +1,33 @@ #' Generate a sample of (X,Y) of size n -#' @param covX covariance for covariates -#' @param covY covariance for the response vector +#' @param covX covariance for covariates (of size p*p*K) +#' @param covY covariance for the response vector (of size m*m*K) #' @param pi proportion for each cluster #' @param beta regression matrix #' @param n sample size +#' #' @return list with X and Y #' @export #----------------------------------------------------------------------- generateIO = function(covX, covY, pi, beta, n) { - size_covX = dim(covX) - p = size_covX[1] - k = size_covX[3] + p = dim(covX)[1] - size_covY = dim(covY) - m = size_covY[1] + m = dim(covY)[1] + k = dim(covY)[3] Y = matrix(0,n,m) - BX = array(0, dim=c(n,m,k)) + require(mvtnorm) + X = rmvnorm(n, mean = rep(0,p), sigma = covX) require(MASS) #simulate from a multivariate normal distribution for (i in 1:n) { + for (r in 1:k) { BXir = rep(0,m) for (mm in 1:m) - Bxir[[mm]] = X[i,] %*% beta[,mm,r] + BXir[mm] = X[i,] %*% beta[,mm,r] Y[i,] = Y[i,] + pi[r] * mvrnorm(1,BXir, covY[,,r]) } }