GithubHelp home page GithubHelp logo

chunlinli / glmtlp Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 0.0 4.86 MB

Constrained likelihood estimation and inference with truncated lasso penalty for linear, generalized linear, and Gaussian graphical models.

Home Page: https://yuyangyy.com/glmtlp/

License: GNU General Public License v3.0

R 64.44% C++ 28.99% Jupyter Notebook 3.66% Shell 0.11% C 2.79%
gaussian-graphical-model generalized-linear-models high-dimensional-regression lasso constrained-likelihood truncated-lasso big-data summary-statistics

glmtlp's Introduction

glmtlp: An R Package For Truncated Lasso Penalty

glmtlp

Efficient procedures for constrained likelihood estimation and inference with truncated lasso penalty (Shen et al., 2010; Zhang 2010) for linear, generalized linear, and Gaussian graphical models.

Currently this package is in active development and will be released very soon.

New features [Unreleased]

This version supports regression from summary statistics and out-of-core model fitting using an ultrahigh-dimensional, multi-gigabyte datasets that cannot be loaded into memory. It's highly optimized and much more memory-efficient as compared to existing penalized regression packages like glmnet and ncvreg.

  • Add regression with summary data input

  • Add inference function

  • Add OpenMP support

  • Add external memory computation support

  • Add sparse coefficient matrix output

  • Add implementation of Poisson regression

Highlights

Constrained likelihood, inference

An improved algorithm

Any GLM (to do)

GGM (to do)

Summary data

Big data, memory management

Visualization

Citing information

If you find this project useful, please consider citing

@article{
    author = {Chunlin Li, Yu Yang, Chong Wu, Xiaotong Shen, Wei Pan},
    title = {{glmtlp: An R package for truncated Lasso penalty}},
    year = {2022}
}

References

Li, C., Shen, X., & Pan, W. (2021). Inference for a large directed graphical model with interventions. arXiv preprint arXiv:2110.03805. https://arxiv.org/abs/2110.03805.

Shen, X., Pan, W., & Zhu, Y. (2012). Likelihood-based selection and sharp parameter estimation. Journal of the American Statistical Association, 107(497), 223-232. https://doi.org/10.1080/01621459.2011.645783.

Shen, X., Pan, W., Zhu, Y., & Zhou, H. (2013). On constrained and regularized high-dimensional regression. Annals of the Institute of Statistical Mathematics, 65(5), 807-832. https://doi.org/10.1007/s10463-012-0396-3.

Tibshirani, R., Bien, J., Friedman, J., Hastie, T., Simon, N., Taylor, J., & Tibshirani, R. J. (2012). Strong rules for discarding predictors in lasso‐type problems. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 74(2), 245-266. https://doi.org/10.1111/j.1467-9868.2011.01004.x.

Yang, Y. & Zou, H. A coordinate majorization descent algorithm for l1 penalized learning. Journal of Statistical Computation and Simulation 84.1 (2014): 84-95. https://doi.org/10.1080/00949655.2012.695374.

Zhu, Y., Shen, X., & Pan, W. (2020). On high-dimensional constrained maximum likelihood inference. Journal of the American Statistical Association, 115(529), 217-230. https://doi.org/10.1080/01621459.2018.1540986.

Zhu, Y. (2017). An augmented ADMM algorithm with application to the generalized lasso problem. Journal of Computational and Graphical Statistics, 26(1), 195-204. https://doi.org/10.1080/10618600.2015.1114491.

Part of the code is adapted from glmnet, ncvreg, and biglasso.

Warm thanks to the authors of above open-sourced softwares.

glmtlp's People

Contributors

chunlinli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

glmtlp's Issues

Not a single variable selected when kappa is large

I encountered an issue when using glmtlp() for a single run. I got output named integer(0), but neither a warning nor an error was produced. To replicate this issue, run the following codes:

library(glmtlp)

set.seed(1234)
n <- 100
p <- 300
rho <- 0.3
kappa0 <- 10
# snr = 17 ensures that sigma is about 1 as absolute noise level
gau_data <- gen_gaussian_data(n, p, rho, kappa0, beta_type = 2, snr = 17)

fit_raw <- glmtlp(
    gau_data$X, gau_data$y, family = "gaussian",
    method = "tlp-constrained", kappa = 40
)

selection <- which(abs(fit_raw$beta[, 2]) > 0) 
selection # none selected

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.