Metadata-Version: 2.4
Name: fisher
Version: 0.1.15
Summary: Fast Fisher's Exact Test
Home-page: http://github.com/brentp/fishers_exact_test
Author: Haibao Tang, Brent Pedersen
Author-email: bpederse@gmail.com
License: BSD
Keywords: statistics cython
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Scientific/Engineering
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: summary

# Fisher\'s Exact Test

[![Package](https://github.com/brentp/fishers_exact_test/actions/workflows/package.yml/badge.svg)](https://github.com/brentp/fishers_exact_test/actions/workflows/package.yml)
[![image](https://img.shields.io/pypi/v/fisher.svg)](https://pypi.org/project/fisher)

Simple, fast implementation of [Fisher\'s exact
test](http://en.wikipedia.org/wiki/Fisher's_exact_test). For example,
for the following table:

|              | Having the property | Not having the property |
| ------------ | ------------------- | ----------------------- |
| Selected     | 12                  | 5                       |
| Not selected | 29                  | 2                       |

Perhaps we are interested in whether there is any difference of property
in selected vs. non-selected groups, then we can do the Fisher\'s exact
test.

## Installation

Within this folder :

    git clone git://github.com/brentp/fishers_exact_test.git
    pip install .

From PyPI :

    pip install fisher

Or install the development version :

    pip install git+git://github.com/brentp/fishers_exact_test.git

## Usage

`fisher.pvalue()` accepts 4 values corresponding to the 2-by-2
contingency table, returns an object with attributes for left_tail,
right_tail, and two_tail p-values :

    >>> from fisher import pvalue
    >>> mat = [[12, 5], [29, 2]]
    >>> p = pvalue(12, 5, 29, 2)
    >>> p.left_tail, p.right_tail, p.two_tail  # doctest: +NORMALIZE_WHITESPACE, +ELLIPSIS
    (0.04455473783507..., 0.994525206021..., 0.0802685520741...)

## Benchmark

A simple benchmark that calls the Fisher\'s exact test 1000 times (in
`scripts/rfisher.py`):

    calling python fisher...
    iterations/sec: 3000.62526381
    calling rpy fisher...
    iterations/sec: 289.225902364
    calling R directly...
    iterations/sec: 244.36542276

So the cython fisher is up to 10 times faster than rpy or R version.
