Survival analysis in Python, including Kaplan Meier, Nelson Aalen and regression
Project description
What is survival analysis and why should I learn it? Survival analysis was originally developed and applied heavily by the actuarial and medical community. Its purpose was to answer why do events occur now versus later under uncertainty (where events might refer to deaths, disease remission, etc.). This is great for researchers who are interested in measuring lifetimes: they can answer questions like what factors might influence deaths?
But outside of medicine and actuarial science, there are many other interesting and exciting applications of this lesser-known technique, for example:
- SaaS providers are interested in measuring customer lifetimes, or time to first behaviours
- sociologists are interested in measuring political parties' lifetimes, or relationships, or marriages
- analysing Godwin's law in Reddit comments
- A/B tests to determine how long it takes different groups to perform an action.
lifelines is a pure Python implementation of the best parts of survival analysis. We'd love to hear if you are using lifelines, please leave an Issue and let us know your thoughts on the library.
Installation:
You can install lifelines using
pip install lifelines
Or getting the bleeding edge version with:
pip install --upgrade --no-deps git+https://github.com/CamDavidsonPilon/lifelines.git
from the command line.
Installation Issues?
See the common problems/solutions for installing lifelines.
Running the tests
You can optionally run the test suite after install with
py.test
lifelines Documentation and an intro to survival analysis
If you are new to survival analysis, wondering why it is useful, or are interested in lifelines examples, API, and syntax, please check out the Documentation and Tutorials page
Example:
from lifelines import KaplanMeierFitter
durations = [11, 74, 71, 76, 28, 92, 89, 48, 90, 39, 63, 36, 54, 64, 34, 73, 94, 37, 56, 76]
event_observed = [True, True, False, True, True, True, True, False, False, True, True,
True, True, True, True, True, False, True, False, True]
kmf = KaplanMeierFitter()
kmf.fit(durations, event_observed)
kmf.plot()
Contacting & troubleshooting
- There is a Gitter channel available.
- Some users have posted common questions at stats.stackexchange.com
- creating an issue in the Github repository.
Roadmap
You can find the roadmap for lifelines here.
Development
Setting up a lifelines development environment
- From the root directory of
lifelines
activate your virtual environment (if you plan to use one). - Install the development requirements and
pre-commit
hooks. If you are on Mac, Linux, or WindowsWSL
you can use the providedMakefile
. Just typemake
into the console and you're ready to start developing.
Formatting
lifelines
uses the black
python formatter.
There are 3 different ways to format your code.
- Use the
Makefile
.make format
- Call
black
directly and pass the correct line length.black . -l 120
- Have you code formatted automatically during commit with the
pre-commit
hook.- stage and commit your unformatted changes:
git commit -m "your_commit_message"
- Code that needs to be formatted will "fail" the commit hooks and be formatted for you.
- Stage the newly formatted python code:
git add *.py
- Recall your original commit command and commit again:
git commit -m "your_commit_message"
- stage and commit your unformatted changes:
Citing lifelines
You can use this badge below to generate a DOI and reference text for the latest related version of lifelines:
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 Distributions
File details
Details for the file lifelines-0.16.1.tar.gz
.
File metadata
- Download URL: lifelines-0.16.1.tar.gz
- Upload date:
- Size: 215.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f1c6f263af66d7160c4bbc9e3651923d4d2b3c7c67f19c79c11c55b19fd768b1 |
|
MD5 | ad0c1eeee5e926f05164d4b2717ceada |
|
BLAKE2b-256 | 972e7b03ee12e684f2c568990b432ccd4d66793a9f68a90d695620144d83f6f5 |
File details
Details for the file lifelines-0.16.1-py3-none-any.whl
.
File metadata
- Download URL: lifelines-0.16.1-py3-none-any.whl
- Upload date:
- Size: 242.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38264f31ae0dfd7851cd62000dc4847e90e7a5c3bf96ffee52ea7a02737c22e1 |
|
MD5 | 6e82c3d78d4134b0f2d74ecfba080b24 |
|
BLAKE2b-256 | 57c83dd225d32f605b05410075bf316b7e3b1ddf2342277b9cf8def1890fb27d |
File details
Details for the file lifelines-0.16.1-py2-none-any.whl
.
File metadata
- Download URL: lifelines-0.16.1-py2-none-any.whl
- Upload date:
- Size: 242.0 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b7b50962083b928ad1168ebc54db3af403f76da120f62cbf5f39d9e1543a5cb |
|
MD5 | 3fb7dfbf66ff85996fd475fb72d64e65 |
|
BLAKE2b-256 | 09578888f875630bc514477dc53c166beb2aa7be459d51cd2dfb54db9c5ab8dc |