# NOT RUN {
if(!requireNamespace("MASS", quietly = TRUE))
{stop("package MASS needed for this example. Please install it.")}
gen_lasdat = function(n,r,rho,beta_true,a,b,seed=66,std = FALSE)
{
set.seed(seed)
beta_len = length(beta_true)
beta_len = beta_len
sigm = matrix(0, nrow = beta_len, ncol = beta_len)
for(i in 1:(beta_len-1))
{
diag(sigm[1:(beta_len+1-i),i:beta_len]) = rho^(i-1)
}
sigm[1,beta_len] = rho^(beta_len-1)
sigm[lower.tri(sigm)] = t(sigm)[lower.tri(sigm)]
Z = MASS::mvrnorm(n, mu = rep(0, beta_len), Sigma = sigm)
beta_Z.true = c(Z %*% beta_true)
U = runif(n)
if(r>0)
{
t = ((U^(-r)-1)/(a*r*exp(beta_Z.true)))^(1/b)
}else if(r == 0)
{
t = (-log(U)/(a*exp(beta_Z.true)))^(1/b)
#t = (exp(-log(U)/(0.5 * exp(beta_Z.true))) - 1)
}
C = runif(n,0,8)
Y = pmin(C,t)
delta_i = ifelse( C >= t, 1, 0)
if(std)
{
Z = apply(Z,2,normalize)
}
return(list(Z = Z, Y = Y, delta_i = delta_i,censor = mean(1-delta_i)))
}
now_rep=1
dat = gen_lasdat(100,1,0.5,c(0.3,0.5,0.7,0,0,0,0,0,0,0),2,5,seed= 6+60*now_rep,std = FALSE)
Z = dat$Z
Y = dat$Y
delta_i = dat$delta_i
tra_ala = trans_alasso(Z,Y,delta_i,lamb_vec = c(5,7),r=1)
tra_ala$GCV_res
tra_ala$beta_res
tra_ala$lamb_res
# }
Run the code above in your browser using DataLab