control.dist$rho.mapping
.
make_scaled_dist(uniqueGeo, uniqueGeo2=NULL, distMatrix, rho, rho.mapping=seq_len(length(rho)), dist.method="Euclidean", return_matrix=FALSE)
uniqueGeo
locations are computed. Otherwise, scaled distances between locations in the two input matrices are computed.
* rho
, unless a non-trivial
rho.mapping
is used.
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)
.
method
argument of proxy::dist
function (by default, "Euclidean"
, but e.g. "Geodesic"
can be used to compute spherical distances.matrix
rather than a proxy::dist
or proxy::crossdist
object.dist
object. If there are two input matrices, rows of the return value correspond to rows of the first matrix.
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
.
## 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 DataLab