BGWM.mean {Branching} | R Documentation |
Means of a multi-type Bienayme - Galton - Watson process
Description
Calculates the mean matrix of a multi-type Bienayme - Galton -
Watson process from its offspring distributions, additionally, it
could be obtained the mean matrix in a specific time and the
mean vector of the population in the nth generation, if it is provided
the initial population vector.
Usage
BGWM.mean(dists, type=c("general","multinomial","independents"),
d, n=1, z0=NULL, maxiter = 1e5)
Arguments
dists |
offspring distributions. Its structure depends on the class of the Bienayme - Galton - Watson process (See details and examples). |
type |
Class or family of the Bienayme - Galton - Watson process (See details and examples). |
d |
positive integer, number of types. |
n |
positive integer, nth generation. |
z0 |
nonnegative integer vector of size d, initial population by type. |
maxiter |
positive integer, size of the simulated sample used to estimate the parameters of univariate distributions that do not have an analytical formula for their exact calculation. |
Details
This function calculates the mean matrix of a multi-type Bienayme - Galton - Watson (BGWM) process from its offspring distributions.
From particular offspring distributions and taking into account a differentiated algorithmic approach, we propose the following classes or types for these processes:
general
This option is for BGWM processes without conditions over
the offspring distributions, in this case, it is required as
input data for each distribution, all d-dimensional vectors with their
respective, greater than zero, probability.
multinomial
This option is for BGMW processes where each offspring
distribution is a multinomial distribution with a random number of
trials, in this case, it is required as input data, univariate
distributions related to the random number of trials for each
multinomial distribution and a
matrix where each row
contains probabilities of the
possible outcomes for each multinomial
distribution.
independents
This option is for BGMW processes where each offspring
distribution is a joint distribution of combined independent
discrete random variables, one for each type of individuals, in this
case, it is required as input data
univariate distributions.
The structure need it for each classification is illustrated in the examples.
These are the univariate distributions available:
unif Discrete uniform distribution, parameters and
. All the non-negative integers between
y
have the same
probability.
binom Binomial distribution, parameters and
.
for x = 0, , n.
hyper Hypergeometric distribution, parameters (the
number of white balls in the urn),
(the number of white balls
in the urn),
(the number of balls drawn from the urn).
for x = 0, ..., k.
geom Geometric distribution, parameter .
for x = 0, 1, 2,
nbinom Negative binomial distribution, parameters and
.
for x = 0, 1, 2,
pois Poisson distribution, parameter .
for x = 0, 1, 2,
norm Normal distribution rounded to integer values and negative
values become 0, parameters and
.
for x = 1, 2,
for x = 0
lnorm Lognormal distribution rounded to integer values,
parameters logmean
y
logsd
.
for x = 1, 2,
for x = 0
gamma Gamma distribution rounded to integer values,
parameters shape
y
scale
.
para x = 1, 2,
for x = 0
When the offspring distributions used norm
, lnorm
or
gamma
, mean related to these univariate distributions
is estimated by calculating sample mean of maxiter
random
values generated from the corresponding distribution.
Value
A matrix
object with the mean matrix of the process in the nth
generation, or, a vector
object with the mean vector of the
population in the nth generation, in case of provide the initial population
vector (z0).
Author(s)
Camilo Jose Torres-Jimenez cjtorresj@unal.edu.co
References
Torres-Jimenez, C. J. (2010), Relative frequencies and parameter estimation in multi-type Bienayme - Galton - Watson processes, Master's Thesis, Master of Science in Statistics. Universidad Nacional de Colombia. Bogota, Colombia.
Stefanescu, C. (1998), 'Simulation of a multitype Galton-Watson chain', Simulation Practice and Theory 6(7), 657-663.
Athreya, K. & Ney, P. (1972), Branching Processes, Springer-Verlag.
Harris, T. E. (1963), The Theory of Branching Processes, Courier Dover Publications.
See Also
rBGWM
, BGWM.covar
, BGWM.mean.estim
, BGWM.covar.estim
Examples
## Not run:
## Means of a BGWM process based on a model analyzed in Stefanescu (1998)
# Variables and parameters
d <- 2
n <- 30
N <- c(90, 10)
a <- c(0.2, 0.3)
# with independent distributions
Dists.i <- data.frame( name=rep( "pois", d*d ),
param1=rep( a, rep(d,d) ),
stringsAsFactors=FALSE )
# mean matrix of the process
I.matriz.m <- BGWM.mean(Dists.i, "independents", d)
# mean vector of the population in the nth generation
# from vector N representing the initial population
I.vector.m.n_N <- BGWM.mean(Dists.i, "independents", d, n, N)
# with multinomial distributions
dist <- data.frame( name=rep( "pois", d ),
param1=a*d,
stringsAsFactors=FALSE )
matrix.b <- matrix( rep(0.5, 4), nrow=2 )
Dists.m <- list( dists.eta=dist, matrix.B=matrix.b )
# mean matrix of the process
M.matrix.m <- BGWM.mean(Dists.m, "multinomial", d)
# mean vector of the population in the nth generation
# from vector N representing the initial population
M.vector.m.n_N <- BGWM.mean(Dists.m, "multinomial", d, n, N)
# with general distributions (approximation)
max <- 30
A <- t(expand.grid(c(0:max),c(0:max)))
aux1 <- factorial(A)
aux1 <- apply(aux1,2,prod)
aux2 <- apply(A,2,sum)
distp <- function(x,y,z){ exp(-d*x)*(x^y)/z }
p <- sapply( a, distp, aux2, aux1 )
prob <- list( dist1=p[,1], dist2=p[,2] )
size <- list( dist1=ncol(A), dist2=ncol(A) )
vect <- list( dist1=t(A), dist2=t(A) )
Dists.g <- list( sizes=size, probs=prob, vects=vect )
# mean matrix of the process
G.matrix.m <- BGWM.mean(Dists.g, "general", d)
# mean vector of the population in the nth generation
# from vector N representing the initial population
G.vector.m.n_N <- BGWM.mean(Dists.g, "general", d, n, N)
# Comparison of results
I.vector.m.n_N
I.vector.m.n_N - M.vector.m.n_N
M.vector.m.n_N - G.vector.m.n_N
G.vector.m.n_N - I.vector.m.n_N
## End(Not run)