Joint from marginals and copula

Define a joint distribution from a list of marginals and a copula to introduce dependency. JointCopula is a child class of DistributionND.

A JointCopula distribution may possess a cdf(), pdf() and log_pdf() methods if the copula allows for it (i.e., if the copula possesses the necessary evaluate_cdf() and evaluate_pdf() methods - See Copula).

The parameters of the distribution are only stored as attributes of the marginals/copula objects. However, the get_parameters() and update_parameters() methods can still be used for the joint. Note that each parameter of the joint is assigned a unique string identifier as key_index - where key is the parameter name and index the index of the marginal (e.g., location parameter of the 2nd marginal is identified as loc_1); and key_c for copula parameters.

The JointCopula class is imported using the following command:

>>> from UQpy.distributions.collection.JointCopula import JointCopula
class JointCopula(marginals, copula)[source]
Parameters:
  • marginals (Union[list[DistributionContinuous1D], list[DistributionDiscrete1D]]) – list of distribution objects that define the marginals

  • copula (Copula) – copula object

ordered_parameters: list

Parameters of the distribution.

This attribute is not defined for certain Distribution objects such as those of type JointIndependent or JointCopula. The user is advised to use the get_parameters() method to access the parameters.

get_parameters()[source]

Return the parameters of a Distributions object.

To update the parameters of a JointIndependent or a JointCopula distribution, each parameter is assigned a unique string identifier as key_index - where key is the parameter name and index the index of the marginal (e.g., location parameter of the 2nd marginal is identified as loc_1).

Return type:

dict

Returns:

Parameters of the distribution.

update_parameters(**kwargs)[source]

Update the parameters of a Distributions object.

To update the parameters of a JointIndependent or a JointCopula distribution, each parameter is assigned a unique string identifier as key_index - where key is the parameter name and index the index of the marginal (e.g., location parameter of the 2nd marginal is identified as loc_1).

Parameters:

kwargs (dict) – Parameters to be updated

Raises:

ValueError – if kwargs contains key that does not already exist.

parameters: dict

Ordered list of parameter names, useful when parameter values are stored in vectors and must be passed to the update_params() method.