expansionTerms: expansionTerms - Distance function expansion terms

View source: R/expansionTerms.R

expansionTermsR Documentation

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)

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)).

Value

If nexp equals 0, 1 is returned. If nexp is greater than 0, a matrix of size nXk 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).

Examples

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")


Rdistance documentation built on April 12, 2025, 1:12 a.m.