Учебники

SAS — Мягкий Альтман Анализ

Анализ Бланда-Альтмана — это процесс проверки степени согласия или несогласия между двумя методами, предназначенными для измерения одних и тех же параметров. Высокая корреляция между методами указывает на то, что при анализе данных была выбрана достаточно хорошая выборка. В SAS мы создаем график Бланда-Альтмана, вычисляя среднее, верхний и нижний пределы значений переменных. Затем мы используем PROC SGPLOT для создания сюжета Бланда-Альтмана.

Синтаксис

Основной синтаксис применения PROC SGPLOT в SAS —

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

Ниже приведено описание используемых параметров:

  • Набор данных — это имя набора данных.

  • Оператор SCATTER создает график графика рассеяния значения, представленного в форме X и Y.

  • REFLINE создает горизонтальную или вертикальную контрольную линию.

Набор данных — это имя набора данных.

Оператор SCATTER создает график графика рассеяния значения, представленного в форме X и Y.

REFLINE создает горизонтальную или вертикальную контрольную линию.

пример

В приведенном ниже примере мы берем результат двух экспериментов, сгенерированных двумя методами, названными new и old. Мы рассчитываем различия в значениях переменных, а также среднее значение переменных одного и того же наблюдения. Мы также рассчитываем значения стандартного отклонения, которые будут использоваться в верхней и нижней границе расчета.

Результат показывает график Бланда-Альтмана как график рассеяния.

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 ;

Когда приведенный выше код выполняется, мы получаем следующий результат —

bland_altman_1

Улучшенная модель

В расширенной модели вышеуказанной программы мы получаем подгонку кривой уровня достоверности 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 ;

Когда приведенный выше код выполняется, мы получаем следующий результат —