secure.sim {secure} | R Documentation |
Simulation model
Description
genertate random samples from a sparse factor regression model
Usage
secure.sim(U, D, V, n, snr, Xsigma, rho = 0)
Arguments
U |
specified value of U |
D |
specified value of D |
V |
specified value of V |
n |
sample size |
snr |
signal to noise ratio |
Xsigma |
covariance matrix for generating sample of X |
rho |
parameter defining correlated error |
Value
Y |
Generated response matrix |
X |
Generated predictor matrix |
Examples
#require(secure)
# Simulate data from a sparse factor regression model
p <- 100; q <- 50; n <- 300
snr <- 0.5; ssigma <- 0.5; nlambda <- 200
nrank <- 3
U <- matrix(0,ncol=nrank ,nrow=p); V <- matrix(0,ncol=nrank ,nrow=q)
U[,1]<-c(sample(c(1,-1),8,replace=TRUE),rep(0,p-8))
U[,2]<-c(rep(0,5),sample(c(1,-1),9,replace=TRUE),rep(0,p-14))
U[,3]<-c(rep(0,11),sample(c(1,-1),9,replace=TRUE),rep(0,p-20))
V[,1]<-c(sample(c(1,-1),5,replace=TRUE)*runif(5,0.3,1),rep(0,q-5))
V[,2]<-c(rep(0,5),sample(c(1,-1),5,replace=TRUE)*runif(5,0.3,1),rep(0,q-10))
V[,3]<-c(rep(0,10),sample(c(1,-1),5,replace=TRUE)*runif(5,0.3,1),rep(0,q-15))
U[,1:3]<- apply(U[,1:3],2,function(x)x/sqrt(sum(x^2)))
V[,1:3]<- apply(V[,1:3],2,function(x)x/sqrt(sum(x^2)))
D <- diag(c(20,15,10))
C <- U%*%D%*%t(V)
Xsigma <- ssigma^abs(outer(1:p, 1:p,FUN="-"))
sim.sample <- secure.sim(U,D,V,n,snr,Xsigma)
Y <- sim.sample$Y
X <- sim.sample$X
[Package secure version 0.6 Index]