pystra.distributions.maximum.Maximum#
- class Maximum(name, parent, N, input_type=None, startpoint=None)[source]#
Bases:
DistributionDistribution of maximima from the passed in parent distribution
- Attributes:
name (str): Name of the random variable
mean (float): Mean
stdv (float): Standard deviation
parent (Distribution): Parent distribution object
N (float): Power to which distribution is raised
input_type (any): Change meaning of mean and stdv
startpoint (float): Start point for seach
Methods
Cumulative distribution function
Derivatives of the CDF w.r.t.
getMeangetNamegetStartPointgetStdvCompute the Jacobian (e.g. Lemaire, eq.
Probability density function
Plot the probability density function.
inverse cumulative distribution function
Draw random samples from the distribution.
setStartPointUpdating the parent distribution location parameter.
Updating the parent distribution scale parameter.
Transformation from u to x
Updates the mean and stdv estimates - used for sensitivity analysis where the parent distribution params may change after instantiation
Transformation from x to u
zero_distn- update_stats()[source]#
Updates the mean and stdv estimates - used for sensitivity analysis where the parent distribution params may change after instantiation
- dF_dtheta(x)#
Derivatives of the CDF w.r.t. each sensitivity parameter.
Returns
∂F_X(x)/∂θfor every parameter listed bysensitivity_params. The base-class implementation uses central finite differences on the CDF via_make_copy().Before computing derivatives, a reconstruction sanity check verifies that
_make_copy()(with no overrides) reproduces the current distribution. This catches both constructor failures (e.g. composite distributions) and silent mismatches (e.g. distributions whose extra constructor arguments are not stored in_ctor_kwargs).Subclasses may override this with analytical expressions for better accuracy and performance (see
NormalandLognormal).- Parameters:
x (float) – Evaluation point in physical space.
- Returns:
{param_name: ∂F/∂θ}for each parameter insensitivity_params.- Return type:
dict
- Raises:
ValueError – If the distribution cannot be faithfully reconstructed by
_make_copy().
- plot(ax=None, **kwargs)#
Plot the probability density function.
- Parameters:
ax (matplotlib.axes.Axes, optional) – Axes to plot on. A new figure is created if
None.**kwargs – Additional keyword arguments forwarded to
ax.plot().
- Returns:
The axes containing the plot.
- Return type:
matplotlib.axes.Axes
- sample(n=1000)#
Draw random samples from the distribution.
Uses inverse-transform sampling via
ppf.- Parameters:
n (int, optional) – Number of samples (default 1000).
- Returns:
Array of shape
(n,)with sampled values.- Return type:
ndarray
- property sensitivity_params#
Distribution parameters for which sensitivities are computed.
Returns a dict
{param_name: current_value}listing every parameter with respect to which \(\partial\beta/\partial\theta\) should be evaluated.The default implementation returns
{"mean": μ, "std": σ}, which is appropriate for most distributions. Distributions with additional parameters of interest (e.g. the GEV shape parameter) should override this property to include them.Parameters listed in
_ctor_kwargsbut not insensitivity_paramsare held fixed during sensitivity analysis — they are only used by_make_copy()to faithfully reconstruct the distribution.- Returns:
{param_name: current_value}- Return type:
dict