Le paramètre d'amplitude moyenne en stabilométrie

Richard SARTENE*, Martine GUIGNI**, Pierre-Marie GAGEY***

* Université de Paris-Sud, Orsay

** Podologue

*** Institut de Posturologie, Paris

     En physique, un oscillateur est caractérisé par sa fréquence, son amplitude, et sa vitesse. Dans le cas où les oscillateurs sont complexes, la mécanique statistique permet de définir des moyennes sur des périodes bien déterminées. Le corps de l'homme debout au repos pouvant être assimilé à un oscillateur, nous proposons d'étudier une caractéristique physique de cet oscillateur: l'amplitude moyenne qui est la valeur moyenne de la distance des positions échantillonnées du centre de pression à la position moyenne du centre de pression.

où: O représente la position moyenne du centre de pression

Xi la nième position échantillonnée du centre de pression.

BASE DE DONNÉES

     L'étude de la distribution statistique du paramètre a été réalisée à partir des enregistrements, en situation yeux ouverts et yeux fermés, sur plate-forme de stabilométire normalisée (Bizzo et al., 1985) dans les conditions normalisées de l'Association Française de Posturologie (AFP, 1985), de 100 sujets, 50 hommes (âge moyen 31 ans ± 10,8) et 50 femmes (âge moyen 33 ans ± 10,1), sélectionnés uniquement sur des données d'interrogatoire (absence de maladie neurologique, de rachialgies depuis 3 mois, de troubles de l'équilibre) et sans tenir compte de leur profil psychologique.

     L'étude des variations aléatoires intraindividuelles (répétabilité) a été réalisée à partir des enregistrements sur plate-forme de stabilométrie normalisée (Bizzo et al., 1985) dans les conditions normalisées de l'Association Française de Posturologie (AFP, 1985), de 40 sujets volontaires rétribués, hommes (âge moyen 26ans ± 4 ans), sélectionnés sur les critères de normalité de leur bilan postural clinique et stabilométrique, enregistrés 4 fois, à 8 jours d'intervalle, le même jour de la semaine et à la même heure.

DISTRIBUTION STATISTIQUE DE PARAMÈTRE D'AMPLITUDE MOYEN

      Le paramètre d'amplitude moyen représentant approximativement la racine carrée de la surface de l'elllipse de confiance, ces deux paramètres ont été calculés à partir de la base de données de façon à permettre leur comparaison (Algorithme en Appendice).

Situation Yeux ouverts    

     Dans la cohorte de sujets qui a servi de base de données, le paramètre d'amplitude moyen, en situation yeux ouverts, a pour :

Moyenne: 3,5 mm

écart-type 1,0 mm

LC Supérieure 5,5 mm
LC Inférieure 1,5 mm
Coefficient de corrélation de Pearson entre la distribution de la surface de l'ellipse de confiance à 90% et le paramètre d'amplitude moyen: r = 0,94

Coefficient de corrélation de Pearson entre la distribution de la surface de l'ellipse de confiance à 98% et le paramètre d'amplitude moyen: r = 0,94

FIG. 1 — Comparaison du paramètre d'amplitude moyen (Ordonnées) et de la surface de l'ellipse de confiance à 90% en situation yeux ouverts (N=88)

 Situation Yeux fermés    

    Dans la cohorte de sujets qui a servi de base de données, le paramètre d'amplitude moyen, en situation yeux fermés, a pour:

Moyenne: 5,6 mm

écart-type 1,7 mm

LC Supérieure 9,0 mm
LC Inférieure 2,1 mm
Coefficient de corrélation de Pearson entre la distribution de la surface de l'ellipse de confiance à 90% et le paramètre d'amplitude moyen: r = 0,91

FIG. 2 — Comparaison du paramètre d'amplitude moyen (Ordonnées) et de la surface de l'ellipse de confiance à 90% en situation yeux fermés (N=98)

DISTRIBUTION DES VARIATIONS ALÉATOIRES DU PARAMÈTRE D'AMPLITUDE MOYEN ENTRE PLUSIEURS ENREGISTREMENTS SUCCESSIFS A HUIT JOURS D'INTERVALLE.

    La distribution du paramètre d'amplitude pouvant être considérée comme normale, nous avons étudié la distribution de la différence appariée des valeurs de ce paramètre entre les enregistrements successifs réalisés à huit jours d'intervalle, soit trois différences pour chacun des 40 sujets.

Situation Yeux ouverts    

     Dans la cohorte de sujets qui a servi de base de données, les variations aléatoires intraindividuelles du paramètre d'amplitude moyen, en situation yeux ouverts, ont pour :

Moyenne: 0,02 mm

écart-type 1,35 mm

LC Supérieure 2,7 mm
LC Inférieure 2,6 mm

FIG.3 — Histogramme de la distribution des variations aléatoires intraindividuelles du paramètre d'amplitude moyen en situation yeux ouvert. (N=120)

Situation Yeux fermés    

     Dans la cohorte de sujets qui a servi de base de données, les variations aléatoires intraindividuelles du paramètre d'amplitude moyen, en situation yeux fermés, ont pour :

