SAS - Analyse Bland Altman

L'analyse Bland-Altman est un processus pour vérifier l'étendue de l'accord ou du désaccord entre deux méthodes conçues pour mesurer les mêmes paramètres. Une corrélation élevée entre les méthodes indique qu'un échantillon suffisamment bon a été choisi dans l'analyse des données. Dans SAS, nous créons un graphique de Bland-Altman en calculant la moyenne, la limite supérieure et la limite inférieure des valeurs des variables. Nous utilisons ensuite PROC SGPLOT pour créer le tracé Bland-Altman.

Syntaxe

La syntaxe de base pour appliquer PROC SGPLOT dans SAS est -

PROC SGPLOT DATA = dataset;
SCATTER X = variable Y = Variable;
REFLINE value;

Voici la description des paramètres utilisés -

  • Dataset est le nom de l'ensemble de données.

  • SCATTER L'instruction marque le graphique en nuage de points de la valeur fournie sous la forme de X et Y.

  • REFLINE crée une ligne de référence horizontale ou verticale.

Exemple

Dans l'exemple ci-dessous, nous prenons le résultat de deux expériences générées par deux méthodes nommées nouvelle et ancienne. Nous calculons les différences dans les valeurs des variables ainsi que la moyenne des variables d'une même observation. Nous calculons également les valeurs d'écart type à utiliser dans la limite supérieure et inférieure du calcul.

Le résultat montre un graphique de Bland-Altman sous forme de nuage de points.

data mydata;
input new old;
datalines;
31 45
27 12
11 37
36 25
14 8
27 15
3 11
62 42
38 35
20 9
35 54
62 67
48 25
77 64
45 53
32 42
16 19
15 27
22 9
8 38
24 16
59 25
;

data diffs ;
set mydata ;
/* calculate the difference */
diff = new-old ;
/* calculate the average */
mean = (new+old)/2 ;
run ;
proc print data = diffs;
run;

proc sql noprint ;
select mean(diff)-2*std(diff),  mean(diff)+2*std(diff)
into   :lower,  :upper 
from diffs ;
quit;

proc sgplot data = diffs ;
scatter x = mean y = diff;
refline 0 &upper &lower / LABEL = ("zero bias line" "95% upper limit" "95%
lower limit");
TITLE 'Bland-Altman Plot';
footnote 'Accurate prediction with 10% homogeneous error'; 
run ;
quit ;

Lorsque le code ci-dessus est exécuté, nous obtenons le résultat suivant -

Modèle amélioré

Dans un modèle amélioré du programme ci-dessus, nous obtenons un ajustement de la courbe de niveau de confiance de 95%.

proc sgplot data = diffs ;
reg x = new y = diff/clm clmtransparency = .5;
needle x = new y = diff/baseline = 0;
refline 0 / LABEL = ('No diff line');
TITLE 'Enhanced Bland-Altman Plot';
footnote 'Accurate prediction with 10% homogeneous error'; 
run ;
quit ;

Lorsque le code ci-dessus est exécuté, nous obtenons le résultat suivant -