Page 1 of 1

Is it possible to constrain the residual variance in MLwiN?

Posted: Mon Feb 01, 2021 10:45 pm
by erikruzek
Hi all,

I am running a longitudinal model on an outcome that was measured and scored using a 1-PL IRT model (Rasch). For each observation of the outcome, there is an associated standard error of measurement (SEM). Is it possible to fix or constrain the residual variance in a MLwiN model (via runmlwin or R2MLwiN) based on the SEM (I would use SEM^2)? I know this is doable in the HLM program, but I would much prefer to do this analysis in MLwiN.

Thanks,
Erik

Re: Is it possible to constrain the residual variance in MLwiN?

Posted: Mon Feb 01, 2021 11:04 pm
by ChrisCharlton
runmlwin follows the Stata syntax for defining constraints. See this previous post from George for some details:

viewtopic.php?t=773

For another example using runmlwin and R2MLwiN see Chapter 18 of the MLwiN User Guide replication examples:

runmlwin: https://www.bristol.ac.uk/cmm/software/ ... /examples/

R2MLwiN: https://www.bristol.ac.uk/cmm/software/ ... /examples/

Re: Is it possible to constrain the residual variance in MLwiN?

Posted: Tue Feb 02, 2021 12:01 am
by erikruzek
Hi George,

Thanks so much.

In the example you linked, the residual variance was set at a single value (scalar).

Code: Select all

constraint define 1 [RP1]var(cons) = 0.5
I would like to set the residual variance to a variable in the dataset given that the SEM is unique to each observation in the data.

Code: Select all

constraint define 1 [RP1]var(cons) = sem
Doing so gives me the following error:

Code: Select all

. runmlwin RIT time_a time_asq coho2 timea_coho2 timeasq_coho2 cons , level2(STUDENT_GRD_KEY: cons time_a time_asq) level
> 1(obs2: cons) nopause constraints(1) sd corr 
 
(note: constraint number 1 caused error r(111))
matrix e(Cns) not found
r(111);
Is it that I need to create a vector defined by the sem? Sorry if my terminology is off.

Re: Is it possible to constrain the residual variance in MLwiN?

Posted: Tue Feb 02, 2021 12:38 pm
by ChrisCharlton
Sorry, I misunderstood that you wanted to constrain the residual error variance rather than the residual variances themselves.

I had a brief discussion with George about this and he thinks that it might be possible through adding a pseudo level-1 for your s.e. measurements with a variance constrained to one. It would however be useful if you could provide the example that you have for doing this with HLM so that we can confirm the approach taken.

Re: Is it possible to constrain the residual variance in MLwiN?

Posted: Tue Feb 02, 2021 1:27 pm
by GeorgeLeckie
Hi Erik,

This would be my guess at what you want to do...
Think you want to specify a three-level model. So shift the usual two-level growth-curve model up to level-2 and level-3
Observations (level-1) within observations (level-2) within persons (level-3)
Then at the new level-1 you enter the constrained variance.
First make sure you have a variable in your dataset which stores the SEs associated with the predicted scores from the IRT model
Then make this variable random at level-1
Then constrain the variance of this variable to equal 1.

So something like...

. constraint define [RP1]var(sevariable) = 1
. runmlwin y cons time, level3(person: cons time) level2(obs: cons) level1(obs: sevariable) constraints(1)

You mention that you can do what you want in HLM. If there is an example dataset and output floating about on the net it would be good you first trying to replicate that to check that the above approach works. Actually, if you pass on the reference we will try to take a look too.

Best wishes

George

Re: Is it possible to constrain the residual variance in MLwiN?

Posted: Tue Feb 02, 2021 8:04 pm
by erikruzek
Thanks, Chris and George.

George, I am having trouble locating a web example from HLM. My colleague said that that it involves the fixsigma2 command (setting it to 1) and then specifying a "varianceknown" variable. Below is a snippet of code from a HLM syntax file. It looks like something similar as you proposed is going on. I cannot find information on the varianceknown command in HLM's documentation.

Code: Select all

fixsigma2:1.000000
fixtau2:3
fixtau3:3
accel:5
level1weight:none
level2weight:none
level3weight:none
varianceknown:SEM2
Regarding your suggestion, is the obs variable specified for level2 and level1 the same variable?

Although the suggested model runs, the random slope(s), covariance(s) between the random slope(s) and intercept, and the level2 observation variance are not estimated.