NAME

Logic::Probabilistic::Distribution - Stores discrete probability distributions and statistical moments.

SYNOPSIS

my $dist = $prog->query_distribution(call('dice_sum', $total));
say "Mean:      " . $dist->mean;
say "Variance:  " . $dist->variance;
say "Mode:      " . $dist->mode;
say "P(Sum = 7) " . $dist->probability(7);
say $dist; # Pretty ASCII table / histogram

METHODS

probability($val)

Probability mass of a specific value $P(X = v)$. Aliased as prob and pmf.

probabilities

Hashref (scalar context) or hash (list context) of all values to their probabilities.

values

Sorted list of all discrete values in the distribution.

support

List of values having strictly non-zero probability.

mean

Expected value $E[X] = \sum v \cdot P(X = v)$ for numeric distributions.

variance

Variance $\text{Var}(X) = E[(X - \mu)^2]$.

std_dev

Standard deviation $\sqrt{\text{Var}(X)}$. Aliased as sd.

mode

Value(s) with highest probability.

min, max

Minimum and maximum values with non-zero probability.

cdf($val)

Cumulative distribution function $P(X \le val)$.

quantile($q) / percentile($pct)

Quantile function for numeric distributions.

entropy($base = 2)

Shannon entropy in bits (default base 2).

sample

Draws a random value according to the probability mass function.

to_string(%opts)

Formats the distribution as an ASCII table with a distribution histogram bar chart.