MyNixOS website logo
Description

Missingness in Multi-Task Regression with Network Estimation.

Efficient procedures for fitting conditional graphical lasso models that link a set of predictor variables to a set of response variables (or tasks), even when the response data may contain missing values. 'missoNet' simultaneously estimates the predictor coefficients for all tasks by leveraging information from one another, in order to provide more accurate predictions in comparison to modeling them individually. Additionally, 'missoNet' estimates the response network structure influenced by conditioning predictor variables using a L1-regularized conditional Gaussian graphical model. Unlike most penalized multi-task regression methods (e.g., MRCE), 'missoNet' is capable of obtaining estimates even when the response data is corrupted by missing values. The method automatically enjoys the theoretical and computational benefits of convexity, and returns solutions that are comparable to the estimates obtained without missingness.

R-CMD-check CRAN status

missoNet: Missingness in Multi-Task Regression with Network Estimation

missoNet is a novel approach to fitting penalized multi-task regression models, which are used to estimate the coefficients of predictor variables for multiple correlated tasks/response variables. The package achieves this by simultaneously estimating the regression coefficients and the conditional response network structure given all predictors, using penalized maximum likelihood in an undirected conditional Gaussian graphical model. In contrast to most penalized multi-task regression methods, such as conditional graphical lasso, missoNet is capable of obtaining estimates even when the response data is corrupted by missing values. The method is based on convex optimization, which provides both theoretical and computational benefits, and returns solutions that are comparable to the estimates obtained without any missing values.

The package provides an integrated set of core routines including 1) generation of simulation data; 2) model fitting and cross-validation; 3) visualization of results; 4) predictions in new data. The function arguments are specified in the same style as those of glmnet, making it easy for experienced users to get started.

Installation

To install the package missoNet from CRAN, type the following command in the R console:

install.packages("missoNet")

Or install the development version of missoNet from GitHub:

if(!require("devtools")) {
  install.packages("devtools")
}
devtools::install_github("yixiao-zeng/missoNet", build_vignettes = TRUE)

An example for getting started

An example of how to use the package:

# Simulate a dataset with response values missing completely at random (MCAR), 
# the overall missing rate is around 10%.
sim.dat <- generateData(n = 300, p = 50, q = 20, rho = 0.1, missing.type = "MCAR")
tr <- 1:240  # training set indices
tst <- 241:300  # test set indices
X.tr <- sim.dat$X[tr, ]  # predictor matrix
Y.tr <- sim.dat$Z[tr, ]  # corrupted response matrix

# Perform a five-fold cross-validation on the training data.
cvfit <- cv.missoNet(X = X.tr, Y = Y.tr, kfold = 5)

# Alternatively, compute the cross-validation folds in parallel.
cl <- parallel::makeCluster(min(parallel::detectCores()-1, 3))
cvfit <- cv.missoNet(X = X.tr, Y = Y.tr, kfold = 5,
                     parallel = TRUE, cl = cl)
parallel::stopCluster(cl)

# Plot the standardized mean cross-validated errors in a heatmap.
plot(cvfit)

# Extract the estimates at "lambda.min" that gives the minimum cross-validated error.
Beta_hat <- cvfit$est.min$Beta
Theta_hat <- cvfit$est.min$Theta

# Make predictions of response values on the test set.
newy <- predict(cvfit, newx = sim.dat$X[tst, ], s = "lambda.min")

Learn more

See the vignette for more detailed information.

vignette("missoNet")

References

Metadata

Version

1.2.0

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows