Skip to main content

A package for optimization solvers

Project description

elex-solver

This packages includes solvers for:

  • Ordinary least squares regression
  • Quantile regression
  • Transition matrices

Installation

Ordinary least squares

We have our own implementation of ordinary least squares in Python because this let us optimize it towards the bootstrap by storing and re-using the normal equations. This allows for significant speed up.

Quantile Regression

Since we did not find any implementations of quantile regression in Python that fit our needs, we decided to write one ourselves. At the moment this uses two libraries, the version that solves the non-regularized problem uses numpyand solves the dual based on this paper. The version that solves the regularized problem uses cvxpy and sets up the problem as a normal optimization problem. Eventually, we are planning on replacing the regularized version with the dual also.

Transition Matrices

We also have a matrix regression solver built with cvxpy. We've used this for our primary election model and analysis. The transitions it generates form the transitions displayed in our sankey diagrams.

Development

We welcome contributions to this repo. Please open a Github issue for any issues or comments you have.

Set up a virtual environment and run:

> pip install -r requirements.txt
> pip install -r requirements-dev.txt 

Precommit

To run pre-commit for linting, run:

pre-commit run --all-files

Testing

> tox

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

elex_solver-2.1.1.tar.gz (25.8 kB view details)

Uploaded Source

Built Distribution

elex_solver-2.1.1-py2.py3-none-any.whl (10.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file elex_solver-2.1.1.tar.gz.

File metadata

  • Download URL: elex_solver-2.1.1.tar.gz
  • Upload date:
  • Size: 25.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for elex_solver-2.1.1.tar.gz
Algorithm Hash digest
SHA256 75e8e986905738258136009d068b08a6a965a9bd56a4ae14ae80d7e8bb46a269
MD5 5da91355b4abfc66ae156e088cd4512b
BLAKE2b-256 19d8a0ad0127a46b971276d874e2115269b4361340d35ac2df68cc51c8d66652

See more details on using hashes here.

File details

Details for the file elex_solver-2.1.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for elex_solver-2.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e73afaef8472339c0f1932adf7c4b5af4cca7c6a565ad0a4ad48d745e9f84645
MD5 6ea11b8e736e103c64e331097c90453b
BLAKE2b-256 5286fd1b0617e11fd5fd34513fd2e297186a864371fe41af3d6f8068fb8af7c9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page