Learn R Programming

Rdistance (version 4.0.5)

expansionTerms: expansionTerms - Distance function expansion terms

Description

Compute "expansion" terms that modify the shape of a base distance function.

Usage

expansionTerms(a, d, series, nexp, w)

Value

If nexp equals 0, 1 is returned. If nexp is greater than 0, a matrix of size \(n\)X\(k\) containing expansion terms, where \(n\) = length(d) and \(k\) = nrow(a). The expansion series associated with row \(j\) of a

are in column \(j\) of the return. i.e., element (\(i\),\(j\)) of the return is

$$1 + \sum_{k=1}^{m} a_{jk} h_{k}(x_{i}/w).$$

(see Details).

Arguments

a

A vector or matrix of (estimated) coefficients. a has length \(p\) + nexp (if a vector) or dimension (\(k\), \(p\) + nexp), where \(p\) is the number of canonical parameters in the likelihood and \(k\) is the number of coefficient vectors to evaluate. The first \(p\) elements of a, or the first \(p\) columns if a is a matrix, are ignored. I.e., Expansion term coefficients are the last nexp elements or columns of a.

d

A vector or 1-column matrix of distances at which to evaluate the expansion terms. d should be distances above w.lo, i.e., distances - w.lo. Parameters d and w must have compatible measurement units.

series

If expansions > 0, this string specifies the type of expansion to use. Valid values at present are 'simple', 'hermite', and 'cosine'.

nexp

Number of expansion terms. Integer from 0 to 5.

w

Strip width, i.e., w.hi - w.low = range of d. Parameters d and w must have compatible measurement units.

Details

Expansion terms modify the "key" function of the likelihood manipulatively. The modified distance function is, key * expTerms where key is a vector of values in the base likelihood function (e.g., halfnorm.like()$L.unscaled or hazrate.like()$L.unscaled) and expTerms is the matrix returned by this routine.

Let the number of expansions (nexp) be \(m\) (\(m\) > 0), assume the raw cyclic expansion terms of series are \(h_{j}(x)\) for the \(j^{th}\) expansion of distance \(x\), and that \(a_1, a_2, \dots, a_m\) are (estimated) coefficients for the expansion terms, then the likelihood contribution for the \(i^{th}\) distance \(x_i\) is, $$f(x_i|\beta,a_1,a_2,\dots,a_m) = f(x_i|\beta)(1 + \sum_{k=1}^{m} a_k h_{k}(x_i/w)).$$

Examples

Run this code
a1 <- c(log(40), 0.5, -.5)
a2 <- c(log(40), 0.25, -.5)
dists <- units::set_units(seq(0, 100, length = 100), "m")
w = units::set_units(100, "m")

expTerms1 <- expansionTerms(a1, dists, "cosine", 2, w)
expTerms2 <- expansionTerms(a2, dists, "cosine", 2, w)
plot(dists, expTerms2, ylim = c(0,2.5))
points(dists, expTerms1, pch = 16)

# Same as above
a <- rbind(a1, a2)
expTerms <- expansionTerms(a, dists, "cosine", 2, w)
matlines(dists, expTerms, lwd=2, col=c("red", "blue"), lty=1)

# Showing key and expansions
key <- halfnorm.like(log(40), dists, 1)$L.unscaled
plot(dists, key, type = "l", col = "blue", ylim=c(0,1.5))
lines(dists, key * expTerms1, col = "red")
lines(dists, key * expTerms2, col = "purple")

Run the code above in your browser using DataLab