spaMM (version 1.9.16)

make_scaled_dist: Scaled Euclidean distances between unique locations

Description

This fonction computes scaled Euclidean distances from whichever relevant argument it can use (see Details). The result can directly by used as input for computation of the Matérn correlation matrix. It is usually called internally by HLCor, so that users may ignore it, except if they wish to control the parametrization of the scaling through control.dist$rho.mapping.

Usage

make_scaled_dist(uniqueGeo, uniqueGeo2=NULL, distMatrix, rho, rho.mapping=seq_len(length(rho)), dist.method="Euclidean", return_matrix=FALSE)

Arguments

uniqueGeo
A matrix of geographical coordinates (e.g. 2 columns for latitude and longitude), without replicates of the same location.
uniqueGeo2
NULL, or a second matrix of geographical coordinates, without replicates of the same location. If NULL, scaled distances among uniqueGeo locations are computed. Otherwise, scaled distances between locations in the two input matrices are computed.
distMatrix
A distance matrix.
rho
A scalar or vector of positive values. Scaled distance is computed as * rho, unless a non-trivial rho.mapping is used.
rho.mapping
A set of indices controlling which elements of the rho scale vector scales which dimension(s) of the space in which (spatial) correlation matrices of random effects are computed. Scaled distance is generally computed as * rho[rho.mapping]. As shown inthe Example, if one wishes to combine isotropic geographical distance and some environmental distance, the coordinates being latitude, longitude and one environmental variable, the scaled distance may be computed as (say) (lat,long,env) *rho[c(1,1,2)] so that the same scaling rho[1] applies for both geographical coordinates. In this case, rho should have length 2 and rho.mapping should be c(1,1,2).
dist.method
method argument of proxy::dist function (by default, "Euclidean", but e.g. "Geodesic" can be used to compute spherical distances.
return_matrix
Whether to return a matrix rather than a proxy::dist or proxy::crossdist object.

Value

A matrix or dist object. If there are two input matrices, rows of the return value correspond to rows of the first matrix.

Details

The function uses the distMatrix argument if provided, in which case rho must be a scalar. Vectorial rho (i.e., different scaling of different dimensions) is feasible only by providing uniqueGeo.

Examples

Run this code
## a biologically not very meaningful, but syntactically correct example of rho.mapping
data(blackcap)
corrHLfit(migStatus ~ 1 + Matern(1|latitude+longitude+means),data=blackcap,
          objective="p_v",HLmethod="ML",ranFix=list(nu=0.5,phi=1e-6),
          init.corrHLfit=list(rho=c(1,1)),
          control.dist=list(rho.mapping=c(1,1,2)))

Run the code above in your browser using DataCamp Workspace