R/distributions.R
tfd_joint_distribution_named.RdThis distribution enables both sampling and joint probability computation from
a single model specification.
A joint distribution is a collection of possibly interdependent distributions.
Like JointDistributionSequential, JointDistributionNamed is parameterized
by several distribution-making functions. Unlike JointDistributionNamed,
each distribution-making function must have its own key. Additionally every
distribution-making function's arguments must refer to only specified keys.
tfd_joint_distribution_named(model, validate_args = FALSE, name = NULL)
| model | named list of distribution-making functions each with required args corresponding only to other keys in the named list. |
|---|---|
| validate_args | Logical, default FALSE. When TRUE distribution parameters are checked for validity despite possibly degrading runtime performance. When FALSE invalid inputs may silently render incorrect outputs. Default value: FALSE. |
| name | The name for ops managed by the distribution. Default value: |
a distribution instance.
Mathematical Details
Internally JointDistributionNamed implements the chain rule of probability.
That is, the probability function of a length-d vector x is,
p(x) = prod{ p(x[i] | x[:i]) : i = 0, ..., (d - 1) }
The JointDistributionNamed is parameterized by a dict (or namedtuple)
composed of either:
tfp$distributions$Distribution-like instances or,
functions which return a tfp$distributions$Distribution-like instance.
The "conditioned on" elements are represented by the function's required
arguments; every argument must correspond to a key in the named
distribution-making functions. Distribution-makers which are directly a
Distribution-like instance are allowed for convenience and semantically
identical a zero argument function. When the maker takes no arguments it is
preferable to directly provide the distribution instance.
For usage examples see e.g. tfd_sample(), tfd_log_prob(), tfd_mean().
Other distributions:
tfd_autoregressive(),
tfd_batch_reshape(),
tfd_bates(),
tfd_bernoulli(),
tfd_beta_binomial(),
tfd_beta(),
tfd_binomial(),
tfd_categorical(),
tfd_cauchy(),
tfd_chi2(),
tfd_chi(),
tfd_cholesky_lkj(),
tfd_continuous_bernoulli(),
tfd_deterministic(),
tfd_dirichlet_multinomial(),
tfd_dirichlet(),
tfd_empirical(),
tfd_exp_gamma(),
tfd_exp_inverse_gamma(),
tfd_exponential(),
tfd_gamma_gamma(),
tfd_gamma(),
tfd_gaussian_process_regression_model(),
tfd_gaussian_process(),
tfd_generalized_normal(),
tfd_geometric(),
tfd_gumbel(),
tfd_half_cauchy(),
tfd_half_normal(),
tfd_hidden_markov_model(),
tfd_horseshoe(),
tfd_independent(),
tfd_inverse_gamma(),
tfd_inverse_gaussian(),
tfd_johnson_s_u(),
tfd_joint_distribution_named_auto_batched(),
tfd_joint_distribution_sequential_auto_batched(),
tfd_joint_distribution_sequential(),
tfd_kumaraswamy(),
tfd_laplace(),
tfd_linear_gaussian_state_space_model(),
tfd_lkj(),
tfd_log_logistic(),
tfd_log_normal(),
tfd_logistic(),
tfd_mixture_same_family(),
tfd_mixture(),
tfd_multinomial(),
tfd_multivariate_normal_diag_plus_low_rank(),
tfd_multivariate_normal_diag(),
tfd_multivariate_normal_full_covariance(),
tfd_multivariate_normal_linear_operator(),
tfd_multivariate_normal_tri_l(),
tfd_multivariate_student_t_linear_operator(),
tfd_negative_binomial(),
tfd_normal(),
tfd_one_hot_categorical(),
tfd_pareto(),
tfd_pixel_cnn(),
tfd_poisson_log_normal_quadrature_compound(),
tfd_poisson(),
tfd_power_spherical(),
tfd_probit_bernoulli(),
tfd_quantized(),
tfd_relaxed_bernoulli(),
tfd_relaxed_one_hot_categorical(),
tfd_sample_distribution(),
tfd_sinh_arcsinh(),
tfd_skellam(),
tfd_spherical_uniform(),
tfd_student_t_process(),
tfd_student_t(),
tfd_transformed_distribution(),
tfd_triangular(),
tfd_truncated_cauchy(),
tfd_truncated_normal(),
tfd_uniform(),
tfd_variational_gaussian_process(),
tfd_vector_diffeomixture(),
tfd_vector_exponential_diag(),
tfd_vector_exponential_linear_operator(),
tfd_vector_laplace_diag(),
tfd_vector_laplace_linear_operator(),
tfd_vector_sinh_arcsinh_diag(),
tfd_von_mises_fisher(),
tfd_von_mises(),
tfd_weibull(),
tfd_wishart_linear_operator(),
tfd_wishart_tri_l(),
tfd_wishart(),
tfd_zipf()