Skip to main content

This package aims to compute the overlap integral between two probability density functions.

Project description

Overlap Integral Package

PyPI version

This project focuses on calculating the overlap integral between two probability density functions (PDFs):

Overlap Integral

The overlap integral, also known as coefficient of overlap, is a measure of similarity between two PDFs (f(x) and g(x)) and is used in various fields such as statistics, data science, etc. Additionally, it corresponds to the common area under the two PDFs.

  • Kernel Density Estimation (KDE): Estimate the PDFs from data using KDE, a non-parametric approach that builds a smooth probability density function based on observed data.

  • Gaussian Distribution: Alternatively, use the parameters (mean mu and standard deviation sigma) of an analytical Gaussian distribution to generate a PDF. This method is ideal when you know or assume that the data follows a normal distribution.

  • Overlap Integral Calculation: The package computes the overlap integral, which measures the common area under two PDFs. This can be used to assess the similarity between two distributions.

Project Structure

  • src/overlap_integral/: Contains the core Python code for calculating the overlap integral.
  • tests/: Includes the test scripts to validate the functionality of the code.
  • README.md: Provides an overview and instructions for the project.
  • pyproject.toml: Configuration file for the project dependencies and metadata.

Installation

To install the package using pip, run the following command:

pip install overlap-integral

Importing the Class: Import the OverlapIntegral class in your Python script.

```python
from overlap_integral.overlap_integral import OverlapIntegral
```

Usage Example: Provide a simple example to demonstrate how to use the OverlapIntegral class.

```python
           
        import numpy as np
        from overlap_integral.overlap_integral import OverlapIntegral

        import plotly.io as pio
        pio.kaleido.scope.default_format = "png"


        def main():
            np.random.seed(3)  # Set random seed for reproducibility

            overlap_integral_instance = OverlapIntegral()

            # Generate or load data
            data1 = np.random.normal(loc=10, scale=1, size=1000)
            data2 = np.random.normal(loc=10, scale=2, size=1000)

            # Choose PDF method: 'kde' or 'gaussian'
            function_type = 'kde'

            # Get PDFs
            pdf_1 = overlap_integral_instance.get_pdf(data1, pdf_type=function_type)
            pdf_2 = overlap_integral_instance.get_pdf(data2, pdf_type=function_type)

            # Calculate overlap integral
            lower_limit = min(np.min(data1), np.min(data2)) - 12 * max(np.std(data1), np.std(data2))
            upper_limit = max(np.max(data1), np.max(data2)) + 12 * max(np.std(data1), np.std(data2))
            integral, error = overlap_integral_instance.overlap_integral(pdf_1, pdf_2, lower_limit, upper_limit)

            print(f"Overlap integral: {integral}")
            print(f"Estimated error: {error}")

            # Plot distributions
            fig = overlap_integral_instance.plot_distributions(pdf_1, pdf_2, integral, error, x_range=(lower_limit, upper_limit))
            fig.write_image("overlap_plot.png")
            #fig.show()

            print(f"Everything worked!")

        if __name__ == '__main__':
            main()

```

Requirements

  • python >=3.12.3

Dependencies

  • numpy
  • scipy
  • plotly
  • kaleido
  • pytest

License

This project is licensed under the MIT License.

Contribution

Feel free to submit issues or pull requests. Your contributions are welcome!

Contact

For questions or suggestions, please contact kiatakimatheus@gmail.com

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

overlap_integral-0.1.8.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

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

overlap_integral-0.1.8-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file overlap_integral-0.1.8.tar.gz.

File metadata

  • Download URL: overlap_integral-0.1.8.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for overlap_integral-0.1.8.tar.gz
Algorithm Hash digest
SHA256 72cc17cfe459da0ee66ec998c055d0b93cdaccbc8a1227f6d2e011485f8fbe08
MD5 f11b453214cf9be7f8f8fd8e786a7b8f
BLAKE2b-256 6dd322ca4125fa43c6845e0d10e64c62ba88d2acb9cece8fec965d315dda1f54

See more details on using hashes here.

File details

Details for the file overlap_integral-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: overlap_integral-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for overlap_integral-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 a48f114e407145cb4baa3dde609e0635b4a73f24baa34c7b9246e7a398aa8798
MD5 8d961a2a4cfb4736c474dad558d1edd7
BLAKE2b-256 f542b294169432a549bd262d040f02d1044e4620eb640ddff05af4910218eec1

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