Skip to main content

Linear Regression for data set with correlated or uncorrelated uncertainties in both axes.

Project description

CEREsFit

DOI pypi tests codecov pre-commit.ci status License: MIT

The goal of CEREsFit (Correlated Errors Regression Estimate Fit) is to provide a python package that allows to calculate linear regressions on data sets with correlated uncertainties. The calculations follow the methodology published by Mahon (1996). Typos and errors that were made in that work have been corrected. A method to allow calculating a linear regression through a fixed point, avoiding previously made errors, is also provided.

Details on CEREsFit can be found in Stephan and Trappitsch (2023).

Installation

The package can be installed from pypi via:

pip install ceresfit

Usage

Below is an example on how to use the package.

>>> import numpy as np
>>> from ceresfit import LinReg

>>>  # some data
>>> xdata = np.array([1, 2, 3.1, 4.9])
>>> ydata = np.array([1.1, 1.9, 3, 5.5])

>>>  # some uncertainty and correlation
>>> xunc = 0.05 * xdata
>>> yunc = 0.073 * ydata
>>> rho = np.zeros_like(xdata) + 0.5

>>>  # do regression
>>> my_reg = LinReg(xdata, xunc, ydata, yunc, rho)

>>>  # print out the parameters and their uncertainties
>>> my_reg.slope
(0.9983613298400896, 0.06844666435449052)
>>> my_reg.intercept
(0.05545398718611372, 0.11812746374874884)
>>> my_reg.mswd
2.5105964767071143

Detailed example on how to use the class for fitting and plotting the results can be found in these Jupyter notebooks.

Development & Contributing

This project is developed using Rye. After cloning, you can simply run

rye sync

in the project folder and you should be good to go.

Code auto formatting is implemented using pre-commit hooks.

For local formatting and linting, please use

rye fmt
rye lint

For running tests, use:

rye test
rye run test_docs

The first of these commands runs pytest, the second checks the documentation tests using xdoctest.

Please feel free to raise issues on GitHub and open pull requests if you have a feature to be added. Tests and adequate docstrings should be provided along with your new code.

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

ceresfit-0.3.2.tar.gz (205.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ceresfit-0.3.2-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file ceresfit-0.3.2.tar.gz.

File metadata

  • Download URL: ceresfit-0.3.2.tar.gz
  • Upload date:
  • Size: 205.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ceresfit-0.3.2.tar.gz
Algorithm Hash digest
SHA256 4d85d9b783611429d9906d4aa844ccc42e2f2619cb9aedd6b0a0ce61b62ef97e
MD5 8a117f5520a33952d10d1c710d1bb3f1
BLAKE2b-256 db6632c4b67dc499d8ed810378701ddaed870d467794cda8973a10f71509a599

See more details on using hashes here.

File details

Details for the file ceresfit-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: ceresfit-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ceresfit-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 93af059acbd30fbb005e63108bde72f632fab8b15e82875b345bdc17d5da8578
MD5 29b2680cd747c12f3c8c80d21d2c7124
BLAKE2b-256 80e7ec23ff1160ce63d11519b461871d115c23404b5ff644c7c89f9d89fb7bf4

See more details on using hashes here.

Supported by

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