June Zhou posted on Tuesday, January 29, 2013 - 8:57 pm
I am trying to run multilevel IRT Rasch models in Mplus and I have some questions listing as below:
1. In the 2-level 1PL IRT model, items (level-1) were nested in students (level-2), can I use Ex.7.27 and constrain all of loadings to be 1? How to add student-level predictors in the model?
2. In the 3-level 1PL IRT model, items (level-1) were nested in students (level-2) and students were nested in schools (level-3), should I use EX.10.5 and constrain all of loadings to be 1? How to add school-level predictors in the model?
1. This is not a multilevel model in Mplus. See Example 5.2 and 5.5.
2. This is a two-level model in Mplus. See Example 9.7 which includes a between-level covariate.
June Zhou posted on Wednesday, January 30, 2013 - 12:03 pm
Thank you very much for your advice, Dr. Muthen. I really appreciate your help.
June Zhou posted on Monday, April 01, 2013 - 4:15 pm
I am trying to run an MCMC Rasch model in Mplus. I have two questions:
1. When I tried to constrain item discrimination parameters (factor loading) to be 1, I found I only got identical loadings but they were not 1. Why?
2. In MCEX5.5, is the code "[u1$1-u10$1*-.5 u11$1-u20$1*.5]" meant to fix item difficulty parameters of the first 10 items to be -.5 and the last 10 items .5? If yes, can I change the values to -2.5, -0.5, 0, 0.5, and 2.5 since the range of item difficulty parameter is (-3, 3)?
1. If you hold them equal, one parameter will be estimated. That won't happen if you fix them @1.
2. Yes. The range of difficulty parameters depend on the variance of the factor. Using 3 implies variance one.
June Zhou posted on Wednesday, April 03, 2013 - 3:36 pm
Thank you so much for your prompt reply, Dr. Muthen! I really appreciate your help.
This time I am going to do a Monte Carlo study for a 2-level Rasch model with within and between-level variables in Mplus. Below are my codes. Compared with mcex10.5. I am not sure whether I defined my thresholds (item difficulty) accurately or not. Would you please give me some advice? Thank you for your time in advance.
Each item has just one set of thresholds (one if binary, several if polytomous) and the convention is that they are reported on the Between level. They cannot also be identified on the within level. This is in line with means/intercepts in regular multilevel analysis.
June Zhou posted on Monday, April 08, 2013 - 8:00 am
I see. Thank you so much for your reply! Sorry, I have another question: is there a statistic estimating the latent person ability parameter in IRT model in Mplus? Thank you in advance!
Dear Drs. Muthen, I want to simulate ordinal multilevel data that has DIF. I just know I should use 2 parameter logistic IRT model. please tell information about this model and steps of my simulation.I have a little information about this problem and I do not know where I can find about it?
Thank you for your answer. I know about the theory of multilevel IRT and I read and understand Samejima’s graded response model that you said in example 5.5 also I read your homepage.But I dont know how simulate multilevel IRT data? Do you look at this model like CFA? should I simulate from multilevel IRT or CFA?
Look at the Monte Carlo counterpart for Example 5.5. This was used to simulate the data for Example 5.5
þeyma posted on Wednesday, October 22, 2014 - 12:43 pm
Dear Drs. Muthen, I want to do multilevel mixture IRT analysis. But I am only interested in the differences across student level classes, when the data is multilevel (include school level). The diffuculty parameters are same across school level classes. I generated data in any other program and I used example 10.5 for analyse it. But I changed something in the syntax. Is that true?
VARIABLE:NAMES ARE u1-u8 dumb dum clus; USEVARIABLES = u1-u8; CATEGORICAL = u1-u8; CLASSES = cb(1) c(2); BETWEEN = cb; CLUSTER = clus; DATA: FILE = ex10.5.dat; ANALYSIS: TYPE = TWOLEVEL MIXTURE; ALGORITHM = INTEGRATION; PROCESSORS = 2; MODEL: %WITHIN% %OVERALL% f BY u1-u8; [f@0]; %BETWEEN% %OVERALL% %cb#1.c#1% [u1$1-u8$1]; %cb#1.c#2% [u1$1-u8$1]; OUTPUT: TECH1 TECH8;
Dear Drs. Muthen, I want to use multilevel ordinal logistic regression for determining DIF. How can I do it with Mplus? Can Mplus draw figures for uniform and non-uniform DIF? how can I do it? Thank you.
See UG ex 9.7, where you add direct effects from the covariates to factor indicators to capture DIF with respect to difficulty parameters/thresholds. You can do the plot as a function of the covariate values using an Adjusted probability plot option in the plot menu.
Dear Drs. Muthen, I follow your suggestion about finding DIF and logistic regression. I want to find DIF with logistic regression my response are ordinal and multilevel how I can do it? example 9.7 find DIF with CCFA but I want to do with logistic regression. Thanks
Dear Drs. Muthen, thanks for your answer.I wrote following program.x1(dependent variable) is peoples' answer to my first question(1,2,3,4,5),theta(independent variable)is ability and wv (independent variable)is the group indicator(1or2). I want to know this program is true for detection of DIF with ordinal logstic regression? and also when I run this program x1 and wv both are considered dependent variable?
TITLE: this is an example of a two-level ordinal logistic regression , a random intercept, and covariates DATA: FILE = "F:/Mplus.dat"; VARIABLE: NAMES = s clus per wv bv theta X1 X2 X3 X4 X5 s1 clus1 per1 wv1 bv1theta1 y1 y2 y3 y4 y5; usevariables X1 wv theta; CATEGORICAL = X1 wv ; WITHIN =wv theta; CLUSTER = clus; MISSING = ALL (999); ANALYSIS:TYPE = TWOLEVEL random; Estimator is MLR; Link=logit; MODEL: %WITHIN% X1 on wv theta; OUTPUT:Sampstat TECH1 TECH8;
Dear Drs. Muthen, Thank you for your kind response. I wrote following program.x1-x20 are item response(1,2,3,4,5),theta is ability and wv is the group indicator(1or2). at first I want to use multilevel ordinal logistic for detecting DIF but I simulate my data in R so I use external Monte Carlo simulation.I have 20 item and I should use ordinal logistic for each question how can I do it in my program? I replicate each condition 1000 time and want to calculate power and type 1 error rate. how can I do it? TITLE: this is an example of a two-level ordinal logistic regression , a random intercept, and covariates DATA: FILE = "F:/rep/replist.dat"; TYPE = MONTECARLO; VARIABLE: NAMES = s clus per wv bv theta X1 X2 . . . . X20 s1 clus1 per1 wv1 bv1 theta1 y1 y2 y3 y4 y5; usevariables X1 wv theta; MISSING=.; CATEGORICAL = X1 ; WITHIN =wv theta; CLUSTER = clus; MISSING = ALL (999); ANALYSIS: TYPE = TWOLEVEL random; Estimator is MLR; Link=logit; MODEL: %WITHIN% X1 on wv theta; %BETWEEN% X1 OUTPUT:Sampstat TECH1 TECH8;
I don't know what you have in mind by putting only x1 in the USEV statement since you have 20 items. I think you should either start from UG ex9.7 using Type=Twolevel (without the covariates), or start from UG ex 9.26 using Type=Crossclassified.
TITLE: this is an example of a two-level ordinal logistic regression , a random intercept, and covariates DATA: FILE = "F:/rep/replist.dat"; TYPE = MONTECARLO; VARIABLE: NAMES = clus wv x1-x20 usevariables x1-x20 wv; CATEGORICAL = x1-x20 ; WITHIN =wv; CLUSTER = clus; MISSING = ALL (999); ANALYSIS: TYPE = TWOLEVEL random; Estimator is MLR; Link=logit; MODEL: %WITHIN% theta BY x1-x20;
Thank you very much. I try to run DIF detection model when for example student are clustered in school so i show student and j show school. I am so sorry but how I can find type 1 error and power for b2=0(uniform DIF) and for b3=0(non uniform DIF). I want to know is it different between these two hypothesis? h0:logit(p(xij<k))=a+b1*theta+b2*wv+uj+eij and h1:logit(p(xij<k))=a+b1*theta+b2*wv+b3(wv*theta)+uj+eij or h0:b3=0 and h1:other wise best
I run this model: TITLE: this is an example of a two-level ordinal logistic regression , a random intercept, and covariates DATA: FILE = "F:/repetation/replist.dat"; TYPE = MONTECARLO; VARIABLE: NAMES = rep clus per wv bv theta x1-x20 rep1 clus1 per1 wv1 bv1 theta1 y1-y20; usevariables x1-x20 wv; CATEGORICAL = x1-x20 ; WITHIN =wv; CLUSTER = clus; MISSING = ALL (999); ANALYSIS: TYPE = TWOLEVEL random; Estimator is MLR; Link=logit; MODEL: %WITHIN% theta BY x1-x20; int | wv XWITH theta; x1-x20 ON wv int; %BETWEEN% x1-x20; OUTPUT:Sampstat TECH1 TECH8;
and I have this error: FATAL ERROR THERE IS NOT ENOUGH MEMORY SPACE TO RUN Mplus ON THE CURRENT INPUT FILE. THE ANALYSIS REQUIRES 21 DIMENSIONS OF INTEGRATION RESULTING IN A TOTAL OF 0.49879E+25 INTEGRATION POINTS. THIS MAY BE THE CAUSE OF THE MEMORY SHORTAGE. YOU CAN TRY TO FREE UP SOME MEMORY BY CLOSING OTHER APPLICATIONS THAT ARE CURRENTLY RUNNING. NOTE THAT THE MODEL MAY REQUIRE MORE MEMORY THAN ALLOWED BY THE OPERATING SYSTEM. REFER TO SYSTEM REQUIREMENTS AT www.statmodel.com FOR MORE INFORMATION ABOUT THIS LIMIT. rep1 was one of my smallest and simplest data set I have! In this simulated data I have 20 item response 25 cluster and 10 person in each cluster and my item response was binary (0,1)not ordinal(1,2,3,4,5). Thank you very much
which means that all 20 items are part of the analysis. That's why I need to see the item subscripts in your formulas to guide you regarding how to specify the Mplus input. I assume that a and the b's vary across items, but does u_j?
Q1. No. Take a look at UG ex 9.7. You have only one factor. And you want to hold loadings equal across levels. The UG describes how to do this. You can also read about multilevel IRT in the paper on our website:
Muthén, B. & Asparouhov, T. (2013). Item response modeling in Mplus: A multi-dimensional, multi-level, and multi-timepoint example. Download output files. Download table 6 output.
If this doesn't help, I suggest a psychometric or Mplus expert consultant. It is too much to try to teach this over Mplus Discussion.
Q2. You may want to ask this general question on SEMNET.
Thank you I read your article and some other articles. in my model: logit(p(xij<k))=a+b1*theta+b2*wv+b3(wv*theta)+uj+eij can I say theta_ij is person level ability and u_j is school level ability? best
My goal is run an IRT model on a measure for teachers that accounts for teachers being clustered in schools. Since I'm not interested in the school-level model, can this be accomplished with TYPE=COMPLEX to adjust for SEs or is it necessary to run a multilevel model? Thanks.
Both approaches take care of non-independence of observations. The Complex approach estimates the same parameters as in a single-level model whereas the twolevel approach estimates more parameters (between-level parameters as well). In many cases but not all, the model is "aggregatable" so that the single-level model isn't misfitting when estimated on data generated by a twolevel model. This is discussed in a simulation study in the paper on our web site (under Papers, Complex survey data analysis):
Muthén, B. & Satorra, A. (1995). Complex sample data in structural equation modeling. Sociological Methodology, 25, 267-316. download paper contact first author show abstract
Thanks, that was helpful. I tried the UG 12.6 steps (1 & 2) by first creating a MLIRT with a 9-item (binary) factor modeled at level 1 and generated 100 datasets. I then used those datasets to run a MC on the same factor structure using TYPE=COMPLEX. All estimates of power are 1 but bias is higher (highest=20%) and coverage is lower (lowest=74%) than the results from MC on the MLIRT analysis (where I used 500 replications). Also, power was not all 1.
1. Does it make sense for power to be 1 for everything in the COMPLEX analysis? 2. Why would the COMPLEX analysis results have higher bias than the MLIRT analysis?
If I understand accurately, non-aggregatable means that the factors on the two levels are not the same. In my situation, I generated data where there was only a factor on within and only variance on between. The model I’m estimating is also consistent with this. Does the aggregatable concept still apply?