/* coded by Janel Hanmer, February 2005 */ /* The EQ-5D has five questions. I presume that all five items are scored so that 1= no problems, 2= some problems, 3= severe problems. I have labeled the questions in the same order as the questionnaire: eq5d1 = mobility eq5d2 = self-care eq5d3 = usual activities eq5d4 = pain/discomfort eq5d5 = anxious/depressed if any question is not answered ("."), then the score is not computed. */ /* This weighting is from Dolan P. Modeling valuations for EuroQol health states. Medical Care Vol 35, No. 11, pp. 1095-1108. 1997 This SAS code is based off SPSS code supplied by Rosalind Rabin EQ Group Business Management : compute value = 1.0. if (mob eq 2) value = value - .069. If (mob eq 3) value = value - .314. if (selfc eq 2) value = value - .104. if (selfc eq 3) value = value - .214. if (uact eq 2) value = value - .036. if (uact eq 3) value = value - .094. if (pain eq 2) value = value - .123. if (pain eq 3) value = value - .386. if (mood eq 2) value = value - .071. if (mood eq 3) value = value - .236. if (mob ne 1 or uact ne 1 or selfc ne 1 or pain ne 1 or mood ne 1) value = value - .081. if (mob eq 3 or selfc eq 3 or uact eq 3 or mood eq 3 or pain eq 3) value = value - .269. if (missing(mob) or missing(uact) or missing(selfc) or missing(pain) or missing(mood)) value = 9. missing values value (9). */ /* insert the location of your dataset below */ data EQ5D; set 'C: . . .'; run; data EQ5D; set EQ5D; EQUK=1.0; if eq5d1=2 then EQUK = EQUK - .069; if eq5d1=3 then EQUK = EQUK - .314; if eq5d2=2 then EQUK = EQUK - .104; if eq5d2=3 then EQUK = EQUK - .214; if eq5d3=2 then EQUK = EQUK - .036; if eq5d3=3 then EQUK = EQUK - .094; if eq5d4=2 then EQUK = EQUK - .123; if eq5d4=3 then EQUK = EQUK - .386; if eq5d5=2 then EQUK = EQUK - .071; if eq5d5=3 then EQUK = EQUK - .236; run; data EQ5D; set EQ5D; any=0; if eq5d1>1 then any = 1; if eq5d2>1 then any = 1; if eq5d3>1 then any = 1; if eq5d4>1 then any = 1; if eq5d5>1 then any = 1; if any=1 then EQUK = EQUK - .081; bad=0; if eq5d1=3 then bad = 1; if eq5d2=3 then bad = 1; if eq5d3=3 then bad = 1; if eq5d4=3 then bad = 1; if eq5d5=3 then bad = 1; if bad=1 then EQUK = EQUK - .269; run; data EQ5D; set EQ5D; if eq5d1=. then EQUK = .; if eq5d2=. then EQUK = .; if eq5d3=. then EQUK = .; if eq5d4=. then EQUK = .; if eq5d5=. then EQUK = .; run;