Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dirmeier/netreg
:bar_chart: Generalized linear regression models with network-regularization in R.
https://github.com/dirmeier/netreg
graphs linear-regression network-regularization networks r regression regularization tensorflow
Last synced: 11 days ago
JSON representation
:bar_chart: Generalized linear regression models with network-regularization in R.
- Host: GitHub
- URL: https://github.com/dirmeier/netreg
- Owner: dirmeier
- License: other
- Created: 2016-07-12T18:52:42.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-07-09T15:45:42.000Z (4 months ago)
- Last Synced: 2024-10-13T00:13:04.412Z (26 days ago)
- Topics: graphs, linear-regression, network-regularization, networks, r, regression, regularization, tensorflow
- Language: R
- Homepage: https://dirmeier.github.io/netReg/
- Size: 38.5 MB
- Stars: 14
- Watchers: 3
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# netReg
[![Project Status](http://www.repostatus.org/badges/latest/unsupported.svg)](http://www.repostatus.org/#unsupported)
Generalized linear regression models with network-regularization in `R`. Now with `TensorFlow`.
## About
> [!NOTE]
> ⚠️ The package is no longer actively maintained or developed.Modelling dependencies using linear regression models is often complicated when the
analysed data-sets are high-dimensional and less observations than variables
are available (n << p). `netReg` implements generalized linear models
that utilize network penalties for regularization. Network regularization uses graphs
or trees to incorporate information about interactions of covariables,
or responses, into the loss function of a GLM. Ideally this allows better (i.e., lower variance)
estimation of regression coefficients.For instance, in `R`, you could fit a network-regularized model like that:
```r
> library(netReg)> X <- matrix(rnorm(100 * 10), 100)
> Y <- matrix(rnorm(100 * 10), 100)> G.X <- abs(rWishart(1, 10, diag(10))[,,1])
> G.Y <- abs(rWishart(1, 10, diag(10))[,,1])> fit <- edgenet(X, Y, G.X, G.Y)
> summary(fit)
#>call:
#>edgenet(X = X, Y = Y, G.X = G.X, G.Y = G.Y)#>parameters:
#>lambda psigx psigy
#> 1 1 1#>family: gaussian
#>link: identity#>-> call coef(x) for coefficients
```From version `v1.9.0` on, we use `TensorFlow`, instead of custom `C++` and `Dlib`, for
estimation of regression coefficients replacing a custom *cyclic coordinate descent*. This allowed deleting of major parts of the code base.
`netReg` still uses some `RcppArmadillo` for some matrix algebra.In order to estimate the optimal hyperparameters, i.e., the regularization parameters
of the network models, we use Powell's BOBYQA algorithm in a standard cross-validation framework.For more details, please check out the respective vignettes of the single models.
## Installation
Before installing the package, make sure to have these Python dependencies installed:
* `tensorflow>=2.2.0`,
* `tensorflow-probabiltiy>=0.10.0`The easiest way is probably to install `TensorFlow` from `R`
```{r}
install.packages(c("tensorflow", "tfprobability"))
tensorflow::install_tensorflow(extra_packages = "tensorflow-probability")
```Then install `netReg` by downloading the latest [release](https://github.com/dirmeier/netReg/releases), for instance
```{r}
remotes::install_github("dirmeier/[email protected]")
```## Documentation
* Load the package using `library(netReg)`. We provide vignettes for the package that can be called using: `vignette(package="netReg")`.
* You can also use the online [vignette](https://dirmeier.github.io/netReg).## Citation
If `netReg` was useful for you or your work, it would be great if you cited it like this:
```
@article{,
title={netReg: network-regularized linear models for biological association studies},
author={Dirmeier, Simon and Fuchs, Christiane and Mueller, Nikola S and Theis, Fabian J},
journal={Bioinformatics},
volume={34},
number={5},
pages={896--898},
year={2017},
publisher={Oxford University Press}
}```
## Author
Simon Dirmeier sfyrbnd @ pm me