Distributions and dependence#

Specify marginals and dependence, and construct probability transformations.

Public entry points#

Object

Purpose

Normal

Specify a normal marginal by mean and standard deviation.

ScipyDist

Wrap a parameterized SciPy distribution.

JointDistribution

Combine marginals with an explicit copula.

GaussianCopula

Specify Gaussian dependence.

StudentTCopula

Specify Student-t dependence and degrees of freedom.

FrankCopula

Specify bivariate Frank dependence.

Use it: Copulas and isoprobabilistic transformations · Dependence and probability transformations · Probability transformations and copulas

Module details#

pystra.distributions

Structural reliability marginals and distribution adapters.

pystra.dependence.copula

Continuous copula specifications, independent of physical marginals.

pystra.dependence.joint

Marginals plus a copula, and their isoprobabilistic transformations.

pystra.dependence.transformation

Normal Nataf coordinate transforms and directed Jacobians.

pystra.dependence.correlation

Correlation matrix handling and Nataf correlation modification.

Directed transformation derivatives#

Both Transformation and CopulaTransformation provide jacobian_u_wrt_x(u, x, marg) and jacobian_x_wrt_u(u, x, marg). The joint transformation already owns its marginals, so marg is optional there. Inputs are corresponding reference and physical points. Both matrices have shape (dimension, dimension) with output coordinates in rows and input coordinates in columns, in original model variable order. They are inverses at nonsingular points. standard_space identifies the reference law: normal Rosenblatt coordinates are independent; generalized Nataf with a Student-t copula has spherical, dependent Student-t coordinates.

Distribution reconstruction#

dist.parameters is a read-only constructor mapping; type(dist)(**dist.parameters) reconstructs the marginal. dist.with_parameters(**changes) returns an independent updated marginal, including its nested distributions. Native reconstruction parameters and sensitivity_params are separate: see Adding a distribution for moment updates, fixed bounds and custom subclass requirements.