This code calculates the AUC for outcome variable

advertisement
***This code calculates the AUC for outcome variable "vasbew". Time points are indicated
by "tydstip". Cases are arranged by "randonum" -> change the variables in this code to your
own outcome and time indication.
*First transform the data file from "long" to "wide". The code asks for the data to be in the
following format:
*randonum tydstip.1 tydstip.2 etc. vasbew.1 vasbew.2 etc.
*Transformation can be done using the "casetovars" method.
SORT CASES BY randonum.
CASESTOVARS
/ID=randonum
/GROUPBY=VARIABLE.
*Use the following algoritm to calculate the AUC for each case.
VECTOR time = tydstip.1 to tydstip.5.
VECTOR VASBEW = vasbew.1 to vasbew.5.
COMPUTE cmax = MAX(vasbew.1 to vasbew.5).
COMPUTE tmax = $sysmis.
COMPUTE lagVASBEW = $sysmis.
COMPUTE lagtime = $sysmis.
COMPUTE auc = 0.
LOOP #k = 1 to 5.
DO IF (NOT(MISSING(VASBEW(#k)))).
IF (NOT(MISSING(lagVASBEW)))
auc = auc + (time(#k) - lagtime)*(lagVASBEW + VASBEW(#k))/2 .
IF (VASBEW(#k) = cmax and missing(tmax)) tmax = time(#k) .
COMPUTE lagVASBEW = VASBEW(#k).
COMPUTE lagtime = time(#k).
END IF.
END LOOP.
EXECUTE.
* Save file with CMAX, TMAX, and AUC added, dropping the
* intermediate variables created for their calculation .
save outfile AUC.sav
/ drop = tydstip.1 to tydstip.5 lagVASBEW lagtime.
Download