Model constraint PreviousNext
Mplus Discussion > Structural Equation Modeling >
Message/Author
 Jean Frisou posted on Sunday, August 06, 2006 - 6:34 am
I have some problem with a model constraint. The syntax is the same as in the example 5.20. The ouput file incates an error

*** ERROR
Unknown parameter label in MODEL CONSTRAINT: LA11

The part of program file is this one:

DATA: FILE IS C: Etude RL/Mplus/modèle/
artram/datamod.dat;

VARIABLE: NAMES ARE x11-x16 x21-x26 y21-y24;
USEVARIABLES ARE x11 x12 x15
x21 x22 x25;

ANALYSIS: ESTIMATOR = MLMV;
DIFFTEST = etatrait.dat;

MODEL:
ENGA1 BY x11@1(la11);
...........

MODEL CONSTRAINT:

NEW(rel11 rel12 rel15 rel21 rel22 rel25 );


rel11 = la11**2*vf1/(la11**2*vf1 + ve11);
rel12 = la12**2*vf1/(la12**2*vf1 + ve12);

rel11 = rel21;rel12 = rel22;
OUTPUT:
TECH4;
SAMPSTAT;
RESIDUAL;
STANDARDIZED;

Can somebody indicates me where is the error ???

Thank you for the help
 Linda K. Muthen posted on Sunday, August 06, 2006 - 9:10 am
I can't see from what you have posted unless it is that you are labelling a fixed parameter. Please send your input, data, output, and license number to support@statmodel.com.
 Jill McClain posted on Thursday, September 10, 2009 - 5:20 pm
Hi Drs. Muthen. I am trying to use the model constraint command to generate predicted values for a dependent variable for set values of my independent variables (from a linear regression). I can do this by hand, of course, but I'm hoping that using labeled parameters in Mplus will properly propagate the errors so that my predicted values will have appropriate confidence intervals (please let me know if this is not the case). However, I cannot figure out how to label or otherwise include the intercept (other than simply entering the intercept value from the output, in which case the error won't be accounted for). Is it possible to label the intercept in the model command or otherwise indicate that I want to use the estimated intercept and its standard error in the model constraint calculation? Thanks.

Jill
 Bengt O. Muthen posted on Thursday, September 10, 2009 - 5:44 pm
If you have

y ON x (b);

the intercept is simply referred to as

[y] (a);

so that you can write

Model Constraint:
New(yhatxi);

yhatxi = a + b*xi;

where yhatxi gets a point estimate and a SE that takes into account the sampling error in a and b.
 Jill McClain posted on Friday, September 11, 2009 - 8:58 am
Thanks very much. That worked perfectly. Oddly, though, the SE for yhatxi is substantially smaller when I use the labeled parameter "a" than when I simply insert the numerical value of a (which has no error as far as Mplus knows) into my constraint equation. Is that correct?
 Bengt O. Muthen posted on Friday, September 11, 2009 - 9:42 am
Check Tech3 - maybe the a and b estimates are negatively correlated.
 Jill McClain posted on Friday, September 11, 2009 - 3:20 pm
Hm, yes. There are actually 18 betas in the equation (this is a very large cohort study), and 17 are negatively correlated with the intercept. Is this a problem? Thanks for any insight you can offer!
 Bengt O. Muthen posted on Friday, September 11, 2009 - 3:41 pm
That's not a problem, but it explains the reduction in SE that you reported.
 Jill McClain posted on Friday, September 11, 2009 - 5:21 pm
Excellent. Thanks very much, as always!
 Rik Pieters posted on Tuesday, May 22, 2012 - 2:55 pm
Dear Drs. Muthen

Is it possible to label the threshold in a probit analysis, in the same way as you indicate in the response to the question by Jill McClain?

y ON x (b);
the intercept is simply referred to as
[y] (a);
so that you can write
Model Constraint:
New(yhatxi);
yhatxi = a + b*xi;

My attempt produced an error message.
 Bengt O. Muthen posted on Tuesday, May 22, 2012 - 5:21 pm
Yes, but probit gives a threshold tau,

[y$1] (tau);

instead of an intercept, and the probit replaces y,

probit = -tau + b*x;

You can also translate the probit into a probability using the Phi function.
 anonymous Z posted on Thursday, July 28, 2016 - 10:13 am
Dear Drs. Muthen,

I am using model constraint to create indirect effects, and meanwhile generate bias corrected bootstrap confidence intervals for indirect effects.

The output gives only 95%CI for unstandardized results

Lower 2.5% Estimate Upper 2.5%
New/Additional Parameters
O1 -0.333 -0.175 -0.044

O2 -0.395 -0.175 -0.054

Given the intervals excluding zero, can I just report that the indirect effects were significant or should I create standardized results?

Thanks so much!
Jing
 Bengt O. Muthen posted on Thursday, July 28, 2016 - 12:08 pm
Bootstrapped CIs are unlikely to disagree for raw and standardized indirect effects. I typically decide on significance based on the raw and if I want to describe the effect size I compare it to the SDs of the X and Y (that is, I consider the standardized effect) - but without further discussing significance for the standardized.
 anonymous Z posted on Friday, July 29, 2016 - 6:38 am
Dr. Muthen, thanks so much!
 Timothy Ihongbe posted on Monday, November 21, 2016 - 7:39 am
Dear Drs. Muthen,

I'm running an SEM model to simultaneously test for the effect of 2 mediators.

I'm having problems with the model constraint.

