# SAS - Bland Altman Analysis

Airlock tutorial 2020-11-19 20:12:34

SAS - Bland Altman Analysis Bland-Altman Analysis is a process to check the extent of agreement or disagreement between two methods designed to measure the same parameters. A high correlation between the methods indicates that a sufficiently good sample was chosen in the data analysis. In SAS, we create a Bland-Altman plot by calculating the mean, upper bound, and lower bound of the values of the variables. We then use PROC SGPLOT to create the Bland-Altman graph. Syntax The basic syntax for applying PROC SGPLOT in SAS is - PROC SGPLOT DATA = dataset; SCATTER X = variable Y = variable; REFLINE value; Here is the deion of the parameters used - Dataset is the name of the set of data . The SCATTER instruction marks the point cloud de the value supplied as X and Y. REFLINE creates a horizontal or vertical reference line. Example In the example below, we take the result of two experiments generated by two methods named new and old. We calculate the differences in the values of the variables as well as the average of the variables of the same observation. We also calculate the standard deviation values to use in the upper and lower limits of the calculation. The result shows a Bland-Altman graph as a cloud of points. data mydata; entry 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; diff data; set mydata; / * calculate the difference * / diff = new-old; / * calculate the average * / average = (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; to leave; proc sgplot data = diffs; dispersion x = mean y = diff; refline 0 and above and below er / LABEL = ( "zerobiasline" "upper limit of 95% " "lower limit of 95% "); TITLE "Bland-Altman Plot "; footnote "Accurate prediction with 10% consistent error "; run ; to leave ; When the above code is executed we get the following result - Improved model In an improved model of the above program, we get a 95% confidence level curve fit. 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 "Trackimproved from Bland-Altman "; footnote "Accurate prediction with 10% consistent error "; run ; to leave ; When the above code is executed we get the following result -