/* EQ-5D U.S. PREFERENCE-WEIGHTED INDEX */ /* Author: James W. Shaw */ /* Date: May 20, 2004 */ /* Program was written with Stata/SE 8.0 but is compatible with earlier versions of the application. */ /* The scoring algorithm presented below was taken from: Shaw JW, Johnson JA, Coons SJ. U.S. Valuation of the EQ-5D Health States: Development and Testing of the D1 Valuation Model. Medical Care. Submitted 2004. */ /* This program computes the U.S. preference-weighted index score using self-reported EQ-5D data. It is presumed that the data set includes the following five variables: Dimension Variable Name Range -------------------------------------------------- Mobility MO 1-3 Self-care SC 1-3 Usual activities UA 1-3 Pain/discomfort PD 1-3 Anxiety/depression AD 1-3 -------------------------------------------------- where a 1 indicates no problems, a 2 indicates moderate problems, and a 3 indicates severe problems. The variables containing responses for the five dimensions must be named as above (in capital letters). Missing values should be left blank (i.e., a '.' should not be substituted for a missing value). The index score will not be generated when responses are missing for 1 or more of the five dimensions. */ /* Generate Dummy Variables for Levels 2 and 3 of Five Dimensions */ gen m1 =0 gen m2 =0 gen s1 =0 gen s2 =0 gen u1 =0 gen u2 =0 gen p1 =0 gen p2 =0 gen a1 =0 gen a2 =0 replace m1 = 1 if MO == 2 replace m2 = 1 if MO == 3 replace s1 = 1 if SC == 2 replace s2 = 1 if SC == 3 replace u1 = 1 if UA == 2 replace u2 = 1 if UA == 3 replace p1 = 1 if PD == 2 replace p2 = 1 if PD == 3 replace a1 = 1 if AD == 2 replace a2 = 1 if AD == 3 /* Generate Interaction Terms (I2, I2-squared, I3, I3-squared) */ gen m0 = 1 if m1 == 0 & m2 == 0 gen s0 = 1 if s1 == 0 & s2 == 0 gen u0 = 1 if u1 == 0 & u2 == 0 gen p0 = 1 if p1 == 0 & p2 == 0 gen a0 = 1 if a1 == 0 & a2 == 0 egen i2 = neqany(m1 s1 u1 p1 a1), values(1) replace i2 = i2 - 1 replace i2 = 0 if i2<0 gen i22 = i2^2 egen i3 = neqany(m2 s2 u2 p2 a2), values(1) replace i3 = i3 - 1 replace i3 = 0 if i3<0 gen i32 = i3^2 /* Generate D1 Term */ egen i1 = neqany(m0 s0 u0 p0 a0), values(1) gen d1 = 4 - i1 replace d1 = 0 if d1<0 /* Generate Raw Index Score */ gen pred = .146016*m1 + .557685*m2 + .1753425*s1 + .4711896*s2 + .1397295*u1 + .3742594*u2 + .1728907*p1 + .5371011*p2 + .156223*a1 + .4501876*a2 + -.1395949*d1 + .0106868*i22 + -.1215579*i3 + -.0147963*i32 gen EQ_index = 1 - pred replace EQ_index = . if MO == . | SC == . | UA == . | PD == . | AD == . /* Drop Variables Generated by Program */ drop m1-pred