Learn R Programming

PSGD

This package provides functions to generate ensembles of generalized linear models using a projected subset gradient descent algorithm.


Installation

You can install the stable version on R CRAN.

install.packages("PSGD", dependencies = TRUE)

You can install the development version from GitHub.

library(devtools)
devtools::install_github("AnthonyChristidis/PSGD")

Usage

# Required Libraries
library(mvnfast)

# Setting the parameters
p <- 100
n <- 40
n.test <- 2000
sparsity <- 0.2
rho <- 0.5
SNR <- 3
set.seed(0)

# Generating the coefficient
p.active <- floor(p*sparsity)
a <- 4*log(n)/sqrt(n)
neg.prob <- 0.2
nonzero.betas <- (-1)^(rbinom(p.active, 1, neg.prob))*(a + abs(rnorm(p.active)))

# Correlation structure
Sigma <- matrix(0, p, p)
Sigma[1:p.active, 1:p.active] <- rho
diag(Sigma) <- 1
true.beta <- c(nonzero.betas, rep(0 , p - p.active))

# Computing the noise parameter for target SNR
sigma.epsilon <- as.numeric(sqrt((t(true.beta) %*% Sigma %*% true.beta)/SNR))

# Simulate some data
set.seed(1)
x.train <- mvnfast::rmvn(n, mu=rep(0,p), sigma=Sigma)
y.train <- 1 + x.train %*% true.beta + rnorm(n=n, mean=0, sd=sigma.epsilon)
x.test <- mvnfast::rmvn(n.test, mu=rep(0,p), sigma=Sigma)
y.test <- 1 + x.test %*% true.beta + rnorm(n.test, sd=sigma.epsilon)

# CV PSGD Ensemble
output <- cv.PSGD(x = x.train, y = y.train, n_models = 5,
                  model_type = c("Linear", "Logistic")[1], include_intercept = TRUE, 
                  split = c(2, 3), size = c(10, 15), 
                  max_iter = 20,
                  cycling_iter = 0,
                  n_folds = 5,
                  n_threads = 1)
psgd.coef <- coef(output, group_index = 1:output$n_models)
psgd.predictions <- predict(output, newx = x.test, group_index = 1:output$n_models)
mean((y.test - psgd.predictions)^2)/sigma.epsilon^2

License

This package is free and open source software, licensed under GPL (>= 2).

Copy Link

Version

Install

install.packages('PSGD')

Monthly Downloads

316

Version

1.0.6

License

GPL (>= 2)

Maintainer

Anthony Christidis

Last Published

March 30th, 2025

Functions in PSGD (1.0.6)

coef.PSGD

Coefficients for PSGD Object
cv.PSGD

Cross-Validation - Projected Subset Gradient Descent
predict.PSGD

Predictions for PSGD Object
coef.cv.PSGD

Coefficients for cv.PSGD Object
PSGD

Projected Subset Gradient Descent
predict.cv.PSGD

Predictions for cv.PSGD Object