Automating Assumption Checks for Regression Models
Features • Download • Usage • Motivation • Contributing • Upcoming
Features
StatsAssume automates the assumption checks of regression models (e.g., linear and logistic regression) on your data and displays the results in an elegant dashboard.
-
Automatically detects regression task (and relevant assumption checks) based on the target variable of dataset.
-
Automatically executes statistical tests and visual plots of assumption checks relevant to the regression task.
-
Generates clear visual output of results in a beautiful dashboard (built on Jupyter-Dash).
-
Displays insightful information on assumption concepts and possible fixes for assumption violations.
-
Able to automatically encode categorical variables to create dataset suitable for regression modelling (unless specified otherwise).
Download
pip install statsassume
Usage
Quickstart
from statsassume import Check
from statsassume.datasets import load_data
df = load_data('Fish_processed') # Get toy dataset (pre-processed)
assume = Check(df, target='Weight') # Initiate Check class and define target variable
assume.report() # Run assumption checks and generate dashboard report
NOTE: Data should ideally be pre-processed before running StatsAssume assumption checks.
Toy datasets available in StatsAssume can be found HERE
Comprehensive Usage
- While pre-processing should ideally be performed prior, StatsAssume comes with automatic encoding of categorical variables so that we can quickly commence model runs and assumption checks
- Here's how to put the
Checkclass (core object of StatsAssume) to its best use:
df = load_data('Fish') # Get toy dataset (raw)
assume = Check(df=df,
target='Weight',
task='linear regression',
predictors=['Height', 'Width', 'Length1', 'Species'],
keep=True,
categorical_features=['Species'],
categorical_encoder='ohe',
mode='inline')
Attributes
-
df: pd.DataFrame
Dataset (in pandas DataFrame format) -
target: str
Column name of target (dependent) variable -
task: str
Type of regression task to be performed. Options include: 'linear regression'(More tasks to come soon). If None specified, task will be automatically determined based ontargetvariable. -
predictors: list
List of column names of predictor (independent) features. If None specified, all columns other thantargetwill be regarded as predictors -
keep: bool
If True, variables inpredictorslist will be kept as predictor variables, and other non-target variables will be dropped. If False, variables inpredictorslist will be dropped, and other non-target variables will be retained. Default is True. -
categorical_features: list
List of column names deemed categorical, so that appropriate encoding can be performed. If None specified, the categorical variables will be automatically detected and encoded into numerical format for regression modelling. Default is None. -
categorical_encoding: str
Type of encoding technique to be performed on categorical variables. Options include: ohe (i.e. one-hot encoding) and ord (i.e. ordinal encoding). Default is ohe. -
mode: str
Type of display for dashboard report. Options include inline (displayed as output directly in Jupyter notebook), external (displayed in a new full-screen browser tab), or jupyterlab (displayed in separate tab right inside JupyterLab). Default is inline.
Notes
- Only
dfandtargetattributes are compulsory
Motivation
- Tedious to perform assumption checks manually
- Lack of rigour and consistency in references and notebooks online
Contributing
- Have a look at the existing Issues and Pull Requests that you would like to help with.
- Clone repo and create a new branch:
$ git checkout https://github.com/kennethleungty/statsassume -b name_of_new_branch. - Make changes and test
- Submit Pull Request with comprehensive description of changes
If you would like to request a feature or report a bug, please create a GitHub Issue.
Upcoming
- Assumption checks for Logistic Regression (meanwhile, take a look at this article on logistic regression assumptions)
Release files for statsassume 0.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| statsassume-0.0.5.tar.gz | 26.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| statsassume-0.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 55.8 kB
Release files / statsassume-0.0.5.tar.gz
| Download URL | statsassume-0.0.5.tar.gz |
|---|---|
| Size | 26.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bf8e6d4d3f343a539bf4f95ca281773224d9448c7e4eee05076c9b97178214f0
|
|
BLAKE2b-256 checksum How to use checksums |
dc58422e611364805136784f82ec8d14e59cc06984e8f8ca2329e62c842f97a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.7
|
Release files / statsassume-0.0.5-py3-none-any.whl
| Download URL | statsassume-0.0.5-py3-none-any.whl |
|---|---|
| Size | 29.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
91ecf3b8a8eee16d1e40a9d5e0c8846c6f8d420b07d553d9be67323e7453dc27
|
|
BLAKE2b-256 checksum How to use checksums |
a4553bf9566f24c0670b092ab20b18373a0f03ea0027dfb6eed3a4b7934bf2f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.7
|