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 survival analysis. For example:
- SaaS providers are interested in measuring customer lifetimes, or time to first behaviours
- inventory stockout is a censoring event for true "demand" of a good.
- 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.
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.
See the common problems/solutions for installing lifelines.
You can optionally run the test suite after install with
py.test
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()
- There is a Gitter channel available.
- Some users have posted common questions at stats.stackexchange.com
- creating an issue in the Github repository.
You can find the roadmap for lifelines here.
- 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.
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:
You can use this badge below to generate a DOI and reference text for the latest related version of lifelines: