fisher_rao_amplitude_distance#

skfda.misc.metrics.fisher_rao_amplitude_distance(fdata1, fdata2, *, lam=0, eval_points=None, _check=True, **kwargs)[source]#

Compute the Fisher-Rao amplitude distance between two functional objects.

Let \(f_i\) and \(f_j\) be two functional observations, and let \(q_i\) and \(q_j\) be the corresponding SRSF (see SRSF), the Fisher-Rao amplitude distance is defined as

\[d_{A}(f_i, f_j)=min_{\gamma \in \Gamma}d_{FR}(f_i \circ \gamma,f_j)\]

A penalty term could be added to restrict the ammount of elasticity in the alignment used.

\[d_{\lambda}^2(f_i, f_j) =min_{\gamma \in \Gamma} \{ d_{FR}^2(f_i \circ \gamma, f_j) + \lambda \mathcal{R}(\gamma) \}\]

Where \(d_{FR}\) is the Fisher-Rao distance and the penalty term is given by

\[\mathcal{R}(\gamma) = \|\sqrt{\gamma'}- 1 \|_{\mathbb{L}^2}^2\]

See the [1] for a detailed explanation.

If the observations are defined in a domain different than (0,1) their domains are normalized to this interval with an affine transformation.

Parameters:
  • fdata1 (T) – First FData object.

  • fdata2 (T) – Second FData object.

  • lam (float) – Penalty term to restric the elasticity.

  • eval_points (ndarray[Any, dtype[float64]] | None) – Array with points of evaluation.

  • kwargs (Any) – Name arguments to be passed to elastic_registration_warping().

  • _check (bool) –

Returns:

Elastic distance.

Raises:

ValueError – If the objects are not unidimensional.

Return type:

ndarray[Any, dtype[float64]]

References