Moyenne: -0,01 mm

écart-type 1,36 mm

LC Supérieure 2,66 mm
LC Inférieure -2,68 mm

Références

A.F.P. (1985) Normes 85. Editées par l'Association Posture et Équilibre, 66, rue de Lisbonne 75008 Paris.

Bizzo G., Guillet N., Patat A., Gagey P.M. (1985) Specifications for building a vertical force platform designed for clinical stabilometry. Med. Biol. Eng. Comput., 23: 474-476.

Appendice

Programme de calcul des paramètres étudiés

program SarteneParam;

{ Ouvre un fichier Patient de type ordinaire, véhiculant le générique de chaque enregistrement: nom, prénom etc. ;}
{ Ouvre un par un les enregistrements du fichier; calcule les paramètres de Surface, X-moyen, Y-moyen, AmplitudeSartene, }
{selon la situation; Stocke dans un fichier «Résultats» le générique et la valeur des paramètres}
{ }
{ }
{ ATTENTION aux unités, les valeurs doivent être traitées en millimètres}
{ ATTENTION ! aux conditions YO et YF, elles peuvent trier }
{ ATTENTION ! On considère qu'il n'y a pas plus de 256 enregistrments dans la base de données, }
{ sinon la définition de Sarea et Ampsart doit etre modifiee}

type
marray = array[1..2, 1..256] of real;
parray = array[0..256] of real;
sarray = file of record
Name: string[20];
pname: string[20];
page: string[20];
pdate: string[20];
psituation: string[20];
rparam: marray;
end;


var

Param: marray;
Patient: sarray;
Sarea, XAD, YAD, Ampsart: parray; (* Ampsart: amplitude moyenne proposée par le professeur SARTENE *)
oui: Rect;
p: text;
nom, prenom, age, date, situation: string[20];
Xmean, Ymean: real;
passage: integer;



procedure TELL;

var
SX, SY, S2X, S2Y, SXY, VRX, VRY, CVR, T, ROOT1, ROOT2, RINF, RSUP, APA, VGA: REAL;
VPA, LGA, LPA, Pente: REAL;
I: INTEGER;
CH: CHAR;

procedure SOMME;

var
N, i: INTEGER;


begin (* SOMME *)
N := 256;
SX := 0;
SY := 0;
S2X := 0;
S2Y := 0;
SXY := 0;
for i := 1 to 256 do
begin
SX := SX + XAD[I];
SY := SY + YAD[I];
S2X := S2X + XAD[I] * XAD[I];
S2Y := S2Y + YAD[I] * YAD[I];
SXY := sXY + XAD[I] * YAD[I];
end;
Xmean := SX / N;
Ymean := SY / N;
VRX := (S2X - SX * SX / N) / (N - 1);
VRY := (S2Y - SY * SY / N) / (N - 1);
CVR := (SXY - SX * SY / N) / (N - 1);
end; (* SOMME *)

procedure SURFA;


