Metadata-Version: 2.1
Name: analysistoolbox
Version: 0.0.3
Summary: A collection tools in Python for data collection and processing, statisitics, analytics, and intelligence analysis.
Home-page: https://github.com/KyleProtho/AnalysisToolBox/tree/master/Python/analysistoolbox
Author: Kyle Protho
Author-email: kyletprotho@gmail.com
License: GNU GPLv3
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: beautifulsoup4
Requires-Dist: folium
Requires-Dist: fuzzywuzzy
Requires-Dist: geopandas
Requires-Dist: Jinja2
Requires-Dist: Levenshtein
Requires-Dist: lida
Requires-Dist: lifelines
Requires-Dist: mapclassify
Requires-Dist: matplotlib
Requires-Dist: mlxtend
Requires-Dist: numpy
Requires-Dist: openai
Requires-Dist: pandas
Requires-Dist: pygris
Requires-Dist: PyPDF2
Requires-Dist: python-dotenv
Requires-Dist: pywin32
Requires-Dist: requests
Requires-Dist: scipy
Requires-Dist: seaborn
Requires-Dist: scikit-learn
Requires-Dist: statsmodels
Requires-Dist: sympy
Requires-Dist: tableone
Requires-Dist: yellowbrick
Provides-Extra: dev
Requires-Dist: pytest >=3.7 ; extra == 'dev'
Requires-Dist: twine >=4.0.2 ; extra == 'dev'

# Analysis Tool Box

## Description

Analysis Tool Box (i.e. "analysistoolbox") is a collection of tools in Python for data collection and processing, statisitics, analytics, and intelligence analysis.

## Getting Started

To install the package, run the following command in the root directory of the project:

```bash
pip install analysistoolbox
```

## Usage

There are many modules in the analysistoolbox package, each with their own functions. The following is a list of the modules:

* calculus
* data_collection
* data_processing
* descriptive_analytics
* file_management
* hypothesis_testing
* linear_algebra
* statistics
* visualizations

### Calculus

#### FindDerivative

The **FindDerivative** function calculates the derivative of a given function. It uses the sympy library, a Python library for symbolic mathematics, to perform the differentiation. The function also has the capability to print the original function and its derivative, return the derivative function, and plot both the original function and its derivative.

```python
# Load the FindDerivative function from the Calculus submodule
from analysistoolbox.calculus import FindDerivative
import sympy

# Define a symbolic variable
x = sympy.symbols('x')

# Define a function
f_of_x = x**3 + 2*x**2 + 3*x + 4

# Use the FindDerivative function
FindDerivative(
    f_of_x, 
    print_functions=True, 
    return_derivative_function=True, 
    plot_functions=True
)
```

#### FindLimitOfFunction

The **FindLimitOfFunction** function finds the limit of a function at a specific point and optionally plot the function and its tangent line at that point. The script uses the matplotlib and numpy libraries for plotting and numerical operations respectively.

```python
# Import the necessary libraries
import numpy as np
from analysistoolbox.calculus import FindLimitOfFunction

# Define a function
f_of_x = lambda x: np.sin(x) / x

# Use the FindLimitOfFunction function
FindLimitOfFunction(
    f_of_x, 
    point=0, 
    step=0.01, 
    plot_function=True, 
    x_minimum=-10, 
    x_maximum=10, 
    n=1000, 
    tangent_line_window=1
)
```

#### FindMinimumSquareLoss

The **FindMinimumSquareLoss** function calculates the minimum square loss between observed and predicted values. This function is often used in machine learning and statistics to measure the average squared difference between the actual and predicted outcomes.

```python
# Import the necessary libraries
from analysistoolbox.calculus import FindMinimumSquareLoss

# Define observed and predicted values
observed_values = [1, 2, 3, 4, 5]
predicted_values = [1.1, 1.9, 3.2, 3.7, 5.1]

# Use the FindMinimumSquareLoss function
minimum_square_loss = FindMinimumSquareLoss(
    observed_values, 
    predicted_values, 
    show_plot=True
)

print(f"The minimum square loss is: {minimum_square_loss}")
```

#### PlotFunction

The **PlotFunction** function plots a mathematical function of x. It takes a lambda function as input and allows for customization of the plot.

```python
# Import the necessary libraries
from analysistoolbox.calculus import PlotFunction

# Define the function to plot
f_of_x = lambda x: x**2

# Plot the function with default settings
PlotFunction(f_of_x)
```

Contributing guidelines: How can people contribute to the project?
License: What license is the project distributed under?
