The Beta-Binomial distribution is parameterized by (a batch of) total_count
parameters, the number of trials per draw from Binomial distributions where
the probabilities of success per trial are drawn from underlying Beta
distributions; the Beta distributions are parameterized by concentration1
(aka 'alpha') and concentration0
(aka 'beta').
Mathematically, it is (equivalent to) a special case of the
Dirichlet-Multinomial over two classes, although the computational
representation is slightly different: while the Beta-Binomial is a
distribution over the number of successes in total_count
trials, the
two-class Dirichlet-Multinomial is a distribution over the number of successes
and failures.
tfd_beta_binomial( total_count, concentration1, concentration0, validate_args = FALSE, allow_nan_stats = TRUE, name = "BetaBinomial" )
total_count | Non-negative integer-valued tensor, whose dtype is the same
as |
---|---|
concentration1 | Positive floating-point |
concentration0 | Positive floating-point |
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. |
allow_nan_stats | Logical, default TRUE. When TRUE, statistics (e.g., mean, mode, variance) use the value NaN to indicate the result is undefined. When FALSE, an exception is raised if one or more of the statistic's batch members are undefined. |
name | name prefixed to Ops created by this class. |
a distribution instance.
Mathematical Details
The Beta-Binomial is a distribution over the number of successes in
total_count
independent Binomial trials, with each trial having the same
probability of success, the underlying probability being unknown but drawn
from a Beta distribution with known parameters.
The probability mass function (pmf) is,
pmf(k; n, a, b) = Beta(k + a, n - k + b) / Z Z = (k! (n - k)! / n!) * Beta(a, b)
where:
concentration1 = a > 0
,
concentration0 = b > 0
,
total_count = n
, n
a positive integer,
n!
is n
factorial,
Beta(x, y) = Gamma(x) Gamma(y) / Gamma(x + y)
is the
beta function, and
Gamma
is the gamma function.
Dirichlet-Multinomial is a compound distribution, i.e., its samples are generated as follows.
Choose success probabilities:
probs ~ Beta(concentration1, concentration0)
Draw integers representing the number of successes:
counts ~ Binomial(total_count, probs)
Distribution parameters are automatically broadcast in all functions; see
examples for details.
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()
,
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_named()
,
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()