# \donttest{
## Linear regression
# Data simulation
set.seed(1)
simul <- SimulateRegression(n = 100, pk = 50, family = "gaussian")
# Data split
ids_train <- Resample(
data = simul$ydata,
tau = 0.5, family = "gaussian"
)
xtrain <- simul$xdata[ids_train, , drop = FALSE]
ytrain <- simul$ydata[ids_train, , drop = FALSE]
xrefit <- simul$xdata[-ids_train, , drop = FALSE]
yrefit <- simul$ydata[-ids_train, , drop = FALSE]
# Stability selection
stab <- VariableSelection(xdata = xtrain, ydata = ytrain, family = "gaussian")
print(SelectedVariables(stab))
# Refitting the model
refitted <- Refit(
xdata = xrefit, ydata = yrefit,
stability = stab
)
refitted$coefficients # refitted coefficients
head(refitted$fitted.values) # refitted predicted values
# Fitting the full model (including all possible predictors)
refitted <- Refit(
xdata = simul$xdata, ydata = simul$ydata,
family = "gaussian"
)
refitted$coefficients # refitted coefficients
## Logistic regression
# Data simulation
set.seed(1)
simul <- SimulateRegression(n = 200, pk = 20, family = "binomial")
# Data split
ids_train <- Resample(
data = simul$ydata,
tau = 0.5, family = "binomial"
)
xtrain <- simul$xdata[ids_train, , drop = FALSE]
ytrain <- simul$ydata[ids_train, , drop = FALSE]
xrefit <- simul$xdata[-ids_train, , drop = FALSE]
yrefit <- simul$ydata[-ids_train, , drop = FALSE]
# Stability selection
stab <- VariableSelection(xdata = xtrain, ydata = ytrain, family = "binomial")
# Refitting the model
refitted <- Refit(
xdata = xrefit, ydata = yrefit,
stability = stab
)
refitted$coefficients # refitted coefficients
head(refitted$fitted.values) # refitted predicted probabilities
## Partial Least Squares (multiple components)
if (requireNamespace("sgPLS", quietly = TRUE)) {
# Data simulation
set.seed(1)
simul <- SimulateRegression(n = 500, pk = 15, q = 3, family = "gaussian")
# Data split
ids_train <- Resample(
data = simul$ydata,
tau = 0.5, family = "gaussian"
)
xtrain <- simul$xdata[ids_train, , drop = FALSE]
ytrain <- simul$ydata[ids_train, , drop = FALSE]
xrefit <- simul$xdata[-ids_train, , drop = FALSE]
yrefit <- simul$ydata[-ids_train, , drop = FALSE]
# Stability selection
stab <- BiSelection(
xdata = xtrain, ydata = ytrain,
family = "gaussian", ncomp = 3,
LambdaX = seq_len(ncol(xtrain) - 1),
LambdaY = seq_len(ncol(ytrain) - 1),
implementation = SparsePLS
)
plot(stab)
# Refitting the model
refitted <- Refit(
xdata = xrefit, ydata = yrefit,
stability = stab
)
refitted$Wmat # refitted X-weights
refitted$Cmat # refitted Y-weights
}
# }
Run the code above in your browser using DataLab