# cor_diss: Correlation and moving correlation dissimilarity measurements... In resemble: Memory-Based Learning in Spectral Chemometrics

## Description

Computes correlation and moving correlation dissimilarity matrices.

## Usage

 1 2 cor_diss(Xr, Xu = NULL, ws = NULL, center = TRUE, scale = FALSE)

## Arguments

 Xr a matrix. Xu an optional matrix containing data of a second set of observations. ws for moving correlation dissimilarity, an odd integer value which specifies the window size. If ws = NULL, then the window size will be equal to the number of variables (columns), i.e. instead moving correlation, the normal correlation will be used. See details. center a logical indicating if the spectral data Xr (and Xu if specified) must be centered. If Xu is provided, the data is scaled on the basis of \mjeqnXr \cup XuXr U Xu. scale a logical indicating if Xr (and Xu if specified) must be scaled. If Xu is provided the data is scaled on the basis of \mjeqnXr \cup XuXr U Xu.

## Details

The correlation dissimilarity \mjeqndd between two observations \mjeqnx_ix_i and \mjeqnx_jx_j is based on the Perason's correlation coefficient (\mjeqn\rho\rho) and it can be computed as follows:

\mjdeqn

d(x_i, x_j) = \frac12((1 - \rho(x_i, x_j)))d(x_i, x_j) = 1/2 (1 - \rho(x_i, x_j))

The above formula is used when ws = NULL. On the other hand (when ws != NULL) the moving correlation dissimilarity between two observations \mjeqnx_ix_i and \mjeqnx_jx_j is computed as follows:

\mjdeqn

d(x_i, x_j; ws) = \frac12 ws\sum_k=1^p-ws1 - \rho(x_i,(k:k+ws), x_j,(k:k+ws))d(x_i, x_j) = 1/(2 ws)\sum_(k=1)^p-ws(1 - \rho(x_(i,k:k+ws), x_(j,k:k+ws)))

where \mjeqnwsws represents a given window size which rolls sequentially from 1 up to \mjeqnp - wsp - ws and \mjeqnpp is the number of variables of the observations.

The function does not accept input data containing missing values.

## Value

a matrix of the computed dissimilarities.

## Author(s)

Antoine Stevens and Leonardo Ramirez-Lopez

## Examples

 1 2 3 4 5 6 7 8 9 10 11 12 13 library(prospectr) data(NIRsoil) Xu <- NIRsoil$spc[!as.logical(NIRsoil$train), ] Xr <- NIRsoil$spc[as.logical(NIRsoil$train), ] cor_diss(Xr = Xr) cor_diss(Xr = Xr, Xu = Xu) cor_diss(Xr = Xr, ws = 41) cor_diss(Xr = Xr, Xu = Xu, ws = 41)

resemble documentation built on Nov. 9, 2020, 5:08 p.m.