MGDrivE (version 1.6.0)

calcHurdleExpKernel: Calculate Zero-inflated Exponential Stochastic Matrix


Given a distance matrix from calcVinEll, calculate a stochastic matrix where one step movement probabilities follow an zero-inflated exponential density with a point mass at zero. The point mass at zero represents the first stage of a two-stage process, where mosquitoes decide to stay at their current node or leave anywhere. This parameter can be calculated from lifetime probabilities to stay at the current node with the helper function calcZeroInflation.


calcHurdleExpKernel(distMat, rate, p0)



Distance matrix from calcVinEll


Rate parameter of Exponential distribution


Point mass at zero


If a mosquito leaves its current node, with probability \(1-p_{0}\), it then chooses a destination node according to a standard exponential density with rate parameter \(rate\).

The distribution and density functions for the zero inflated exponential kernel are given below: $$ F(x)=p_{0}\theta(x) + (1-p_{0})(1-e^{-\lambda x}) $$ $$ f(x)=p_{0}\delta(x)+(1-p_{0})\lambda e^{-\lambda x} $$ where \(\lambda\) is the rate parameter of the exponential distribution, \(\theta(x)\) is the Heaviside step function and \(\delta(x)\) is the Dirac delta function.


Run this code
# setup distance matrix
# two-column matrix with latitude/longitude, in degrees
latLong = cbind(runif(n = 5, min = 0, max = 90),
                runif(n = 5, min = 0, max = 180))

# Vincenty Ellipsoid  distance formula
distMat = calcVinEll(latLongs = latLong)

# calculate hurdle exponential distribution over distances
#  rate and point mass are just for example
kernMat = calcHurdleExpKernel(distMat = distMat, rate = 1/1e6, p0 = 0.1)

# }

Run the code above in your browser using DataLab