class reliability.Fitters.Fit_Weibull_DS(failures=None, right_censored=None, show_probability_plot=True, print_results=True, CI=0.95, optimizer=None, downsample_scatterplot=True, **kwargs)

Fits a Weibull Defective Subpopulation (DS) distribution to the data provided. This is a 3 parameter distribution (alpha, beta, DS).

  • failures (array, list) – An array or list of the failure data. There must be at least 2 failures.

  • right_censored (array, list, optional) – The right censored data. Optional input. Default = None.

  • show_probability_plot (bool, optional) – True or False. Default = True

  • print_results (bool, optional) – Prints a dataframe of the point estimate, standard error, Lower CI and Upper CI for each parameter. True or False. Default = True

  • optimizer (str, optional) – The optimization algorithm used to find the solution. Must be either ‘TNC’, ‘L-BFGS-B’, ‘nelder-mead’, or ‘powell’. Specifying the optimizer will result in that optimizer being used. To use all of these specify ‘best’ and the best result will be returned. The default behaviour is to try each optimizer in order (‘TNC’, ‘L-BFGS-B’, ‘nelder-mead’, and ‘powell’) and stop once one of the optimizers finds a solution. If the optimizer fails, the initial guess will be returned. For more detail see the documentation.

  • CI (float, optional) – confidence interval for estimating confidence limits on parameters. Must be between 0 and 1. Default is 0.95 for 95% CI.

  • downsample_scatterplot (bool, int, optional) – If True or None, and there are over 1000 points, then the scatterplot will be downsampled by a factor. The default downsample factor will seek to produce between 500 and 1000 points. If a number is specified, it will be used as the downsample factor. Default is True. This functionality makes plotting faster when there are very large numbers of points. It only affects the scatterplot not the calculations.

  • kwargs – Plotting keywords that are passed directly to matplotlib for the probability plot (e.g. color, label, linestyle)


  • alpha (float) – the fitted Weibull_DS alpha parameter

  • beta (float) – the fitted Weibull_DS beta parameter

  • DS (float) – the fitted Weibull_DS DS parameter

  • alpha_SE (float) – the standard error (sqrt(variance)) of the parameter

  • beta_SE (float) – the standard error (sqrt(variance)) of the parameter

  • DS_SE (float) – the standard error (sqrt(variance)) of the parameter

  • alpha_upper (float) – the upper CI estimate of the parameter

  • alpha_lower (float) – the lower CI estimate of the parameter

  • beta_upper (float) – the upper CI estimate of the parameter

  • beta_lower (float) – the lower CI estimate of the parameter

  • DS_upper (float) – the upper CI estimate of the parameter

  • DS_lower (float) – the lower CI estimate of the parameter

  • loglik (float) – Log Likelihood (as used in Minitab and Reliasoft)

  • loglik2 (float) – LogLikelihood*-2 (as used in JMP Pro)

  • AICc (float) – Akaike Information Criterion

  • BIC (float) – Bayesian Information Criterion

  • AD (float) – the Anderson Darling (corrected) statistic (as reported by Minitab)

  • distribution (object) – a DSZI_Model object with the parameters of the fitted distribution

  • results (dataframe) – a pandas dataframe of the results (point estimate, standard error, lower CI and upper CI for each parameter)

  • goodness_of_fit (dataframe) – a pandas dataframe of the goodness of fit values (Log-likelihood, AICc, BIC, AD).

  • probability_plot (object) – the axes handle for the probability plot. This is only returned if show_probability_plot = True


If the fitting process encounters a problem a warning will be printed. This may be caused by the chosen distribution being a very poor fit to the data or the data being heavily censored. If a warning is printed, consider trying a different optimizer.

static LL(params, T_f, T_rc)
static logR(t, a, b, ds)
static logf(t, a, b, ds)