Calculates the convolution of two distribution via numerical calculations.

# S3 method for class 'Distribution'
x + y

# S3 method for class 'Distribution'
x - y

Arguments

x, y

Distribution

Value

Returns an R6 object of class Convolution.

Details

The convolution of two probability distributions \(X\), \(Y\) is the sum $$Z = X + Y$$ which has a pmf, $$P(Z = z) = \sum_x P(X = x)P(Y = z - x)$$ with an integration analogue for continuous distributions.

Currently distr6 supports the addition of discrete and continuous probability distributions, but only subtraction of continuous distributions.

Super classes

distr6::Distribution -> distr6::DistributionWrapper -> Convolution

Methods

Inherited methods


Method new()

Creates a new instance of this R6 class.

Usage

Convolution$new(dist1, dist2, add = TRUE)

Arguments

dist1

([Distribution])
First Distribution in convolution, i.e. dist1 ± dist2.

dist2

([Distribution])
Second Distribution in convolution, i.e. dist1 ± dist2.

add

(logical(1))
If TRUE (default) then adds the distributions together, otherwise substracts.


Method clone()

The objects of this class are cloneable with this method.

Usage

Convolution$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

binom <- Bernoulli$new() + Bernoulli$new()
binom$pdf(2)
#> [1] 0.25
Binomial$new(size = 2)$pdf(2)
#> [1] 0.25
norm <- Normal$new(mean = 3) - Normal$new(mean = 2)
norm$pdf(1)
#> [1] 0.2820948
Normal$new(mean = 1, var = 2)$pdf(1)
#> [1] 0.2820948