- categorical :: (Num p, Distribution (Categorical p) a) => [(p, a)] -> RVar a
- categoricalT :: (Num p, Distribution (Categorical p) a) => [(p, a)] -> RVarT m a
- fromList :: Num p => [(p, a)] -> Categorical p a
- toList :: Num p => Categorical p a -> [(p, a)]
- fromWeightedList :: (Fractional p, Ord a) => [(p, a)] -> Categorical p a
- fromObservations :: (Fractional p, Ord a) => [a] -> Categorical p a
- mapCategoricalPs :: (p -> q) -> Categorical p e -> Categorical q e
- normalizeCategoricalPs :: Fractional p => Categorical p e -> Categorical p e
- collectEvents :: (Ord e, Num p, Ord p) => Categorical p e -> Categorical p e
- collectEventsBy :: Num p => (e -> e -> Ordering) -> ([(p, e)] -> (p, e)) -> Categorical p e -> Categorical p e

# Documentation

categorical :: (Num p, Distribution (Categorical p) a) => [(p, a)] -> RVar aSource

Construct a `Categorical`

random variable from a list of probabilities
and categories, where the probabilities all sum to 1.

categoricalT :: (Num p, Distribution (Categorical p) a) => [(p, a)] -> RVarT m aSource

Construct a `Categorical`

random process from a list of probabilities
and categories, where the probabilities all sum to 1.

fromList :: Num p => [(p, a)] -> Categorical p aSource

Construct a `Categorical`

distribution from a list of weighted categories.

fromWeightedList :: (Fractional p, Ord a) => [(p, a)] -> Categorical p aSource

Construct a `Categorical`

distribution from a list of weighted categories,
where the weights do not necessarily sum to 1.

fromObservations :: (Fractional p, Ord a) => [a] -> Categorical p aSource

Construct a `Categorical`

distribution from a list of observed outcomes.
Equivalent events will be grouped and counted, and the probabilities of each
event in the returned distribution will be proportional to the number of
occurrences of that event.

mapCategoricalPs :: (p -> q) -> Categorical p e -> Categorical q eSource

Like `fmap`

, but for the probabilities of a categorical distribution.

normalizeCategoricalPs :: Fractional p => Categorical p e -> Categorical p eSource

Adjust all the weights of a categorical distribution so that they sum to unity.

collectEvents :: (Ord e, Num p, Ord p) => Categorical p e -> Categorical p eSource

Simplify a categorical distribution by combining equivalent categories (the new category will have a probability equal to the sum of all the originals).

collectEventsBy :: Num p => (e -> e -> Ordering) -> ([(p, e)] -> (p, e)) -> Categorical p e -> Categorical p eSource

Simplify a categorical distribution by combining equivalent events (the new event will have a weight equal to the sum of all the originals). The comparator function is used to identify events to combine. Once chosen, the events and their weights are combined by the provided probability and event aggregation function.