X-Git-Url: https://git.auder.net/?p=valse.git;a=blobdiff_plain;f=pkg%2FR%2FgenerateXY.R;fp=pkg%2FR%2FgenerateXY.R;h=0000000000000000000000000000000000000000;hp=064b54b2d083bb3bc9d9ddd26a8654962e5b93c2;hb=e32621012b1660204434a56acc8cf73eac42f477;hpb=ca277ac5ab51fef149014eb5e4610403fdb3227b diff --git a/pkg/R/generateXY.R b/pkg/R/generateXY.R deleted file mode 100644 index 064b54b..0000000 --- a/pkg/R/generateXY.R +++ /dev/null @@ -1,39 +0,0 @@ -#' generateXY -#' -#' Generate a sample of (X,Y) of size n -#' -#' @param n sample size -#' @param π proportion for each cluster -#' @param meanX matrix of group means for covariates (of size p) -#' @param covX covariance for covariates (of size p*p) -#' @param β regression matrix, of size p*m*k -#' @param covY covariance for the response vector (of size m*m*K) -#' -#' @return list with X and Y -#' -#' @export -generateXY <- function(n, π, meanX, β, covX, covY) -{ - p <- dim(covX)[1] - m <- dim(covY)[1] - k <- dim(covY)[3] - - X <- matrix(nrow = 0, ncol = p) - Y <- matrix(nrow = 0, ncol = m) - - # random generation of the size of each population in X~Y (unordered) - sizePop <- rmultinom(1, n, π) - class <- c() #map i in 1:n --> index of class in 1:k - - for (i in 1:k) - { - class <- c(class, rep(i, sizePop[i])) - newBlockX <- MASS::mvrnorm(sizePop[i], meanX, covX) - X <- rbind(X, newBlockX) - Y <- rbind(Y, t(apply(newBlockX, 1, function(row) MASS::mvrnorm(1, row %*% - β[, , i], covY[, , i])))) - } - - shuffle <- sample(n) - list(X = X[shuffle, ], Y = Y[shuffle, ], class = class[shuffle]) -}