begin (* SURFA *)
if CVR = 0 then
PENTE := 0
else
begin
T := (VRX - VRY) / CVR;
ROOT1 := -T / 2 + (SQRT(T * T + 4)) / 2;
ROOT2 := -T / 2 - (SQRT(T * T + 4)) / 2;
if ROOT1 > ROOT2 then
begin
RSUP := ROOT1;
RINF := ROOT2;
end
else
begin
RSUP := ROOT2;
RINF := ROOT1;
end;
if CVR < 0 then
PENTE := RSUP
else
PENTE := RINF;
end;
if PENTE <> 0 then
begin
APA := -1 / PENTE;
end
else
APA := -1000 * 1000;
VGA := (PENTE * PENTE * VRX - 2 * PENTE * CVR + VRY) / (PENTE * PENTE + 1);
VPA := (APA * APA * VRX - 2 * APA * CVR + VRY) / (APA * APA + 1);
LGA := SQRT(VGA * 4.60); (* 4,60 pour l'ellipse à 90% *)
LPA := SQRT(VPA * 4.60);
SAREA[passage] := 3.14159 * LPA * LGA;
(* SAREA := SAREA * 10000; *)
end; (* SURFA *)

procedure AMPMOY;

var
i: integer;
Amp: parray;



begin (* AMPMOY *)
Ampsart[passage] := 0;
for i := 1 to 256 do
begin
Amp[i] := SQRT(SQR(XAD[i] - Xmean) + SQR(YAD[i] - Ymean));
Ampsart[passage] := Ampsart[passage] + Amp[i];
end;
Ampsart[passage] := Ampsart[passage] / 255;
end; (* AMPMOY *)


begin (* TELL *)
SOMME;
SURFA;
AMPMOY;
end; (* TELL *)

procedure Tri;

var

i, Ech: integer;
SauveA, SauveS: real;

procedure echange;

begin (* echange *)
SauveS := Sarea[i + 1];
SauveA := Ampsart[i + 1];
Sarea[i + 1] := Sarea[i];
Ampsart[i + 1] := Ampsart[i];
Sarea[i] := SauveS;
Ampsart[i] := SauveA;
end; (* echange *)

begin (* tri *)
repeat
Ech := 0;
for i := 0 to (Passage - 1) do
begin (* i *)
if Sarea[i] > Sarea[i + 1] then
begin (* if *)
echange;
Ech := Ech + 1;
end; (* i *)
end; (* i *)
until ech = 0;
end; (* tri *)


procedure Boucle;

var
j: integer;

begin (* boucle *)
Passage := 0;
Open(p, 'Résultats');
(* Writeln(p, ' Nom ; Situation ; X-moyen'); *)
Open(Patient, 'Patient');
while not EOF(Patient) do
(* for passage := 1 to 4 do *)
begin
(* Seek(Patient, passage); *)
with Patient^ do
begin
Nom := Name;
prenom := pname;
age := page;
date := pdate;
situation := psituation;
param := rparam;
end;
if situation = 'YF' then
begin
for j := 1 to 256 do
begin
XAD[j] := param[1, j]; (* faire ici si nécessaire la conversion en millimètres *)
YAD[j] := param[2, j]; (* conversion en millimètres *)
end; (* j *)
Tell;
Writeln(Passage, ' ', situation);
end; (* if *)
Passage := Passage + 1;
get(Patient);
end; (* EOF ou Passage*)
Close(Patient);
Tri;
for j := 0 to passage do
begin (* j *)
Writeln(p, ' Surface = ', Sarea[j] : 3 : 2, ' ; Amplitude = ', Ampsart[j] : 3 : 2);
end; (* j *)
Close(p);
end; (* boucle *)


begin (* Main *)
with oui do
begin
top := 470;
left := 0;
right := 500;
bottom := 800;
end;
SetTextRect(oui);
Showtext;
boucle;
writeln('n''oubliez pas ce changer le nom du ficher résultats avant de répéter le programme');
end. (* Main *)

program RepetAmpliSartene;

{ Lit le fichier TotPatient.R8 (répétition à 8 jours d'intervalle). }
{ Pour la situation YO ou YF, Calcule pour chaque enregistrement l'amplitude moyenne de Sartène.}
{ Ecrit dans un fichier 'Feuille' le générique (éventuellement), le paramètre, et ';' pour préparer la mise en}
{tableau dans Word. L'analyse statistique sera faite dans Excel}

type
marray = array[1..2, 1..256] of real;
parray = array[0..256] of real;
sarray = file of record
Name: string[20];
pname: string[20];
page: string[20];
pdate: string[20];
psituation: string[20];
rparam: marray;
end;

var
i, r, parint, Passage: integer;
Param: marray;
Patient: sarray;
XAD, YAD: parray; (* Ampsart: amplitude moyenne proposée par le professeur SARTENE *)
Xmean, Ymean, Ampsart: real;
Fe: text;
Nom, prenom, age, date, situation: string[20];


procedure TELL;

var
SX, SY, S2X, S2Y, SXY, VRX, VRY, CVR, T, ROOT1, ROOT2, RINF, RSUP, APA, VGA: REAL;
VPA, LGA, LPA, Pente: REAL;
I: INTEGER;
CH: CHAR;

procedure SOMME;

var
N, i: INTEGER;


begin (* SOMME *)
N := 256;
SX := 0;
SY := 0;
for i := 1 to 256 do
begin
SX := SX + XAD[I];
SY := SY + YAD[I];
end;
Xmean := SX / N;
Ymean := SY / N;
end; (* SOMME *)


procedure AMPMOY;

var
i: integer;
Amp: parray;

begin (* AMPMOY *)
Ampsart := 0;
for i := 1 to 256 do
begin
Amp[i] := SQRT(SQR(XAD[i] - Xmean) + SQR(YAD[i] - Ymean));
Ampsart := Ampsart + Amp[i];
end;
Ampsart := Ampsart / 256;
end; (* AMPMOY *)


begin (* TELL *)
SOMME;
AMPMOY;
end; (* TELL *)


begin
showtext;
Passage := 0; (* = 1 si YF *)
Open(Fe, 'Feuille');
Open(Patient, 'TotPatient');
while not EOF(Patient) do
begin
with Patient^ do
begin
Nom := Name;
prenom := pname;
age := page;
date := pdate;
situation := psituation;
for i := 1 to 256 do
begin
for parint := 1 to 2 do
begin
param[parint, i] := rparam[parint, i];
end; (* parint *)
XAD[i] := param[1, i];
YAD[i] := param[2, i];
end; (* i *)
end; (* ^ *)
if situation = 'YO' then
begin (* situation *)
Passage := Passage + 1;
Tell;
writeln(Fe, Nom, ' ', prenom, ' ', age, ' ', date, ' ', situation, ';', Ampsart : 2 : 2); (* Fe, *)
if Passage = 4 then
begin (* passage *)
Passage := 0;
writeln(Fe, ';');
end; (* passage*)
end; (* situation *)
get(Patient); (* à mettre ici en service si on utilise EOF *)
end; (* EOF *)
close(Patient);
close(fe);
end.

Remerciements au Laboratoire Rhône-Poulenc

Retour à la page Sommaire français