missoNet

missoNet: Missingness in Multi-Task Regression with Conditional Network Estimation

https://github.com/yixiao-zeng/missonet

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary

Keywords

conditional-graphical-lasso cran missing-data multi-task-regression r-package
Last synced: 6 months ago · JSON representation

Repository

missoNet: Missingness in Multi-Task Regression with Conditional Network Estimation

Basic Info
  • Host: GitHub
  • Owner: yixiao-zeng
  • License: gpl-2.0
  • Language: R
  • Default Branch: main
  • Homepage:
  • Size: 3.12 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
conditional-graphical-lasso cran missing-data multi-task-regression r-package
Created over 3 years ago · Last pushed over 2 years ago
Metadata Files
Readme License

README.md

missoNet

R-CMD-check CRAN status CRAN downloads arXiv License: GPL-2 <!-- badges: end -->

Multi-task regression and network estimation with missing responses — no imputation required!

missoNet jointly estimates regression coefficients and the response network (precision matrix) from multi-response data where some responses are missing (MCAR/MAR/MNAR). Estimation is based on unbiased estimating equations with separate L1 regularization for coefficients and the precision matrix, enabling robust multi-trait analysis under incomplete outcomes.


Why missoNet?

  • Native handling of missing responses without ad‑hoc imputation.
  • Joint learning of effects (Beta) and conditional dependency structure (Theta).
  • Two regularization paths with glmnet-like ergonomics.
  • Reliable model selection via cross‑validation (with the 1‑SE rule) or information criteria (e.g., BIC).
  • Built for scale: warm starts, parallel, and adaptive lambda grids.

If you only have a single response, classical lasso/elastic net (e.g., glmnet) is simpler and likely faster.


Installation

CRAN (stable) r install.packages("missoNet")

GitHub (development) ```r

install.packages("devtools")

devtools::installgithub("yixiao-zeng/missoNet", buildvignettes = TRUE) ```


Quick start

```r library(missoNet)

Example data with ~15% missing responses (MCAR)

sim <- generateData(n = 300, p = 50, q = 10, rho = 0.15, missing.type = "MCAR")

Fit along two lambda paths; choose via BIC (no CV)

fit <- missoNet(X = sim$X, Y = sim$Z, GoF = "BIC")

Extract estimates at the selected solution

Beta <- fit$est.min$Beta # p x q regression coefficients Theta <- fit$est.min$Theta # q x q precision (conditional network)

Visualize selection path

plot(fit, type = "scatter") ```


Cross‑validation & prediction

```r

5-fold CV over (lambda.beta, lambda.theta)

cvfit <- cv.missoNet(X = sim$X, Y = sim$Z, kfold = 5)

Inspect CV heatmap and selected models (min and 1-SE variants)

plot(cvfit, type = "heatmap")

Predict responses on new data

Y_hat <- predict(cvfit, newx = sim$X, s = "lambda.min") ```

Tip: Try s = "lambda.1se.beta" or "lambda.1se.theta" for more conservative sparsity when available.


Parallel processing

```r library(parallel)

cl <- makeCluster(max(1, detectCores() - 1)) cvfit <- cv.missoNet(X = sim$X, Y = sim$Z, kfold = 5, parallel = TRUE, cl = cl) stopCluster(cl) ```


Advanced usage

Custom penalty factors

```r

Lessen the penalty for prior-important predictors

p <- ncol(sim$X); q <- ncol(sim$Z) beta.pen.factor <- matrix(1, p, q) beta.pen.factor[c(1, 2), ] <- 0.1

fit <- missoNet(X = sim$X, Y = sim$Z, beta.pen.factor = beta.pen.factor) ```

Adaptive search (faster large runs)

r fit <- missoNet(X = sim$X, Y = sim$Z, adaptive.search = TRUE, n.lambda.beta = 50, n.lambda.theta = 50)


Documentation

r vignette("missoNet-introduction") vignette("missoNet-cross-validation") vignette("missoNet-case-study")

If vignettes are not available from CRAN binaries on your platform, install from source using the GitHub command above with build_vignettes = TRUE.


Performance notes

  • Handles substantial missingness in responses, without imputation.
  • Warm starts and adaptive grids often yield 5–10× speedups in large problems.
  • Scales to p > 1,000 predictors and q > 100 responses with reasonable settings.

Actual performance will depend on sparsity, signal-to-noise, and missingness mechanisms.


When to use (and not)

Great for

  • Multi-trait genomic studies (eQTL, meQTL, pQTL)
  • High-dimensional omics with partially observed outcomes
  • Longitudinal studies with dropout
  • Network inference under incomplete responses

Not ideal for - Single-response regression (use glmnet or similar) - Extremely sparse information (e.g., >50% missing responses across most traits)


Citation

If you use missoNet in your research, please cite:

bibtex @article{zeng2025missonet, title = {Multivariate regression with missing response data for modelling regional DNA methylation QTLs}, author = {Zeng, Yixiao and Alam, Shomoita and Bernatsky, Sasha and Hudson, Marie and Colmegna, In{\'e}s and Stephens, David A and Greenwood, Celia MT and Yang, Archer Y}, journal = {arXiv preprint arXiv:2507.05990}, year = {2025}, url = {https://arxiv.org/abs/2507.05990} }


Contributing

Contributions and issues are welcome! Please open a discussion or pull request on the GitHub repository.


License

GPL-2. See the LICENSE file.

Owner

  • Name: Yixiao Zeng
  • Login: yixiao-zeng
  • Kind: user

GitHub Events

Total
  • Watch event: 2
Last Year
  • Watch event: 2

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 24
  • Total Committers: 2
  • Avg Commits per committer: 12.0
  • Development Distribution Score (DDS): 0.042
Top Committers
Name Email Commits
Yixiao Zeng y****g@q****m 23
Yixiao Zeng 1****g@u****m 1
Committer Domains (Top 20 + Academic)
qq.com: 1

Issues and Pull Requests

Last synced: over 2 years ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 207 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 4
  • Total maintainers: 1
cran.r-project.org: missoNet

Joint Sparse Regression & Network Learning with Missing Data

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 207 Last month
Rankings
Forks count: 28.8%
Dependent packages count: 29.8%
Stargazers count: 35.2%
Dependent repos count: 35.5%
Average: 42.7%
Downloads: 84.1%
Maintainers (1)
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • Rcpp >= 1.0.8.3 imports
  • glasso >= 1.11 imports
  • glmnet >= 4.1.4 imports
  • snowfall >= 1.84.6.1 imports
  • BiocManager * suggests
  • ComplexHeatmap * suggests
  • circlize * suggests
  • grid * suggests
  • knitr * suggests
  • mvtnorm * suggests
  • plot3D * suggests
  • rmarkdown * suggests