SAS – Análisis Bland Altman

El análisis de Bland-Altman es el proceso de comprobar el grado de acuerdo o desacuerdo entre dos métodos diseñados para medir los mismos parámetros. Una alta correlación entre los métodos indica que se seleccionó una muestra bastante buena para el análisis de datos. En SAS, creamos un gráfico de Bland-Altman calculando los límites medio, superior e inferior de los valores de las variables. Luego usamos PROC SGPLOT para crear un gráfico de Bland-Altman.

Sintaxis

La sintaxis básica para aplicar PROC SGPLOT en SAS es:

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

A continuación se muestra la descripción de los parámetros utilizados:

  • Conjunto de datos este es el nombre del conjunto de datos.

  • DISPERSIÓN traza un diagrama de dispersión de valores representados en forma de X e Y.

  • REVISAR crea una línea de referencia horizontal o vertical.

Ejemplo

En el siguiente ejemplo, tomamos el resultado de dos experimentos creados con dos métodos, nuevo y antiguo. Calculamos las diferencias en los valores de las variables así como la media de las variables de la misma observación. También calculamos los valores de desviación estándar que se utilizarán en el límite superior e inferior del cálculo.

El resultado muestra el gráfico de Bland-Altman como un gráfico de dispersión.

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 ;

Cuando se ejecuta el código anterior, obtenemos el siguiente resultado:

bland_altman_1

Modelo extendido

En un modelo mejorado del programa anterior, obtenemos un ajuste de curva de nivel de confianza del 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 ;

Cuando se ejecuta el código anterior, obtenemos el siguiente resultado:

bland_altman_2

🚫