This package aims to compute the overlap integral between two probability density functions.
Project description
Overlap Integral Project
This project focuses on calculating the overlap integral between two probability density functions (PDFs). The overlap integral is a measure of similarity between two distributions and is used in various fields such as statistics, data science, etc. The code and data files in this project are designed to perform these calculations efficiently and accurately.
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
metrics = OverlapIntegral()
# Generate or load data
data1 = np.random.normal(loc=30, scale=1, size=1000)
data2 = np.random.normal(loc=30, scale=1.2, size=1000)
# Choose PDF method: 'kde' or 'gaussian'
pdf_method = 'gaussian'
# Get PDFs
pdf_1 = metrics.get_pdf(data1, method=pdf_method)
pdf_2 = metrics.get_pdf(data2, method=pdf_method)
# 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 = metrics.overlap_integral(pdf_1, pdf_2, lower_limit, upper_limit)
print(f"Overlap integral: {integral}")
print(f"Estimated error: {error}")
# Plot distributions
fig = metrics.plot_distributions(pdf_1, pdf_2, integral, error, x_range=(lower_limit, upper_limit))
fig.write_image("overlap_plot.png")
##fig.show()
if __name__ == '__main__':
main()
```
Requirements
- Python 3.11 or higher
- NumPy
- SciPy
- Plotly
- Kaleido
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file overlap_integral-0.1.4.tar.gz.
File metadata
- Download URL: overlap_integral-0.1.4.tar.gz
- Upload date:
- Size: 3.5 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d808112f6d20c97ad1fb4d66db6284b88fb4fda3665e5e40da14ba368240824f
|
|
| MD5 |
c0a64c1173c9b0797d1586967ff04523
|
|
| BLAKE2b-256 |
ee83824660a977671005742c6b9d894d3a2096df01e26d648779acaacc3b5250
|
File details
Details for the file overlap_integral-0.1.4-py3-none-any.whl.
File metadata
- Download URL: overlap_integral-0.1.4-py3-none-any.whl
- Upload date:
- Size: 4.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f59e78112ef4da433a1479f4775b750ced67fee73009a9b04a5b85309584734
|
|
| MD5 |
bdceea4dce4504c4ad28af88b3524be7
|
|
| BLAKE2b-256 |
28f97973c7ebb4acd6393aaf2ac026b838b95bfe2f0e934225ef9a1871e48d48
|