620 likes | 982 Views
Estimating IRT models with - gllamm -. Herbert Matschinger University of Leipzig – Department für Psychiatry e-mail: math@medizin.uni-leipzig.de. “Health-Related Quality Of Life” (HRQOL) . 5 3 - categorical items to assess health related quality of lifi. dichotomized {1} {2,3} Mobility
E N D
Estimating IRT models with - gllamm - Herbert Matschinger University of Leipzig – Department für Psychiatry e-mail: math@medizin.uni-leipzig.de
“Health-Related Quality Of Life” (HRQOL) • 5 3 - categorical items to assess health related quality of lifi. • dichotomized {1} {2,3} • Mobility • Self-care • Usual (Daily) activities • Pain/discomfort • Anxiety/depression
Data • European Study of the Epidemiology of Mental Disorders (ESEMeD) • 2001 - 2003 • 6 European countries :N = 21425 • Belgium2419 • France2894 • Germany. 3555 • Italy4712 • The Netherlands2372 • Spain5473
Research Questions • Do these 5 items measure one single dimension ? • Is the sum of endorsements a sufficient statistic? • Do the item parameters differ between countries ? • Do the discrimination parameters differ between countries ? • How much dimensions should be assumed
Random Intercept Modell 2 sets of predictors : 1) X – fixed effects 2) Z – random effects De Boeck,P. and Wilson,M. (2004). Exploratory Item Response Models: A General Linear and Nonlinear Approach. New York, Berlin: Springer.
1 and 2- Parameter IRT ηpi = log(πpi/(1-πpi) Logit[Pr(ypi = 1; θp)] = - βi + θp random intercept θp θp0Zi0 fixe Effekte -βi Logit[Pr(ypi = 1; θp)] = -βi + λiθp Logit[Pr(ypi = 1; θp)] = X´pi βi + θp X´pi λi
Preparation of the data • egen pattern = group(eurod1-eurod5 countryn) • drop if pattern ==. • contract eurod1-eurod5 countryn pattern,f(wt2) • reshape long eurod,i(pattern)j(item) • for num 1/5:gen itemX=0 \ replace itemX=1 if item ==X
1 -Parameter model for all 6 countries gllamm eurod item1-item5, nocons link(logit) fam(bin) i(pattern) w(wt) adapt dot Intercept (-β) SE item1 ; -3.528638 .043579 item2 ; -5.576689 .061522 item3 ; -3.851309 .045826 item4 ; -1.809436 .033516 item5 ; -4.449809 .050426 var(θ) = 6.4802599 .16565955 log likelihood = -31545.688
gllapred raschu,u - [posterior means] (means and standard deviations will be stored in raschum1 raschus1) Non-adaptive log-likelihood: -31522.338 -3.155e+04 -3.155e+04 -3.155e+04 -3.155e+04 -3.155e+04 Log-likelihood:-31545.694 gllapred raschmu,mu - [response probabilities] (mu will be stored in raschmu) Non-adaptive log-likelihood: -31522.338 -3.155e+04 -3.155e+04 -3.155e+04 -3.155e+04 -3.155e+04 Log-likelihood:-31545.694
gr7 raschmu raschum1,s([item]) t2("1 - Parameter No Differential Item Functioning - no country effect") ylab(0(0.1)1) yline(.5) psize(120) xline(0)
2 – Parameter (Birnbaum) model eq discrim: item1-item5 gllamm eurod item1-item5, nocons link(logit) fam(bin) i(pattern) w(wt) eqs(discrim) adapt dot e(b)[1,10] eurod: eurod: eurod: eurod: eurod: pat1_1l: pat1_1l: item1 item2 item3 item4 item5 item2 item3 y1 -4.8818004 -8.507911 -7.8598477 -1.6312255 -2.9198215 1.1467799 1.562892 pat1_1l: pat1_1l: pat1_1: item4 item5 item1 y1 .55341432 .27273694 3.8073739 constraint def 1 [pat1_1]item1=1 gllamm eurod item1-item5, nocons link(logit) fam(bin) i(pattern) w(wt) constr(1) frload(1) eqs(discrim) adapt dot
2 - Parameter Model Intercept SE item1 ; -4.885114 .1492511 item2 ; -8.501162 .3370249 item3 ; -7.840406 .3939964 item4 ; -1.630332 .0350471 tem5 ; -2.919229 .0394554 var(1): 1 (0) loadings for random effect 1 item1: 3.8137476 (.13478418) item2: 4.3643911 (.20426133) item3: 5.9397444 (.32311677) item4: 2.1078878 (.05010409) item5: 1.0385574 (.03638325) LL = -30547.222
gr7 intmu intum1 ,s([item]) t2("2 - Parameter No Differential Item Functioning - no country effect") ylab(0(0.1)1) yline(.5) psize(120)
1 –Parameter model / effect on θ • Generate two sets of indicator variables for two different reference categories • Estimate the model twice for different reference categories • Compare the two results with respect to the differences of the fixed parameters (item difficulties)
1 –Parameter model / effect on θ • char countryn[omit] 1 or • char countryn[omit] 2 • xi3:eq f1: i.country • gllamm eurod item1 item2 item3 item4 item5,link(logit) fam(bin) adapt dot i(pattern) w(wt) nocons geqs(f1) Caveat: The output does not tell you what contrast you have employed
1 –Parameter model effect on θ (reference group is Belgium (1)) Intercept (-β) SEeffect SE Reference = Belgium item1 | -3.510938 .0803299 France .54711696 (.0949265) item2 | -5.55874 .0912916 Germany -.11129763 (.0931433) item3 | -3.833834 .0815657 Italy -.19944865 (.08868224) item4 | -1.788838 .0753648 Netherlands .14494306 (.10088877) item5 | -4.432465 .0842277 Spain -.21903409 (.08672157) var(1): 6.4690974 (.16557056) LL = -31485.737 26
1 –Parameter model effect on θ (reference group is France (2)) Intercept (-β) SEeffect SE Reference = France item1 | -2.96341 .0696799 Belgium -.54803974 (.09490968) item2 | -5.01124 .0813064 Germany -.65890334 (.08620927) item3 | -3.28631 .0709361 Italy -.74705435 (.08142842) item4 | -1.24127 .0651058 Netherlands -.40267533 (.09432633) item5 | -3.88495 .0737165 Spain -.76663319 (.07938433) var(1): 6.4690974 (.16557056) LL = -31485.737
Differences between „fixed“ parameters (β) France -2.96341 -5.011237 -3.28631 -1.241268 -3.884948 BelgiumDifference -3.510938 -5.55874 -3.833834 0.548 for each item -1.788838 -4.432465
Systematics in differences • The „fixed“ parameter depend on the contrast employed for the predictor. • The „fixed“ parameter are the item difficulties for the reference category of the predictor. • The difference in difficulties between the two estimates are the differences between the two reference categories (countries) • These differences are the same for all items
Modeling country differences via „fixed“ effects / effects on β • The „fixed“ effects depend on the reference category • Choose category 1 (Belgium) for reference • Define all possible interaction effects between the items and the 5 dummies (France to Spain) • Constrain all the 5 interaction effects to be equal for each item
Interactions and constraints char countryn[omit] xi3: i.countryn*item1 i.countryn*item2 i.countryn*item3 i.countryn*item4 i.countryn*item5 for A in num 2/5 \ B in num 1/4:constraint def A _Ico2Xit = _IBco2Xit for A in num 6/9 \ B in num 1/4:constraint def A _Ico3Xit = _IBco3Xit for A in num 10/13 \ B in num 1/4:constraint def A _Ico4Xit = _IBco4Xit for A in num 14/17 \ B in num 1/4:constraint def A _Ico5Xit = _IBco5Xit for A in num 18/21 \ B in num 1/4:constraint def A _Ico6Xit = _IBco6Xit
gllamm syntax gllamm eurod item1- item5 _Ico2Xit- _I4co6Xit, link(logit) fam(bin)i(pattern) w(wt) nocons adapt dot constr(2/21) gllamm model with constraints: ( 1) [eurod]_Ico2Xit - [eurod]_I1co2Xit = 0 ( 2) [eurod]_Ico2Xit - [eurod]_I2co2Xit = 0 ( 3) [eurod]_Ico2Xit - [eurod]_I3co2Xit = 0 ( 4) [eurod]_Ico2Xit - [eurod]_I4co2Xit = 0 ( 5) [eurod]_Ico3Xit - [eurod]_I1co3Xit = 0 ( 6) [eurod]_Ico3Xit - [eurod]_I2co3Xit = 0 ( 7) [eurod]_Ico3Xit - [eurod]_I3co3Xit = 0 ( 8) [eurod]_Ico3Xit - [eurod]_I4co3Xit = 0 ( 9) [eurod]_Ico4Xit - [eurod]_I1co4Xit = 0 (10) [eurod]_Ico4Xit - [eurod]_I2co4Xit = 0 (11) [eurod]_Ico4Xit - [eurod]_I3co4Xit = 0 (12) [eurod]_Ico4Xit - [eurod]_I4co4Xit = 0 (13) [eurod]_Ico5Xit - [eurod]_I1co5Xit = 0 (14) [eurod]_Ico5Xit - [eurod]_I2co5Xit = 0 (15) [eurod]_Ico5Xit - [eurod]_I3co5Xit = 0 (16) [eurod]_Ico5Xit - [eurod]_I4co5Xit = 0 (17) [eurod]_Ico6Xit - [eurod]_I1co6Xit = 0 (18) [eurod]_Ico6Xit - [eurod]_I2co6Xit = 0 (19) [eurod]_Ico6Xit - [eurod]_I3co6Xit = 0 (20) [eurod]_Ico6Xit - [eurod]_I4co6Xit = 0
Results item1 | -3.510822 .0803441 item2 | -5.558637 .0913007 item3 | -3.833719 .081579 item4 | -1.788679 .0753829 item5 | -4.432352 .0842393 France Ico2Xit | .5468687 .0949383 Germany Ico3Xit | -.1115037 .0931599 Italy Ico4Xit | -.1996552 .0887003 Netherlands Ico5Xit | .1447117 .1009002 Spain Ico6Xit | -.2192302 .0867413 ........................................... ........................................... I4co2Xit | .5468687 .0949383 I4co3Xit | -.1115037 .0931599 I4co4Xit | -.1996552 .0887003 I4co5Xit | .1447117 .1009002 I4co6Xit | -.2192302 .0867413 Belgium Item 1 Item 5
var(1): 6.4695502 (.16557072)LL= -31485.71012285193Compare with results from slide 19 These two models are equal ! Both models assume equal item functioning with respect to country differences
Modeling country differences without constraints on „fixed“ effects • Results for a model without these 20 constraints are completely different. • LL = -3115 compared to –31484 df(15) • Deviations from Belgium are different for each item • Item-difficulties are heterogeneous with respect to countries
Results item1 | -3.510822 .0803441 item2 | -5.558637 .0913007 item3 | -3.833719 .081579 item4 | -1.788679 .0753829 item5 | -4.432352 .0842393 France Ico2Xit | .2672621 .1360669 Germany Ico3Xit | .4485834 .1301335 Italy Ico4Xit | -.3667433 .1284983 Netherlands Ico5Xit | -.1668095 .1474595 Spain Ico6Xit | .1085338 .122575 France I1co2Xit | .1939196 .1898053 Germany I1co3Xit | -.6497205 .1954673 Italy I1co4Xit | -.3702901 .1787872 Netherlands I1co5Xit | -.2827915 .2075728 Spain I1co6Xit | -.1267169 .169957 Belgium Item 1 Item 2
Results cont. France I2co2Xit | -.2079065 .141196 Germany I2co3Xit | -.4445011 .1373677 Italy I2co4Xit | -.51551 .1304282 Netherlands I2co5Xit | .1836286 .1448181 Spain I2co6Xit | -.1787188 .1247335 France I3co2Xit | .6728065 .1156087 Germany I3co3Xit | -.0709686 .1138256 Italy I3co4Xit | -.1572684 .1080919 Netherlands I3co5Xit | .5405529 .1222693 Spain I3co6Xit | -.5646274 .1067354 France I4co2Xit | 1.640549 .1511489 Germany I4co3Xit | -.7005679 .1700497 Italy I4co4Xit | .4469239 .1478239 Netherlands I4co5Xit | -.9392069 .196039 Spain I4co6Xit | .1914548 .1461186 Item 3 Item 4 Item 5
2 –Parameter Modell effect on θ • Now we choose the e – contrast of xi3 • The model was estimated twice • Reference category 6 (Spain) • char countryn[omit] 6 • Reference category 1 (Belgium) • char countryn[omit] 1 • „Fixed“ effects keep virtually the same • „Loadings“ keep almost the same • The effect for the reference category is the negativ sum of all the other effects
2 –Parameter Modell effect on θ xi3:eq f1:e.country eq discrim: item1-item5 constraint def 2 [pat1_1]item1=1 gllamm eurod item1 item2 item3 item4 item5,link(logit) fam(bin) adapt dot i(pattern) w(wt) nocons geqs(f1) eqs(discrim) constr(2) frload(1) gllapred birncontu,u (means and standard deviations will be stored in birncontum1 birncontus1) gllapred birncontmu,mu (mu will be stored in birncontmu)
2 –Parameter Modell effect on θ Intercept SE Loading SE item 1: -4.801975 .1460378 item 1: 3.8015702 .13333549 item 2: -8.457937 .3378112 item 2: 4.3896022 .20675589 item 3: -7.658351 .3787267 item 3: 5.8764124 .31438171 item 4: -1.599355 .0351327 item 4: 2.1281491 .05062713 item 5: -2.903158 .0392471 item 5: 1.0433228 .03642365 Deviation SE (1) Belgium: .00116297 .0249041 LL=-30506 (2) France: .13703951 .0233686 (3) Germany: -.02622923 .0212044 (4) Italy: -.10642868 .0196428 (5) Netherlands: .06823874 .0252931 (6) Spain: -.07378098 .0181395
gr7 birncontmu birncontum1 ,s([countryn]) ylab(0(0.1)1) yline(0.5) t1("2 - Parameter No Differential Item Functioning - effect on theta") xline(0)
DIF for difficulties β(i-contrast) xi3: i.countryn*item1 i.countryn*item2 i.countryn*item3 i.countryn*item4 i.countryn*item5 i.countryn _Icountryn_1-6 (naturally coded; _Icountryn_1 omitted) unrecognized command: _Icountryn_ r(199); gllamm eurod item1-item5 _Ico2Xit- _I4co6Xit, nocons link(logit) fam(bin) i(pattern) w(wt) constr(2) frload(1) eqs(discrim) adapt dot . Caveat: You will never know later on what contrast you have employed
Belgium ------------------------------ | Coef. Std. Err. ------+----------------------- item1 | -5.060236 .2046231 item2 | -8.197401 .3721319 item3 | -7.625611 .4503168 item4 | -1.636369 .08049 item5 | -3.142707 .0942269
Item 1 ---------------------------------- | Coef. Std. Err. ------+--------------------------- _Ico2Xit | .3273206 .1845059 France _Ico3Xit | .6340536 .1725151 Germany _Ico4Xit | -.4935873 .1723957 Italy _Ico5Xit | -.1209027 .1988732 Netherlands _Ico6Xit | .1167805 .1615509 Spain
Item 2 ---------------------------------- | Coef. Std. Err. ------+--------------------------- _I1co2Xit | .2694966 .2662902 France _I1co3Xit | -.8450162 .2730304 Germany _I1co4Xit | -.6450119 .2538839 Italy _I1co5Xit | -.2683981 .2922587 Netherlands _I1co6Xit | -.2463331 .2377217 Spain
Item 3 ---------------------------------- | Coef. Std. Err. ------+--------------------------- _I2co2Xit | -.4286408 .2792733 France _I2co3Xit | -.780114 .2661109 Germany _I2co4Xit | -1.038312 .2641851 Italy _I2co5Xit | .5058603 .2947703 Netherlands _I2co6Xit | -.3856712 .2397361 Spain
Item 4 ---------------------------------- | Coef. Std. Err. ------+--------------------------- _I3co2Xit | .607621 .1018758 France _I3co3Xit | -.053771 .0992247 Germany _I3co4Xit | -.1220413 .0946785 Italy _I3co5Xit | .4768741 .1079205 Netherlands _I3co6Xit | -.5042381 .0935174 Spain
Item 5 ---------------------------------- | Coef. Std. Err. ------+--------------------------- _I4co2Xit | 1.061981 .1076839 France _I4co3Xit | -.4796974 .1252521 Germany _I4co4Xit | .3253115 .1061347 Italy _I4co5Xit | -.6806979 .1476796 Netherlands _I4co6Xit | .1797599 .104995 Spain
loadings for random effect 1 ***level 2 (id) var(1): 1 (0) item1: 3.8973286 (.14143303) item2: 4.3660867 (.20470644) item3: 6.1098725 (.35212898) item4: 2.1373606 (.05083788) item5: 1.0655632 (.03739259)
DIF for difficulty and discrimination (i-contrast) eq discrimc: item1-item5 _Ico2Xit- _I4co6Xit gllamm eurod item1- item5 _Ico2Xit- _I4co6Xit, link(logit) fam(bin) i(id) eqs(discrimc) constr(2) frload(1) w(wt) nocons adapt dot