Learn R Programming

⚠️There's a newer version (1.0.6) of this package.Take me there.

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.3

License

GPL (>= 2)

Maintainer

Anthony Christidis

Last Published

April 24th, 2023

Functions in PSGD (1.0.3)

coef.cv.PSGD

Coefficients for cv.PSGD Object
predict.cv.PSGD

Predictions for cv.PSGD Object
PSGD

Projected Subset Gradient Descent
coef.PSGD

Coefficients for PSGD Object
cv.PSGD

Cross-Validation - Projected Subset Gradient Descent
predict.PSGD

Predictions for PSGD Object