Skip to content
This repository has been archived by the owner on Apr 20, 2019. It is now read-only.
/ goglm Public archive

Generalized Linear Models for Go (golang)

Notifications You must be signed in to change notification settings

kshedden/goglm

Repository files navigation

This repository is no longer being actively developed. See here for the new version of this package.

goglm supports estimation of generalized linear models in Go.

A basic usage example is as follows:

fam := goglm.NewFamily(goglm.BinomialFamily)
// data is a dstream
glm := goglm.NewGLM(data, "Y").Family(fam).Done()
rslt := glm.Fit()
print(rslt.Summary().String())

NewFamily returns a GLM family (here it is the Binomial family), and data is a "Dstream" as defined in the dstream package. The Dstream is used to feed data to the GLM in chunks using a column-oriented storage layout. A more extensive illustration can be found in the "examples" directory.

Supported features

  • Estimation via IRLS and gonum optimizers

  • Supports many GLM families, links and variance functions

  • Supports estimation for case-weighted datasets

  • Models can be specified using formulas

  • Regularized (ridge/LASSO/elastic net) estimation

  • Offsets

  • Unit tests covering all families with their default links and variance functions, and some of the more common non-canonical links

Missing features

  • Performance assessments

  • Model diagnostics

  • Less-common GLM families (e.g. Tweedie)

  • Marginalization

  • Missing data handling

  • GEE

  • Inference for survey data

About

Generalized Linear Models for Go (golang)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages