Nothing
library(sox)
# overlapping groups - graph proximal
# grouping structure
# ## group
# grp <- matrix(c(0, 0, 0, 0, 0,
# 0, 0, 0, 0, 0,
# 1, 1, 0, 0, 0,
# 0, 0, 0, 0, 0,
# 0, 1, 0, 1, 0),
# ncol = 5, byrow = TRUE)
# ## group_variable
# grp.var <- matrix(c(1, 0, 0, 0, 0, #A1
# 1, 0, 0, 0, 0, #A2
# 0, 0, 0, 1, 0, #C1
# 0, 0, 0, 1, 0, #C2
# 0, 1, 0, 0, 0, #B
# 0, 0, 1, 0, 0, #A1B
# 0, 0, 1, 0, 0, #A2B
# 0, 0, 0, 0, 1, #C1B
# 0, 0, 0, 0, 1 #C2B
# ), ncol = 5, byrow = TRUE)
x <- as.matrix(sim[, c("A1","A2","C1","C2","B","A1B","A2B","C1B","C2B")])
lam.seq <- exp(seq(log(1e0), log(1e-3), length.out = 20))
# Variables:
## 1: A1
## 2: A2
## 3: C1
## 4: C2
## 5: B
## 6: A1B
## 7: A2B
## 8: C1B
## 9: C2B
# Overlapping groups:
## g1: A1, A2, A1B, A2B
## g2: B, A1B, A2B, C1B, C2B
## g3: A1B, A2B
## g4: C1, C2, C1B, C2B
## g5: C1B, C2B
# So..
overlapping.groups <- list(c(1, 2, 6, 7),
c(5, 6, 7, 8, 9),
c(6, 7),
c(3, 4, 8, 9),
c(8, 9))
pars.overlapping <- overlap_structure(overlapping.groups)
# fit
fit.overlapping <- sox(
x = x,
ID = sim$Id,
time = sim$Start,
time2 = sim$Stop,
event = sim$Event,
penalty = "overlapping",
lambda = lam.seq,
group = pars.overlapping$groups,
group_variable = pars.overlapping$groups_var,
penalty_weights = pars.overlapping$group_weights,
tol = 1e-4,
maxit = 1e3,
verbose = FALSE
)
plot(fit.overlapping)
# cv
cv.overlapping <- sox_cv(
x = x,
ID = sim$Id,
time = sim$Start,
time2 = sim$Stop,
event = sim$Event,
penalty = "overlapping",
lambda = lam.seq,
group = pars.overlapping$groups,
group_variable = pars.overlapping$groups_var,
penalty_weights = pars.overlapping$group_weights,
nfolds = 5,
tol = 1e-4,
maxit = 1e3,
verbose = FALSE
)
plot(cv.overlapping$sox.fit)
plot(cv.overlapping)
plot(cv.overlapping, type = "solution-path")
# Variables:
## 1: A1
## 2: A2
## 3: C1
## 4: C2
## 5: B
## 6: A1B
## 7: A2B
## 8: C1B
## 9: C2B
# Nested groups (misspecified, for the demonstration of the software only.)
## g1: A1, A2, C1, C2, B, A1B, A2B, C1B, C2B
## g2: A1B, A2B, A1B, A2B
## g3: C1, C2, C1B, C2B
## g4: 1
## g5: 2
## ...
## G12: 9
# So...
nested.groups <- list(1:9,
c(1, 2, 6, 7),
c(3, 4, 8, 9),
1, 2, 3, 4, 5, 6, 7, 8, 9)
pars.nested <- nested_structure(nested.groups)
fit.nested <- sox(
x = x,
ID = sim$Id,
time = sim$Start,
time2 = sim$Stop,
event = sim$Event,
penalty = "nested",
lambda = lam.seq,
group = pars.nested$groups,
own_variable = pars.nested$own_variables,
no_own_variable = pars.nested$N_own_variables,
penalty_weights = pars.nested$group_weights,
tol = 1e-4,
maxit = 1e3,
verbose = FALSE
)
plot(fit.nested)
# cv
cv.nested <- sox_cv(
x = x,
ID = sim$Id,
time = sim$Start,
time2 = sim$Stop,
event = sim$Event,
penalty = "nested",
lambda = lam.seq,
group = pars.nested$groups,
own_variable = pars.nested$own_variables,
no_own_variable = pars.nested$N_own_variables,
penalty_weights = pars.nested$group_weights,
nfolds = 5,
tol = 1e-4,
maxit = 1e3,
verbose = FALSE
)
plot(cv.nested$sox.fit)
plot(cv.nested)
plot(cv.nested, type = "solution-path")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.