- adding
robust
params toCoxPHFitter
'sfit
. This enables atleast i) using non-integer weights in the model (these could be sampling weights like IPTW), and ii) mis-specified models (ex: non-proportional hazards). Under the hood it's a sandwich estimator. This does not handle ties, so if there are high number of ties, results may significantly differ from other software. standard_errors_
is now a property on fittedCoxPHFitter
which describes the standard errors of the coefficients.variance_matrix_
is now a property on fittedCoxPHFitter
which describes the variance matrix of the coefficients.- new criteria for convergence of
CoxPHFitter
andCoxTimeVaryingFitter
called the Newton-decrement. Tests show it is as accurate (w.r.t to previous coefficients) and typically shaves off a single step, resulting in generally faster convergence. See https://www.cs.cmu.edu/~pradeepr/convexopt/Lecture_Slides/Newton_methods.pdf. Details about the Newton-decrement are added to theshow_progress
statements. - Minimum suppport for scipy is 1.0
- Convergence errors in models that use Newton-Rhapson methods now throw a
ConvergenceError
, instead of aValueError
(the former is a subclass of the latter, however). AalenAdditiveModel
raisesConvergenceWarning
instead of printing a warning.KaplanMeierFitter
now has a cumulative plot option. Examplekmf.plot(invert_y_axis=True)
- a
weights_col
option has been added toCoxTimeVaryingFitter
that allows for time-varying weights. WeibullFitter
has a newshow_progress
param and additional information if the convergence fails.CoxPHFitter
,ExponentialFitter
,WeibullFitter
andCoxTimeVaryFitter
methodprint_summary
is updated with new fields.WeibullFitter
has renamed the incorrect_jacobian
to_hessian_
.variance_matrix_
is now a property on fittedWeibullFitter
which describes the variance matrix of the parameters.- The default
WeibullFitter().timeline
has changed from integers between the min and max duration to n floats between the max and min durations, where n is the number of observations. - Performance improvements for
CoxPHFitter
(~20% faster) - Performance improvements for
CoxTimeVaryingFitter
(~100% faster) - In Python3, Univariate models are now serialisable with
pickle
. Thanks @dwilson1988 for the contribution. For Python2,dill
is still the preferred method. baseline_cumulative_hazard_
(and derivatives of that) onCoxPHFitter
now correctly incorporate theweights_col
.- Fixed a bug in
KaplanMeierFitter
when late entry times lined up with death events. Thanks @pzivich - Adding
cluster_col
argument toCoxPHFitter
so users can specify groups of subjects/rows that may be correlated. - Shifting the "signficance codes" for p-values down an order of magnitude. (Example, p-values between 0.1 and 0.05 are not noted at all and p-values between 0.05 and 0.1 are noted with
.
, etc.). This deviates with how they are presented in other software. There is an argument to be made to remove p-values from lifelines altogether (become the changes you want to see in the world lol), but I worry that people could compute the p-values by hand incorrectly, a worse outcome I think. So, this is my stance. P-values between 0.1 and 0.05 offer very little information, so they are removed. There is a growing movement in statistics to shift "signficant" findings to p-values less than 0.01 anyways. - New fitter for cumulative incidence of multiple risks
AalenJohansenFitter
. Thanks @pzivich! See "Methodologic Issues When Estimating Risks in Pharmacoepidemiology" for a nice overview of the model.