*** ERROR in MODEL CONSTRAINT command
The following parameter label is ambiguous. Check that the corresponding
parameter has not been changed. Parameter label: A1

Here's my syntax:

DATA:
FILE IS "Downloads\tdvv.csv";
FORMAT IS free;

VARIABLE:
NAMES ARE WT STR CLU RCE AGE SEX EDU SC DV SUB RSK;
.............
CATEGORICAL ARE DV;
CLUSTER is CLU;
STRATIFICATION IS STR;
WEIGHT IS WT;

ANALYSIS:
TYPE IS COMPLEX;
PARAMETERIZATION=THETA;
ESTIMATOR IS WLSMV;
iteration = 1000;

MODEL:
DV ON SC SUB RSK SEX (a1-a4);
SUB ON SC RSK (b1-b2);
RSK ON SC SUB RCE AGE EDU (c1-c5);
DV ON SUB SC RSK SEX (d1-d4);
DV ON RSK SC SUB SEX (e1-e4);

MODEL CONSTRAINT:
new (dir indir1 indir2 indir_tot tot );

dir=a1;
indir1 = b1*d1;
indir2=c1*e1;
indir_tot=( b1*d1)+( c1*e1);
tot = a1 + ( b1*d1)+( c1*e1);

OUTPUT:
standardized;

Thank you.

Timothy
 Linda K. Muthen posted on Monday, November 21, 2016 - 3:47 pm
You have labelled some parameters twice, for exmaple, DV on SSC SUB RSK SEX. Label them only once. Actually you have DV three times with the same covariates.
 Timothy Ihongbe posted on Tuesday, November 22, 2016 - 8:06 am
Thank you, Dr. Muthen. I made the corrections and it ran smoothly.

Timothy
 Morgan DeBusk-Lane posted on Monday, January 15, 2018 - 11:33 am
Drs. Muthen,

I am trying to recover the regression coefficients from two covariates within a mixture model after accounting for classification error. "c" represents 5 latent classes. I would like to get the coefficients to further compute predictive probabilities with model constraint. At this point, I'm just trying to get them into model constraint to use.

I keep getting: The number of equality/parameter labels in the following statement does not
match the number of parameters.

I figured there would be 10 parameters.

Model:

%Overall%
c on gender eth_bi (b1-b10);

%C#1%
[cmod#1@9.676 cmod#2@5.215 cmod#3@8.022 cmod#4@4.823];
.......

%C#5%
[cmod#1@-11.317 cmod#2@-12.629 cmod#3@-2.949 cmod#4@-3.442];

Model Constraint:
New(testing1 testing2); ! just trying to see them.
testing1 = (b1+100);
testing2 = (b2+100);

Thank you for your help!
 Bengt O. Muthen posted on Monday, January 15, 2018 - 12:06 pm
You can say

c on gender eth_bi (b1-b10);

That would work if you used a list like gender-eth_bi where this list should have 10 variables and be given in this order in the USEV or NAMES lists.
 Aurelie Lange posted on Friday, March 08, 2019 - 4:59 am
I receive the following error:
Unknown parameter label in MODEL CONSTRAINT: LOAD5

my model is:
ANALYSIS: estimator = wlsmv;
PARAMETERIZATION=THETA;
type=complex;

MODEL:
netw1 by netw1T1* netw3T1 netw4T1 netw6RT1 (load1-load4);
netw2 by netw1T2 netw3T2 netw4T2 netw6RT2 (load5-load8);
netw3 by netw1T3 netw3T3 netw4T3 netw6RT3 (load9-load12);

netw1@1;
netw2@1;
netw3@1;

netw1T1 netw3T1 netw4T1 netw6RT1 (resv1-resv4);
netw1T2 netw3T2 netw4T2 netw6RT2 (resv5-resv8);
netw1T3 netw3T3 netw4T3 netw6RT3 (resv9-resv12);

model constraint:
new (omega_netw1);
omega_netw1 = (load1+load2+load3+load4)^2
/ ((load1+load2+load3+load4)^2
+resv1+resv2+resv3+resv4);

new (omega_netw2);
omega_netw2 = (load5+load6+load7+load8)^2
/ ((load5+load6+load7+load8)^2
+resv5+resv6+resv7+resv8);

new (omega_netw3);
omega_netw3 = (load9+load10+load11+load12)^2
/ ((load9+load10+load11+load12)^2
+resv9+resv10+resv11+resv12);

What am I doing wrong? Thanks!
 Bengt O. Muthen posted on Friday, March 08, 2019 - 10:01 am
In your statement

netw2 by netw1T2 netw3T2 netw4T2 netw6RT2 (load5-load8);

you overlook that the first loading is fixed at 1 by default so that load5 is not a free parameter that can be used in Model constraint. You can add statements in Model Constraint saying

New(load5);
load5 = 1;
 Aurelie Lange posted on Monday, March 11, 2019 - 3:32 am
Thank you for your quick reply. That makes sense. Is it an appropriate alternative to use * to free the first parameter, as was done here?
netw1 by netw1T1* netw3T1 netw4T1 netw6RT1 (load1-load4);
Or would that change the meaning or estimation of the computed omega?

Sincerely,
Aurelie
 Bengt O. Muthen posted on Tuesday, March 12, 2019 - 5:57 pm
That's how you should do it - for new2 and new3, etc.
Back to top
Add Your Message Here
Post:
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Password:
Options: Enable HTML code in message
Automatically activate URLs in message
Action: