WeibullAFTFitter

class lifelines.fitters.weibull_aft_fitter.WeibullAFTFitter(alpha: float = 0.05, penalizer: float = 0.0, l1_ratio: float = 0.0, fit_intercept: bool = True, model_ancillary: bool = False)

This class implements a Weibull AFT model. The model has parameterized form, with \(\lambda(x) = \exp\left(\beta_0 + \beta_1x_1 + ... + \beta_n x_n \right)\), and optionally, \(\rho(y) = \exp\left(\alpha_0 + \alpha_1 y_1 + ... + \alpha_m y_m \right)\),

\[S(t; x, y) = \exp\left(-\left(\frac{t}{\lambda(x)}\right)^{\rho(y)}\right),\]

With no covariates, the Weibull model’s parameters has the following interpretations: The \(\lambda\) (scale) parameter has an applicable interpretation: it represent the time when 37% of the population has died. The \(\rho\) (shape) parameter controls if the cumulative hazard (see below) is convex or concave, representing accelerating or decelerating hazards.

The cumulative hazard rate is

\[H(t; x, y) = \left(\frac{t}{\lambda(x)} \right)^{\rho(y)},\]

After calling the .fit method, you have access to properties like: params_, print_summary(). A summary of the fit is available with the method print_summary().

Parameters:
  • alpha (float, optional (default=0.05)) – the level in the confidence intervals.

  • fit_intercept (boolean, optional (default=True)) – Allow lifelines to add an intercept column of 1s to df, and ancillary if applicable.

  • penalizer (float or array, optional (default=0.0)) – the penalizer coefficient to the size of the coefficients. See l1_ratio. Must be equal to or greater than 0. Alternatively, penalizer is an array equal in size to the number of parameters, with penalty coefficients for specific variables. For example, penalizer=0.01 * np.ones(p) is the same as penalizer=0.01

  • l1_ratio (float, optional (default=0.0)) – how much of the penalizer should be attributed to an l1 penalty (otherwise an l2 penalty). The penalty function looks like penalizer * l1_ratio * ||w||_1 + 0.5 * penalizer * (1 - l1_ratio) * ||w||^2_2

  • model_ancillary (optional (default=False)) – set the model instance to always model the ancillary parameter with the supplied Dataframe. This is useful for grid-search optimization.

params_

The estimated coefficients

Type:

DataFrame

confidence_intervals_

The lower and upper confidence intervals for the coefficients

Type:

DataFrame

durations

The event_observed variable provided

Type:

Series

event_observed

The event_observed variable provided

Type:

Series

weights

The event_observed variable provided

Type:

Series

variance_matrix_

The variance matrix of the coefficients

Type:

DataFrame

standard_errors_

the standard errors of the estimates

Type:

Series

score_

the concordance index of the model.

Type:

float

predict_expectation(df: DataFrame, ancillary: DataFrame | None = None) Series

Predict the expectation of lifetimes, \(E[T | x]\).

Parameters:
  • df (DataFrame) – a (n,d) DataFrame. If a DataFrame, columns can be in any order. If a numpy array, columns must be in the same order as the training data.

  • ancillary (DataFrame, optional) – a (n,d) DataFrame. If a DataFrame, columns can be in any order. If a numpy array, columns must be in the same order as the training data.

Returns:

the expected lifetimes for the individuals.

Return type:

DataFrame

See also

predict_median, predict_percentile

predict_percentile(df: DataFrame, *, ancillary: DataFrame | None = None, p: float = 0.5, conditional_after: array | None = None) Series

Returns the median lifetimes for the individuals, by default. If the survival curve of an individual does not cross 0.5, then the result is infinity. http://stats.stackexchange.com/questions/102986/percentile-loss-functions

Parameters:
  • df (DataFrame) – a (n,d) DataFrame. If a DataFrame, columns can be in any order. If a numpy array, columns must be in the same order as the training data.

  • ancillary (DataFrame, optional) – a (n,d) DataFrame. If a DataFrame, columns can be in any order. If a numpy array, columns must be in the same order as the training data.

  • p (float, optional (default=0.5)) – the percentile, must be between 0 and 1.

Returns:

percentiles

Return type:

DataFrame

See also

predict_median, predict_expectation