Tour d’horizon du projet eGait sur l’analyse de la marche
Lab-STICC, UMR CNRS 6285, Institut Universitaire de Technologie de Vannes, France
Department of Mathematics Jean Leray, UMR CNRS 6629, Nantes University, Ecole Centrale de Nantes, France
2025-05-21
Feature | Mathematics Research | Mathematics in Health Sciences |
---|---|---|
Personnel | Mathematicians, statisticians, software developers | Interdisciplinary team incl. medical staff, engineers, data managers, mathematicians |
Interactions | Internal discussions among mathematical experts | Regular cross-disciplinary meetings, clinical-mathematical interface |
Core Tasks | Theoretical development, proofs, algorithmic implementation | Balanced between theory and practical implementation, clinical validation |
Project Goals | Advance mathematical theory and methodology | Solve specific clinical problems, improve patient care |
Validation | Mathematical proofs, simulation studies | Clinical trials, real-world testing, practitioner feedback |
Deliverables | Academic papers, theoretical results, software packages | Clinical tools, decision support systems, protocols, training materials |
Communication | Technical mathematical language | Translation between technical and clinical language |
Impact Metrics | Academic citations, theoretical advancement | Clinical outcomes, practical utility, patient benefit |
Gait analysis of body part orientation over time
Key numbers in France
Multiple Sclerosis
100,000
Parkinson's disease
160,000
Elderly (> 65 years)
14,851,943
Key observations
Unit quaternion
A unit quaternion \(\mathbf{q} = (q_w, q_x, q_y, q_z)^\top \in \mathbb{R}^4\) encodes a rotation of angle \(\theta\) around the axis \(\mathbf{u}\) as: \[ \begin{aligned} \mathbf{q} &= q_w + q_x \mathbf{i} + q_y \mathbf{j} + q_z \mathbf{k} \\ &= \cos \left( \frac{\theta}{2} \right) + (u_x \mathbf{i} + u_y \mathbf{j} + u_z \mathbf{k}) \sin \left( \frac{\theta}{2} \right), \end{aligned} \] with \(\mathbf{i}^2 = \mathbf{j}^2 = \mathbf{k}^2 = \mathbf{i} \mathbf{j} \mathbf{k} = -1\).
Raw data collected by the eGait device:
Gait cycle
Set of movements accomplished in between two consecutive heel strikes of the same foot on the ground.
Time points as observations
We view the segmentation of gait cycles as a problem of classification of time points into 5 classes: Right Heel Strike, Left Heel Strike, Right Toe Off, Left Toe Off and No Event.
We collected data on a reference treadmill which provides ground truth for the segmentation via pressure sensors.
Handling non-Euclidean geometry
Definition 1 (Smooth manifold) A smooth or differentiable manifold is a topological space that locally resembles linear space.
Definition 2 (Group) A group is a set \(\mathcal{G}\), with composition operation \(\circ\), that, for elements \(\mathcal{X}, \mathcal{Y}, \mathcal{Z} \in \mathcal{G}\), satisfies the following axioms:
Definition 3 (Lie group) A Lie group is a smooth manifold whose elements satisfy the group axioms.
Vectors \(\mathbf{x} = (0, x_1, x_2, x_3) = 0 + ix_1 + jx_2 + kx_3\) rotate in 3D space by an angle \(\theta\) around the unit axis \(\mathbf{u}\) through the double quaternion product \(\mathbf{x}^\prime = \mathbf{q} \mathbf{x} \mathbf{q}^\star\).
Original manifold \(\mathbb{S}^3\)
\[ \scriptsize{ \begin{array}{rccc} \mathbf{q}: & [0,1] & \to & \mathbb{S}^3 \\ & s & \mapsto & \mathbf{q}(s) \end{array} } \]
Tangent space \(\mathcal{T}\mathbb{S}^3 \approx \mathbb{R}^3\)
\[ \scriptsize{ \begin{array}{rccc} \mathbf{t}: & [0,1] & \to & \mathbb{R}^3 \\ & s & \mapsto & \log(\mathbf{q}(s)) = (\theta(s) / 2) \mathbf{v}(s) \end{array} } \]
Metric space
Which distance should we use?
Square-root velocity function (SRVF) space \(L^2 \left( [0, 1], \mathbb{R}^3 \right)\) (Kurtek et al. 2012; Tucker, Wu, and Srivastava 2013; Srivastava and Klassen 2016)
\[ \scriptsize{ \begin{array}{rccc} \mathbf{v}: & [0,1] & \to & \mathbb{R}^3 \\ & s & \mapsto & \begin{cases} \frac{\mathbf{t}^\prime(s))}{\sqrt{\| \mathbf{t}^\prime(s)) \|}} & \text{if } \mathbf{t}^\prime(s) \neq 0 \\ 0 & \text{otherwise} \end{cases} \end{array} } \]
\[ d(\mathbf{t}_1, \mathbf{t}_2) = \left\| \mathbf{v}_1 - \mathbf{v}_2 \right\|_{L^2} \quad \mbox{and} \quad d(\mathbf{t}_1 + \mathbf{x}_0, \mathbf{t}_2 + \mathbf{x}_0) = d(\mathbf{t}_1, \mathbf{t}_2) \]
Geometric invariant | Distance (all isometric) |
---|---|
Warping | \(d(\mathbf{t}_1, \mathbf{t}_2) = \min_{\gamma \in \Gamma} \left\| \mathbf{v}_1 - (\mathbf{v}_2 \circ \gamma) \sqrt{\dot{\gamma}} \right\|_{L^2}\) |
Orientation | \(d(\mathbf{t}_1, \mathbf{t}_2) = \min_{R \in \mathrm{SO}(3)} \left\| \mathbf{v}_1 - R \mathbf{v}_2 \right\|_{L^2}\) |
Scale | \(d(\mathbf{t}_1, \mathbf{t}_2) = \left\| \frac{\mathbf{v}_1}{\| \mathbf{v}_1 \|_{L_2}} - \frac{\mathbf{v}_2}{\| \mathbf{v}_2 \|_{L_2}} \right\|_{L^2}\) |
\[ \Gamma = \{ \gamma : [0,1] \to [0,1] | \gamma(0) = 0, \gamma(1) = 1, 0 < \dot{\gamma} < +\infty \} \]
QTS Manipulation
qts
: centring()
around mean quaternion, autoplot()
, plot()
, +
, -
, *
, inverse_qts()
.qts_sample
: [
, append()
, rnorm_qts()
, scale()
, mean()
, median()
, autoplot()
, plot()
.log()
, exp()
, normalize()
, resample()
, smooth()
, moving_average()
, hemispherize()
.Clustering - Deps: {fdacluster}, {fdasrvf}, {dbscan} (Sangalli et al. 2010; Vantini 2012)
S3
impl. of kmeans()
, hclust()
and dbscan()
for qts_sample
objects;qtsclust
;S3
impl. of autoplot()
and plot()
for qtsclust
objects for visualization.PCA - Deps: {MFPCA} (Happ and Greven 2018; Happ-Kurz 2020)
S3
impl. of prcomp()
for qts_sample
objects;prcomp_qts
;S3
impl. of autoplot()
, plot()
and predict()
for prcomp_qts
objects.Conclusion
squat
package provides a solid foundation for statistical analysis of quaternion time series, with a focus on computational efficiency and ease of use.Rencontres R 2025 - Université de Mons (UMONS) – https://astamm.github.io – aymeric.stamm@cnrs.fr