SAS - Bland Altman Analysis

Analiza Blanda-Altmana to proces mający na celu sprawdzenie zakresu zgodności lub braku zgody między dwiema metodami zaprojektowanymi do pomiaru tych samych parametrów. Wysoka korelacja między metodami wskazuje, że do analizy danych wybrano wystarczająco dobrą próbę. W SAS tworzymy wykres Blanda-Altmana, obliczając średnią, górną i dolną granicę wartości zmiennych. Następnie używamy PROC SGPLOT do tworzenia wykresu Blanda-Altmana.

Składnia

Podstawowa składnia stosowania PROC SGPLOT w SAS to -

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

Poniżej znajduje się opis użytych parametrów -

  • Dataset to nazwa zbioru danych.

  • SCATTER oświadczenie tworzy wykres punktowy wartości podanej w postaci X i Y.

  • REFLINE tworzy poziomą lub pionową linię odniesienia.

Przykład

W poniższym przykładzie bierzemy wynik dwóch eksperymentów wygenerowanych za pomocą dwóch metod nazwanych nowa i stara. Obliczamy różnice wartości zmiennych, a także średnią zmiennych z tej samej obserwacji. Obliczamy również wartości odchylenia standardowego, które mają być użyte w górnej i dolnej granicy obliczenia.

Wynik przedstawia wykres Blanda-Altmana jako wykres punktowy.

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 ;

Po wykonaniu powyższego kodu otrzymujemy następujący wynik -

Ulepszony model

W ulepszonym modelu powyższego programu otrzymujemy dopasowanie krzywej poziomu ufności 95 procent.

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 ;

Po wykonaniu powyższego kodu otrzymujemy następujący wynik -