SAS - Análisis Bland Altman

El análisis de Bland-Altman es un proceso para verificar 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 ha elegido una muestra suficientemente buena en el análisis de datos. En SAS creamos un gráfico de Bland-Altman calculando la media, el límite superior y el límite inferior de los valores de la variable. Luego usamos PROC SGPLOT para crear el 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:

  • Dataset es el nombre del conjunto de datos.

  • SCATTER enunciado genera el gráfico de dispersión del valor proporcionado en forma de X e Y.

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

Ejemplo

En el siguiente ejemplo, tomamos el resultado de dos experimentos generados por dos métodos denominados nuevo y antiguo. Calculamos las diferencias en los valores de las variables y también 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 un diagrama de Bland-Altman como diagrama 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:

Modelo mejorado

En un modelo mejorado del programa anterior, obtenemos un ajuste de curva de nivel de confianza del 95 por ciento.

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: