Gumbel¶
-
class
surpyval.parametric.gumbel.
Gumbel_
(name)¶ Bases:
surpyval.parametric.parametric_fitter.ParametricFitter
-
Hf
(x, mu, sigma)¶ Cumulative hazard rate for the Gumbel Distribution:
\[H(x) = e^{\frac{x-\mu}{\sigma}}\]Parameters: - x (numpy array or scalar) – The values of the random variables at which the survival function will be calculated
- mu (numpy array like or scalar) – The location parameter of the distribution
- sigma (numpy array like or scalar) – The scale parameter of the distribution
Returns: Hf – The value(s) for the cumulative hazard rate for the Gumbel distribution.
Return type: scalar or numpy array
Examples
>>> import numpy as np >>> from surpyval import Gumbel >>> x = np.array([1, 2, 3, 4, 5]) >>> Gumbel.Hf(x, 3, 2) array([0.36787944, 0.60653066, 1. , 1.64872127, 2.71828183])
-
df
(x, mu, sigma)¶ Density function (pdf) for the Gumbel Distribution:
\[f(x) = \frac{1}{\sigma}e^{\left (\frac{x - \mu}{\sigma} - e^{\frac{x-\mu}{\sigma}} \right)}\]Parameters: - x (numpy array or scalar) – The values of the random variables at which the survival function will be calculated
- mu (numpy array like or scalar) – The location parameter of the distribution
- sigma (numpy array like or scalar) – The scale parameter of the distribution
Returns: df – The scalar value of the density of the distribution if a scalar was passed. If an array like object was passed then a numpy array is returned with the value of the density at each corresponding value in the input array.
Return type: scalar or numpy array
Examples
>>> import numpy as np >>> from surpyval import Gumbel >>> x = np.array([1, 2, 3, 4, 5]) >>> Gumbel.df(x, 3, 2) array([0.12732319, 0.16535215, 0.18393972, 0.15852096, 0.08968704])
-
ff
(x, mu, sigma)¶ CDF (or Failure) function for the Gumbel Distribution:
\[F(x) = e^{e^{-\left ( x - \mu \right )/\sigma}}\]Parameters: - x (numpy array or scalar) – The values of the random variables at which the survival function will be calculated
- mu (numpy array like or scalar) – The location parameter of the distribution
- sigma (numpy array like or scalar) – The scale parameter of the distribution
Returns: ff – The scalar value of the failure function of the distribution if a scalar was passed. If an array like object was passed then a numpy array is returned with the value of the failure function at each corresponding value in the input array.
Return type: scalar or numpy array
Examples
>>> import numpy as np >>> from surpyval import Gumbel >>> x = np.array([1, 2, 3, 4, 5]) >>> Gumbel.ff(x, 3, 2) array([0.30779937, 0.45476079, 0.63212056, 0.80770435, 0.93401196])
-
fit
(x=None, c=None, n=None, t=None, how='MLE', offset=False, zi=False, lfp=False, tl=None, tr=None, xl=None, xr=None, fixed=None, heuristic='Turnbull', init=[], rr='y', on_d_is_0=False, turnbull_estimator='Fleming-Harrington')¶ The central feature to SurPyval’s capability. This function aimed to have an API to mimic the simplicity of the scipy API. That is, to use a simple
fit()
call, with as many or as few parameters as is needed.Parameters: - x (array like, optional) – Array of observations of the random variables. If x is
None
, xl and xr must be provided. - c (array like, optional) – Array of censoring flag. -1 is left censored, 0 is observed, 1 is right censored, and 2 is intervally censored. If not provided will assume all values are observed.
- n (array like, optional) – Array of counts for each x. If data is proivded as counts, then this can be provided. If
None
will assume each observation is 1. - t (2D-array like, optional) – 2D array like of the left and right values at which the respective observation was truncated. If not provided it assumes that no truncation occurs.
- how ({'MLE', 'MPP', 'MOM', 'MSE', 'MPS'}, optional) –
Method to estimate parameters, these are:
- MLE : Maximum Likelihood Estimation
- MPP : Method of Probability Plotting
- MOM : Method of Moments
- MSE : Mean Square Error
- MPS : Maximum Product Spacing
- offset (boolean, optional) – If
True
finds the shifted distribution. If not provided assumes not a shifted distribution. Only works with distributions that are supported on the half-real line. - tl (array like or scalar, optional) – Values of left truncation for observations. If it is a scalar value assumes each observation is left truncated at the value. If an array, it is the respective ‘late entry’ of the observation
- tr (array like or scalar, optional) – Values of right truncation for observations. If it is a scalar value assumes each observation is right truncated at the value. If an array, it is the respective right truncation value for each observation
- xl (array like, optional) – Array like of the left array for 2-dimensional input of x. This is useful for data that is all
intervally censored. Must be used with the
xr
input. - xr (array like, optional) – Array like of the right array for 2-dimensional input of x. This is useful for data that is all
intervally censored. Must be used with the
xl
input. - fixed (dict, optional) – Dictionary of parameters and their values to fix. Fixes parameter by name.
- heuristic ({'"Blom", "Median", "ECDF", "Modal", "Midpoint", "Mean", "Weibull", "Benard", "Beard", "Hazen", "Gringorten", "None", "Tukey", "DPW", "Fleming-Harrington", "Kaplan-Meier", "Nelson-Aalen", "Filliben", "Larsen", "Turnbull"}) – Plotting method to use, if using the probability plotting, MPP, method.
- init (array like, optional) – initial guess of parameters. Useful if method is failing.
- rr (('y', 'x')) – The dimension on which to minimise the spacing between the line and the observation. If ‘y’ the mean square error between the line and vertical distance to each point is minimised. If ‘x’ the mean square error between the line and horizontal distance to each point is minimised.
- on_d_is_0 (boolean, optional) – For the case when using MPP and the highest value is right censored, you can choosed to
include this value into the regression analysis or not. That is, if
False
, all values where there are 0 deaths are excluded from the regression. IfTrue
all values regardless of whether there is a death or not are included in the regression. - turnbull_estimator (('Nelson-Aalen', 'Kaplan-Meier', or 'Fleming-Harrington'), str, optional) – If using the Turnbull heuristic, you can elect to use either the KM, NA, or FH estimator with the Turnbull estimates of r, and d. Defaults to FH.
Returns: model – A parametric model with the fitted parameters and methods for all functions of the distribution using the fitted parameters.
Return type: Examples
>>> from surpyval import Weibull >>> import numpy as np >>> x = Weibull.random(100, 10, 4) >>> model = Weibull.fit(x) >>> print(model) Parametric SurPyval Model ========================= Distribution : Weibull Fitted by : MLE Parameters : alpha: 10.551521182640098 beta: 3.792549834495306 >>> Weibull.fit(x, how='MPS', fixed={'alpha' : 10}) Parametric SurPyval Model ========================= Distribution : Weibull Fitted by : MPS Parameters : alpha: 10.0 beta: 3.4314657446866836 >>> Weibull.fit(xl=x-1, xr=x+1, how='MPP') Parametric SurPyval Model ========================= Distribution : Weibull Fitted by : MPP Parameters : alpha: 9.943092756713078 beta: 8.613016934518258 >>> c = np.zeros_like(x) >>> c[x > 13] = 1 >>> x[x > 13] = 13 >>> c = c[x > 6] >>> x = x[x > 6] >>> Weibull.fit(x=x, c=c, tl=6) Parametric SurPyval Model ========================= Distribution : Weibull Fitted by : MLE Parameters : alpha: 10.363725328793413 beta: 4.9886821457305865
- x (array like, optional) – Array of observations of the random variables. If x is
-
fit_from_df
(df, x=None, c=None, n=None, xl=None, xr=None, tl=None, tr=None, **fit_options)¶ The central feature to SurPyval’s capability. This function aimed to have an API to mimic the simplicity of the scipy API. That is, to use a simple
fit()
call, with as many or as few parameters as is needed.Parameters: - df (DataFrame) – DataFrame of data to be used to create surpyval model
- x (string, optional) – column name for the column in df containing the variable data. If not provided must provide both xl and xr
- c (string, optional) – column name for the column in df containing the censor flag of x. If not provided assumes all values of x are observed.
- n (string, optional) – column name in for the column in df containing the counts of x. If not provided assumes each x is one observation.
- tl (string or scalar, optional) – If string, column name in for the column in df containing the left truncation data. If scalar assumes each x is left truncated by that value. If not provided assumes x is not left truncated.
- tr (string or scalar, optional) – If string, column name in for the column in df containing the right truncation data. If scalar assumes each x is right truncated by that value. If not provided assumes x is not right truncated.
- xl (string, optional) – column name for the column in df containing the left interval for interval censored data. If left interval is -Inf, assumes left censored. If xl[i] == xr[i] assumes observed. Cannot be provided with x, must be provided with xr.
- xr (string, optional) – column name for the column in df containing the right interval for interval censored data. If right interval is Inf, assumes right censored. If xl[i] == xr[i] assumes observed. Cannot be provided with x, must be provided with xl.
- fit_options (dict, optional) – dictionary of fit options that will be passed to the
fit
method, see that method for options.
Returns: model – A parametric model with the fitted parameters and methods for all functions of the distribution using the fitted parameters.
Return type: Examples
>>> import surpyval as surv >>> df = surv.datasets.BoforsSteel.df >>> model = surv.Weibull.fit_from_df(df, x='x', n='n', offset=True) >>> print(model) Parametric SurPyval Model ========================= Distribution : Weibull Fitted by : MLE Offset (gamma) : 39.76562962867477 Parameters : alpha: 7.141925216146524 beta: 2.6204524040137844
-
from_params
(params, gamma=None, p=None, f0=None)¶ Creating a SurPyval Parametric class with provided parameters.
Parameters: - params (array like) – array of the parameters of the distribution.
- gamma (scalar, optional) – offset value for the distribution. If not provided will fit a regular, unshifted/not offset, distribution.
Returns: model – A parametric model with the fitted parameters and methods for all functions of the distribution using the fitted parameters.
Return type: Examples
>>> from surpyval import Weibull >>> model = Weibull.from_params([10, 4]) >>> print(model) Parametric SurPyval Model ========================= Distribution : Weibull Fitted by : given parameters Parameters : alpha: 10 beta: 4 >>> model = Weibull.from_params([10, 4], gamma=2) >>> print(model) Parametric SurPyval Model ========================= Distribution : Weibull Fitted by : given parameters Offset (gamma) : 2 Parameters : alpha: 10 beta: 4
-
hf
(x, mu, sigma)¶ Instantaneous hazard rate for the Gumbel Distribution:
\[h(x) = \frac{1}{\sigma} e^{\frac{x-\mu}{\sigma}}\]Parameters: - x (numpy array or scalar) – The values of the random variables at which the survival function will be calculated
- mu (numpy array like or scalar) – The location parameter of the distribution
- sigma (numpy array like or scalar) – The scale parameter of the distribution
Returns: hf – The value(s) for the instantaneous hazard rate for the Gumbel distribution.
Return type: scalar or numpy array
Examples
>>> import numpy as np >>> from surpyval import Gumbel >>> x = np.array([1, 2, 3, 4, 5]) >>> Gumbel.hf(x, 3, 2) array([0.18393972, 0.30326533, 0.5 , 0.82436064, 1.35914091])
-
mean
(mu, sigma)¶ Calculates the mean of the Gumbel distribution with given parameters.
\[E = \mu + \sigma\gamma\]Where gamma is the Euler-Mascheroni constant
Parameters: - mu (numpy array like or scalar) – The location parameter(s) of the distribution
- sigma (numpy array like or scalar) – The scale parameter(s) of the distribution
Returns: mean – The mean(s) of the Gumbel distribution
Return type: scalar or numpy array
Examples
>>> from surpyval import Gumbel >>> Gumbel.mean(3, 2) 4.1544313298030655
-
qf
(p, mu, sigma)¶ Quantile function for the Gumbel Distribution:
\[q(p) = \mu + \sigma\ln\left ( -\ln\left ( 1 - p \right ) \right )\]Parameters: - p (numpy array or scalar) – The percentiles at which the quantile will be calculated
- mu (numpy array like or scalar) – The location parameter(s) of the distribution
- sigma (numpy array like or scalar) – The scale parameter(s) of the distribution
Returns: q – The quantiles for the Gumbel distribution at each value p.
Return type: scalar or numpy array
Examples
>>> import numpy as np >>> from surpyval import Gumbel >>> p = np.array([.1, .2, .3, .4, .5]) >>> Gumbel.qf(p, 3, 2) array([-1.50073465e+00, 1.20026481e-04, 9.38139134e-01, 1.65654602e+00, 2.26697416e+00])
-
random
(size, mu, sigma)¶ Draws random samples from the distribution in shape size
Parameters: - size (integer or tuple of positive integers) – Shape or size of the random draw
- mu (numpy array like or scalar) – The location parameter(s) of the distribution
- sigma (numpy array like or scalar) – The scale parameter(s) of the distribution
Returns: random – Random values drawn from the distribution in shape size
Return type: scalar or numpy array
Examples
>>> import numpy as np >>> from surpyval import Gumbel >>> Gumbel.random(10, 3, 2) array([1.50706388, 3.3098799 , 4.32358009, 2.9914246 , 4.47216839, 3.56676358, 4.19781514, 4.49123942, 7.29849677, 6.32996653]) >>> Gumbel.random((5, 5), 3, 2) array([[ 5.97265715, 5.89177067, 2.95883424, 2.46315557, 5.15250379], [ 2.33808212, 7.42817091, 0.90560051, 8.05897841, 6.30714544], [ 6.13076426, 6.31925048, 4.34031705, 3.01309504, -0.70053049], [ 5.84888474, 5.95097491, 6.23960618, 6.24830057, 4.89655192], [ 6.29507963, 4.21798292, 4.22835474, 5.23521822, 2.76053242]])
-
sf
(x, mu, sigma)¶ Surival (or Reliability) function for the Gumbel Distribution:
\[R(x) = 1 - e^{e^{-\left ( x - \mu \right ) / \sigma}}\]Parameters: - x (numpy array or scalar) – The values of the random variables at which the survival function will be calculated
- mu (numpy array like or scalar) – The location parameter of the distribution
- sigma (numpy array like or scalar) – The scale parameter of the distribution
Returns: sf – The scalar value of the survival function of the distribution if a scalar was passed. If an array like object was passed then a numpy array is returned with the value of the survival function at each corresponding value in the input array.
Return type: scalar or numpy array
Examples
>>> import numpy as np >>> from surpyval import Gumbel >>> x = np.array([1, 2, 3, 4, 5]) >>> Gumbel.sf(x, 3, 2) array([0.69220063, 0.54523921, 0.36787944, 0.19229565, 0.06598804])
-