Method convpow determines the distribution of the sum of N univariate
i.i.d r.v's by means of DFT
convpow(D1,...)
# S4 method for AbscontDistribution
convpow(D1,N)
# S4 method for LatticeDistribution
convpow(D1,N,
ep = getdistrOption("TruncQuantile"))
# S4 method for DiscreteDistribution
convpow(D1,N)
# S4 method for AcDcLcDistribution
convpow(D1,N,
ep = getdistrOption("TruncQuantile"))an object of (a sub)class (of) "AbscontDistribution" or
"LatticeDistribution" or of "UnivarLebDecDistribution"
not yet used; meanwhile takes up N
an integer or 0 (for 0 returns Dirac(0), for 1 D1)
numeric of length 1 in (0,1) ---
for "LatticeDistribution": support points will be
cancelled if their probability is less than ep;
for "UnivarLebDecDistribution": if (acWeight(object)<ep)
we work with the discrete parts only, and, similarly, if
(discreteWeight(object)<ep) we with the absolutely continuous
parts only.
Object of class "AbscontDistribution", "DiscreteDistribution",
"LatticeDistribution" resp. "AcDcLcDistribution"
There are particular methods for the following classes, using explicit convolution formulae:
signature(D1="Norm")returns class "Norm"
signature(D1="Nbinom")returns class "Nbinom"
signature(D1="Binom")returns class "Binom"
signature(D1="Cauchy")returns class "Cauchy"
signature(D1="ExpOrGammaOrChisq")returns class
"Gammad" ---if D1 may be coerced to Gammad
signature(D1="Pois")returns class "Pois"
signature(D1="Dirac")returns class "Dirac"
in the methods implemented a second argument N is obligatory;
the general methods use a general purpose convolution algorithm for
distributions by means of D/FFT. In case of an argument of class
"UnivarLebDecDistribution", the result will in generally be
again of class "UnivarLebDecDistribution". However, if acWeight(D1)
is positive, discreteWeight(convpow(D1,N)) will decay exponentially
in N, hence from some (small) \(N_0\) on, the result will be of
class "AbscontDistribution". This is used algorithmically, too, as
then only the a.c. part needs to be convolved.
In case of an argument D1 of class "DiscreteDistribution",
for N equal to 0,1 we return the obvious solutions, and for N==2
the return value is D1+D1. For N>2, we split up N into
N=N1+N2, N1=floor(N/2) and recursively return
convpow(D1,N1)+convpow(D1,N2).
Kohl, M., Ruckdeschel, P., (2014): General purpose convolution algorithm for distributions in S4-Classes by means of FFT. J. Statist. Softw. 59(4): 1-25.
operators, distrARITH()
# NOT RUN {
convpow(Exp()+Pois(),4)
# }
Run the code above in your browser using DataLab