BCH method for estimating a distal ou... PreviousNext
Mplus Discussion > Latent Variable Mixture Modeling >
Message/Author
 anonymous posted on Monday, October 20, 2014 - 8:35 pm
In reading about the new BCH method in web note 21 (October 7, 2014), I'm wondering if there is a variant of the method demonstrated in 3.2 that predicts the distal outcome(s) from the latent classes while controlling for the effect of the covariates on the distal outcomes.
 Bengt O. Muthen posted on Tuesday, October 21, 2014 - 6:37 am
That's what's shown in the Section 3.2 input.
 anonymous posted on Tuesday, October 21, 2014 - 11:33 am
Perhaps I'm misunderstanding, but when I run that syntax the output shows the distal outcome regressed on my covariates and the classes regressed on my covariates, but I don't see anything in the syntax or output about the classes predicting the distal outcome.
 Bengt O. Muthen posted on Tuesday, October 21, 2014 - 12:19 pm
You get class-specific intercepts/thresholds for the distal outcome. That is the same information as in a regression of the distal on the latent class variable. You can test for differences in these parameters when using Model Constraint.
 Anne Chan  posted on Friday, January 09, 2015 - 1:20 pm
I noticed that the missing cases (in distal outcome) are handled by listwise in the 3-step approach. I am wondering how the missing data (in distal outcome) are handled by new BCH method?
 Bengt O. Muthen posted on Friday, January 09, 2015 - 4:52 pm
Same way. If you run DCON you will see how many cases are used (same as for BCH).
 Valentina Ulloa posted on Tuesday, June 30, 2015 - 6:47 am
Dear Dr. Muthén,
I´m trying to fit a mixture model using BCH, but when I include a second predictor (educ) of the latent class variable (SC), Mplus asks me to use Alorithm=integration which is not available for bch (according to an error message) . Could you help me with that please? Here´s my input:

Analysis:
Type is mixture; Starts=0; Estimator=MLR;
Model:
%overall%
SC on ISEIH Educ;
ISEIR on Educ ISEIH;
Educ on ISEIH;

%sc#1%
[ISEIR] (m1);
%sc#2%
[ISEIR] (m2);
%sc#3%
[ISEIR] (m3);
%sc#4%
[ISEIR] (m4);
%sc#5%
[ISEIR] (m5);

Model test:
m1=m2;
m1=m3;
m1=m4;
m1=m5;

Thanks.
 Bengt O. Muthen posted on Wednesday, July 01, 2015 - 5:27 pm
Integration is needed if your Educ variable has missing data. You can delete those cases.
 Valentina Ulloa posted on Thursday, July 02, 2015 - 8:23 am
Thank you for your answer Dr. Muthén, but I tried taking out missing values and got the same error message(that I need to use integration algorithm).
Could it be that when I regress Educ on ISEIH, Educ variable becomes a distal outcome of the latent class and that is why I cannot also regress the latent class(SC) on Educ? If so, is there a way not to consider Educ as distal outcome (I'm only interested in ISEIR as distal outcome), to be able to regress it on ISEIH?
And another question, I get an Entropy of 1.140 in the second BCH step, is that because of the use of the weights or I'm I doing something wrong?
Thanks
 Bengt O. Muthen posted on Friday, July 03, 2015 - 9:17 am
I recommend that you remove Educ ON ISEIH. That statement does not change the mixture model.

If you still have entropy >1, please send your output, and data if possible, along with your license number to support.
 Nick Shryane posted on Thursday, August 20, 2015 - 5:58 am
Hello,

I have the same issue as Valentina with regard to entropy > 1 when I run a regression auxiliary/latent class model along the lines of section 3.2 in webnote 21v2.

The input code is:

---
Variable:
Names are
ofcan ofecs ofcok ofgas truant schyear w1 w2 w3 ;
Usevariables are
truant schyear w1 w2 w3 ;
Classes are
c (3) ;
Training are
w1 w2 w3 (bch) ;
Analysis:
Type = Mixture ;
Starts = 0 ;
Model:
%overall%
[schyear] ;
schyear on truant ;
%c#1%
[schyear] ;
schyear on truant ;
%c#2%
[schyear] ;
schyear on truant ;
---

The model fits three latent class to explain school pupils' exposure to four drug exposure variables. The latent classes, and whether the pupil ever truants from school, are then used to predict school year.

The model estimates look fine, but the classification quality output looks wrong (entropy >1, classification probabilities > 1).

I wonder, is this something to do with the class membership uncertainty being known quantities represented already by the bch weights?

Thanks,
Nick
 Bengt O. Muthen posted on Thursday, August 20, 2015 - 6:35 pm
There is a glitch in the entropy when BCH weights are used. Ignore the entropy printed.
 lisa Carlesso posted on Friday, November 06, 2015 - 9:41 am
hello

I am trying to use BCH for an LCA with a continuous distal outcome and have no problem with the first step. When I run the final step I get this error message
Invalid symbol in data file:
"*" at record #: 1, field #: 23
and when I open the file in either Mplus editor or textedit, I can see that there are several *'s scattered throughout the file. Any idea on why this is and how it can be fixed?
Is it related to missing data? I have specified missing =all (99)

thank you
 Linda K. Muthen posted on Friday, November 06, 2015 - 11:09 am
When you read data that you have saved, you need to read it according the the information at the end of the output where it was saved. The * is a missing value flag that requires

MISSING = *;
 Dina Dajani posted on Saturday, December 05, 2015 - 11:28 am
Hi Dr. Muthen,

When manually doing the BCH method for the first step I indicate to SAVE=bchweights; But the file does not have the bchweights, just has my indicators and auxiliary variables. Do you know what the problem might be?

USEVARIABLES are

DCNID
BrfPInhT
BrfPShfT
BrfPEmCT
BrfPIntT
BrfPWMT
BrfPPOrgT
BrfPOgMT
BrfPMonT
WISCDigB
StatuTot;

MISSING ARE ALL (999);

CLASSES = c(3);

IDVARIABLE = DCNID;

AUXILIARY = AnxDepT PriDx1 PriDx2;

ANALYSIS:
TYPE = Mixture;
Starts = 0;

OUTPUT: SAMPSTAT;

SAVEDATA: FILE IS "\datastore01.psy.miami.edu\Groups\LUddin_Lab\Dina Dajani\Projects\KKI\latentprofileanalysis\bch\bch.dat"
SAVE= bchweights;
 Bengt O. Muthen posted on Saturday, December 05, 2015 - 1:08 pm
Please send output to Support along with your license number.
 lisa Carlesso posted on Wednesday, December 09, 2015 - 8:37 am
Hello

I have a question about interpreting the model results.
I have a 3 class model with a continuous distal outcome, 5 categorical covariates and 2 continuous.

How are the Y on X estimates to be interpreted? as beta co-efficients?

Are the intercepts for Y the class specific means?

thank you
 Bengt O. Muthen posted on Wednesday, December 09, 2015 - 1:07 pm
Q1-Q2: Yes, as for regular linear regression.

Q3: No, they are class-specific intercepts.
 Michelle Mack posted on Friday, April 22, 2016 - 2:13 pm
Hello-

Can someone explain how to interpret the class specific intercepts mentioned in the above post.
 Bengt O. Muthen posted on Saturday, April 23, 2016 - 9:32 am
They show the influence of the latent class variable on Y beyond the influence of the covariates. Think of the latent class variable as a dummy covariate in linear regression - it changes the intercepts.
 Dina Dajani posted on Saturday, April 23, 2016 - 11:15 am
If I am not mistaken, the class specific intercepts represent the class-specific means of Y
 Bengt O. Muthen posted on Sunday, April 24, 2016 - 10:50 am
If Y is regressed on something, the intercept is estimated instead of the mean.
 Michelle Mack posted on Tuesday, April 26, 2016 - 10:12 am
Thank-you!
 Ryan Grimm posted on Friday, May 06, 2016 - 2:43 pm
I've used the BCH with 3 distal outcomes, one of which is continuous and 2 are binary. I also used DCAT & DCON with the same distals.
There is a lot of missing data on each of the three distals, and this was reported in the output for DCAT & DCON. But, with the BCH, I received the following messages:

PROBLEMS OCCURRED DURING THE ESTIMATION FOR THE DISTAL OUTCOME KMTHIRT.

PROBLEMS OCCURRED DURING THE ESTIMATION FOR THE DISTAL OUTCOME LAMAJOR2.

The results said 999 for all of the estimates for these 2 distals. However, the 3rd distal, which was binary, ran fine. Any ideas as to why this may have occurred?

Just to confirm, does the BCH assume MAR for the distal outcomes?

Thank you very much!
 Bengt O. Muthen posted on Monday, May 09, 2016 - 2:24 pm
BCH uses listwise for the distal outcome so if you have a lot of missing on it, this is problematic.

Regarding your problematic run, send output to Support along with your license number.
 Lerzan Coskun posted on Thursday, June 02, 2016 - 8:22 am
Hello

I've used the manual BCH with several continuous distal outcomes but I am not sure how to do the same for categorical outcomes.

I want to examine the effect of latent class membership on a categorical outcome (DCF_MALT) after controlling for three variables which are ces_t1, T1_FINAN, and HISPANIC. To this end, I wrote the following input code:

Usevar are DCF_MALT ces_t1 T1_FINAN HISPANIC BCHW1-BCHW4;
Categorical =DCF_MALT;
Classes = c(4);
Training=BCHW1-BCHW4(bch);
Analysis:
Type = Mixture;
Starts=0;
Estimator=mlr;
Model:
%overall%
DCF_MALT on ces_t1;
DCF_MALT on T1_FINAN;
DCF_MALT on HISPANIC;
c on ces_t1;
c on T1_FINAN;
c on HISPANIC;


When I added the same regressions into the class specific part of the model, I received an error notification that those statements were ignored:

The following MODEL statements are ignored:
* Statements in Class 1:
C#1 ON CES_T1
C#1 ON T1_FINAN
C#1 ON HISPANIC
C#2 ON CES_T1
C#2 ON T1_FINAN
C#2 ON HISPANIC
C#3 ON CES_T1
C#3 ON T1_FINAN
C#3 ON HISPANIC

I wonder if my input until the class specific part of the model is correct and how should I revise the input re: the class specific part of the model.

Thanks!
 Michelle Mack posted on Friday, June 03, 2016 - 11:45 am
Is there a variant of the BCH method where I can predict the distal outcome while controlling for previous levels of that same outcome? (so, predicting change over time in a distal outcome)

Thanks!
 Bengt O. Muthen posted on Friday, June 03, 2016 - 5:50 pm
Coskun:

Use DCAT instead when distal is categorical.
 Bengt O. Muthen posted on Friday, June 03, 2016 - 5:52 pm
Mack:

See Section 3.2 of the BCH paper (web note 21).
 Lerzan Coskun posted on Saturday, June 04, 2016 - 7:04 pm
Hi Dr. Muthen,

Thanks for your advice re: using DCAT for categorical variables. However, I have a set of control variables which I'd used for continuous distal outcomes and I'd like to be able to control for the same variables while examining the categorical outcomes. It is my impression that you can't add controls into the model while using DCAT. Am I mistaken?
 Bengt O. Muthen posted on Sunday, June 05, 2016 - 12:09 pm
With control variables you can use the manual approach.
 Lerzan Coskun posted on Monday, June 06, 2016 - 7:41 am
Hi Dr. Muthen,

I tried the manual BCH for categorical outcomes but the code I wrote did not quite work out.

I want to examine the effect of latent class membership on a categorical outcome (DCF_MALT) after controlling for three variables which are ces_t1, T1_FINAN, and HISPANIC.

I'm attaching here the input I used in the second step of manual BCH. I'll greatly appreciate if you could tell me which part of the input was incorrect or needs to be revised.

Usevar are DCF_MALT ces_t1 T1_FINAN HISPANIC BCHW1-BCHW4;
Categorical =
DCF_MALT;
Classes = c(4);
Training=BCHW1-BCHW4(bch);
Analysis:
Type = Mixture;
Starts=0;
Estimator=mlr;

Model:
%overall%
DCF_MALT on ces_t1;
DCF_MALT on T1_FINAN;
DCF_MALT on HISPANIC;
c on ces_t1;
c on T1_FINAN;
c on HISPANIC;

%c#1%
DCF_MALT on ces_t1;
DCF_MALT on T1_FINAN;
DCF_MALT on HISPANIC;
c on ces_t1;
c on T1_FINAN;
c on HISPANIC;
%c#2%
DCF_MALT on ces_t1;
DCF_MALT on T1_FINAN;
DCF_MALT on HISPANIC;
c on ces_t1;
c on T1_FINAN;
c on HISPANIC;
%c#3%
DCF_MALT on ces_t1;
DCF_MALT on T1_FINAN;
DCF_MALT on HISPANIC;
c on ces_t1;
c on T1_FINAN;
c on HISPANIC;
%c#4%
DCF_MALT on ces_t1;
DCF_MALT on T1_FINAN;
DCF_MALT on HISPANIC;
c on ces_t1;
c on T1_FINAN;
c on HISPANIC;
 Linda K. Muthen posted on Monday, June 06, 2016 - 8:45 am
Please send the output and your license number to support@statmodel.com.
 Lerzan Coskun posted on Monday, June 06, 2016 - 1:22 pm
I will!

Thanks!
 Daniel Lee posted on Tuesday, November 01, 2016 - 4:33 pm
Hi Dr. Muthen,

I used Model Test command (e.g., intercept from class1 vs. intercept from class2) to conduct Wald's Chi-square test (taking into account several covariates). I would essentially constrain the intercept of an outcome (alcohol) in class 1 to equal the intercept of an outcome in class 2) using the model test command. For example:

Model:
%OVERALL%
C ON SEX HSYE;
ALC MARIJ NICT ON SEX HSYE;
%C#1%
[ALC](m1); [MARIJ](m2); [NICT](m3);
%C#2%
[ALC](m4); [MARIJ](m5); [NICT](m6);
%C#3%
[ALC](m7); [MARIJ](m8); [NICT](m9);
Output: SAMPSTAT TECH4 TECH7;
Model Test: m2 = m8;


Is this the Model Constraint method you were talking about to examine whether intercepts in classes are significantly different, when using BCH method? I tried following the Mplus manual on the Model Constraint command, and I had trouble understanding how I would actually implement this for the BCH method. But the Model Test command appears to constrain parameters to test whether the difference is significant (although this method may not be suitable).

If I am on the right track, please let me know. If I should change my analysis, and actually use the model constraint command, I would appreciate any guidance (e.g., video tutorial, article).

Thank you!!
 Bengt O. Muthen posted on Wednesday, November 02, 2016 - 5:19 pm
This use of Model Test is correct.
 Jin Qu posted on Wednesday, November 30, 2016 - 9:28 am
1.First, I used manual 3-step BCH approach.

Model:
%overall%
ZIN on Race;

%C#1%
ZIN on Race;
%C#2%
ZIN on Race;


Output:

Estimate S.E. Est./S.E. P-Value

Class 1

ZINT ON
RACE -0.127 0.271 -0.466 0.641

Intercepts
ZINT 0.123 0.249 0.495 0.621


Class 2

ZINT ON
RACE -0.542 0.374 -1.448 0.148

Intercepts
ZINT 0.483 0.330 1.463 0.143

However, the results changed when I include the model testing. The estimate of race for every class now is -.329 and the ZINT intercept changed too. Is there something wrong in the codes?

model:
%overall%
ZINTER4 on RaceDi;

%C#1%
[ZINTER4] (m1);
%C#2%
[ZINTER4] (m2);

model test: m1=m2;


Output:
Two-Tailed
Estimate S.E. Est./S.E. P-Value

Class 1

ZINT ON
RACE -0.329 0.174 -1.887 0.059

Intercepts
ZINTER4 0.243 0.184 1.319 0.187


Class 2

ZINT ON
RACE -0.329 0.174 -1.887 0.059

Intercepts
ZINT 0.352 0.222 1.587 0.113
 Jin Qu posted on Wednesday, November 30, 2016 - 9:31 am
Dr. Muthen,

Hi. Please see above for my first question. My second question is can I include 2 covariates in the BCH approach? Thank you!

E.g.,

DATA:
file= manBCH2.dat;

VARIABLE:

usevariables are ZINTER4 RaceDi W1-W4 gender C1-C4;

classes = c(4);


training=W1-W4 (bch) C1-C4 (bch);


analysis: Type=Mixture;
starts=0;
estimator=mlr;

model:
%overall%
ZINTER4 on RaceDi gender;
 Bengt O. Muthen posted on Thursday, December 01, 2016 - 10:31 am
We ask that postings be made in one window only. For long postings like this, please send the relevant outputs and questions to Support along with your license number.
 Chris Giebe posted on Thursday, December 08, 2016 - 9:24 am
Hello,

I am having the same problem as Dina, where I'm trying to run the first step of a manual BCH, but the bchweights do not show up in the generated .dat file.

SAVEDATA:
File = manual_BCH_est.dat;
Save = bchweights;

Looking at the output, it seems to have saved CPROBS instead.

Thanks for your help.
-Chris
 Bengt O. Muthen posted on Thursday, December 08, 2016 - 5:16 pm
Please send output and saved file to Support along with your license number.
 S Elaine posted on Wednesday, January 04, 2017 - 12:01 pm
I'm following web note 21 v. 2 (example 3.2) to use the BCH method to run a regression aux model combined with latent class regression. I've followed steps 1 and 2 and not had any issues; now, I'd like to test whether there are sig differences between the classes on the DV (ALCHPRB). I've found several examples of how to do this online, all seem to be different. Could you let me know if this is the proper way to use the model constraint option? If so, I continuously get the following message and don't know how to resolve this: WALD'S TEST COULD NOT BE COMPUTED BECAUSE OF A SINGULAR COVARIANCE MATRIX.

Model:
%Overall%
C on Age
Gender
minority
Chldses PAP PRALCHL BSI_GSI;
Alchlprb on Age
Gender
minority
Chldses PAP PRALCHL BSI_GSI;


%c#1%
Alchlprb on Age
Gender
minority
Chldses PAP PRALCHL BSI_GSI(p1);
%c#2%
Alchlprb on Age
Gender
minority
Chldses PAP PRALCHL BSI_GSI(p2);
%c#3%
Alchlprb on Age
Gender
minority
Chldses PAP PRALCHL BSI_GSI(p3);
%c#4%
Alchlprb on Age
Gender
minority
Chldses PAP PRALCHL BSI_GSI (p4);

MODEL TEST:
0 = p1- p2;
0= p1-p3;
0=p1-p4;
0=p2-p3;
0=p2-p4;
0=p4-p3;
 Daniel Lee posted on Wednesday, January 04, 2017 - 12:48 pm
Hi, I know BCH method uses list-wise deletion to handle missing data. Is there a way to treat missing data differently, like multiple imputation or FIML, when using BCH method? Thank you!
 Bengt O. Muthen posted on Wednesday, January 04, 2017 - 2:25 pm
Answer for Elaine:

Say

MODEL TEST:
0 = p1- p2;
0= p1-p3;
0=p1-p4;

The last 3 statements that you have are redundant (if 2, 3, and 4 are the same as 1, then 2, 3, and 4 are also the same).
 Bengt O. Muthen posted on Wednesday, January 04, 2017 - 2:26 pm
Answer for Daniel:

No.
 S Elaine posted on Thursday, January 05, 2017 - 8:43 am
Thank you for you response. This produced the following under model fit information:
Wald Test of Parameter Constraints

Value 1.123
Degrees of Freedom 3
P-Value 0.7715
I see many studies reporting Chi-sq and/or Wald statistics for each class comparison (unique stats when comparing class 4 vs. 1, 4 vs. 2...3. 3 vs. 2, etc) on the DV. However, I've only been able to produce one value, and cannot find guidelines for how this information is obtained using the lasted BCH recommendations. I saw your recommendation 10/21/2014 here re: class specific intercepts: http://www.statmodel.com/discussion/messages/13/20479.html?1465244548

I'm trying to locate recent papers that use the recommendations from web note 21 version 2 (3.2). I'm interested in reviewing examples that reporting findings using this approach, but have not been successful in locating any in the social sciences... any guidance, references, or suggestions would be appreciated!
 Bengt O. Muthen posted on Thursday, January 05, 2017 - 9:18 am
For comparing e.g. 4 vs 1, you need to do several runs, each with only that comparison.

Regarding your last question, if you don't find it among our latent class papers under Papers, you may want to ask on SEMNET.
 Jamie Taxer posted on Tuesday, January 24, 2017 - 4:31 pm
I am trying to use the manual BCH approach to examine if an auxiliary variable is a significant predictor of latent class membership. I used the syntax given in Web Note 21 section 3.2, step 2 and as suggested removed the y's. However, when I just include an auxiliary variable that is predicting latent class membership, I keep getting the message "One or more variables in the data set have no non-missing values. Check your data and format statement." According to the warnings there are 249 cases of missing on all variables other than x-variables. This is however, not the case. There should only be around 20 cases of missing values. I have tried the syntax below with two different data sets and get the same error message. Can you please tell me where I am going wrong?

Data: File = manBCHStep1_HS.dat;
Variable:
Names =
ZENTH3 ZENTH5 ZENTH6 ZENTH7 ZJOY1 ZJOY4
ZJOY5 ZJOY3 SE ANG AX EMOEX MH PH JOBSAT
MOT ACH DIS SOCDES B5EX BCHW1 BCHW2
BCHW3 BCHW4;

Missing are *;
Usevariables = socdes b5EX BCHW1-BCHW4;
Classes = c (4);
Training = BCHW1-BCHW4(bch);
Analysis: type = mixture;
Starts =0;
Model:
%overall%
c on b5EX socdes;
 Bengt O. Muthen posted on Tuesday, January 24, 2017 - 5:10 pm
Please send the input, output, data and license number to Support so we can check what's going on..
 Xinyi He posted on Monday, February 20, 2017 - 6:37 am
what kind of statistic test does Mplus use in the bch method or dcat method£¿chi-square test or wald test£¿
 Bengt O. Muthen posted on Monday, February 20, 2017 - 4:04 pm
The Wald chi-square test.
 gia barboza posted on Monday, April 17, 2017 - 8:52 am
Hello,
I am having the same problem that others have had using the BCH weights, they are not showing up in the file. Has there been any solution to this? thanks!
 Bengt O. Muthen posted on Monday, April 17, 2017 - 2:02 pm
We know of no such problem - send your relevant files to Support along with your license number.
 Daniel Lee posted on Monday, May 22, 2017 - 9:50 am
Hi Dr. Muthen,

I have submitted a paper using the BCH method and the reviewer recommended that I use expectation-maximization (via SPSS) first and then re-run BCH analysis. A large proportion of the sample (almost half) was dropped because of missing data on exogeneous variables. Would this be a plausible solution (Expectation Maximization) for handling missing data when using the BCH method?

Thank you!
 Bengt O. Muthen posted on Monday, May 22, 2017 - 2:13 pm
Sounds like the reviewer is suggesting dealing with missing data. But it doesn't make sense to me because the usual EM algorithm only produces a mean vector and covariance matrix which is not sufficient information for mixture modeling - plus the wrong (non-mixture model) is used.

Missing on exogenous variables not in the first step is tricky to handle. Multiple imputation can be used but limits what can be done. Changing from 3-step to 1-step where the exogenous variables are included in the model is computationally demanding.

Perhaps the best that can be done is to check if the subsample with no missing is different in important ways and if not rely on the results from the subsample.
 Daniel Lee posted on Wednesday, May 24, 2017 - 6:47 am
That is very helpful! As follow-up, in addition to mean vector and covariance matrix, what other information is used in mixture model that EM imputation does not produce?

Thank you!!
 Daniel Lee posted on Wednesday, May 24, 2017 - 12:43 pm
I apologize for asking a second string of questions in a separate post:

1) If I include a predictor (e.g., gender) as a within-class predictor in my BCH model (2 trajectory classes), and sex differences in Y were observed in one trajectory class (e.g., Class 1; with males higher than females on Y), but not in the other class (e.g., Class 2; males and females not significantly different on Y), would I be able to compare mean differences in the following way:

-Males in Class 1 vs. Members of Class 2
-Females in Class 1 vs. Members of Class 2


2) Although I'm not looking at an interaction effect specifically, as one typically would in a regression model, would I be able to say that sex modified the effect of the latent class variable on Y IF males in Class 1 had the highest value of Y compared to females in their own class, and males/females in Class 2?

Thank you again!
 Bengt O. Muthen posted on Wednesday, May 24, 2017 - 6:01 pm
Post 1:

Higher-order moments (skew, kurtosis, etc all the way up to working with raw data - that is, mixture modeling needs raw data.

Post 2:

When you say "within-class predictor", do you mean in the first or the last BCH step?

When you say you want to compare means, do you mean in the first or the last BCH step?
 Daniel Lee posted on Thursday, May 25, 2017 - 8:00 am
Hi Dr. Muthen,

I meant the last step. For example, I might regress Y on sex for each class to examine the unique influence of sex on Y for each class.

I would then do a wald chi-square test. So for example, if the effect of sex (female = 0) was .123 in CLASS 1, I would add .123 to the intercept and write:

Model Test: 0 = (INT1 + .123) - (INT2)

*Intercept2 is the mean of Y for class 2 (no sex-effect in this class). So this is essentially, at least in my head, males in class 1 vs. males/females in class 2.
 lisa Car posted on Thursday, May 25, 2017 - 2:55 pm
Hello

I am wondering what are the advantages of using the BCH method for association of classes with outcomes, compared to regular linear regression i.e. not in a joint model?

Also, if running the BCH, is it possible to get explained variance in the output?

thank you!
 Bengt O. Muthen posted on Thursday, May 25, 2017 - 6:39 pm
Lee post: A quick check suggests that this seems ok.
 Bengt O. Muthen posted on Thursday, May 25, 2017 - 6:41 pm
Car post:

Q1: By regular linear regression perhaps you mean regressing the outcome on a set of dummy variables representing most likely class membership. If so, you would be ignoring measurement error in the classification.

Q2: Not auto from Mplus but you can express it yourself.
 Daniel Lee posted on Thursday, June 01, 2017 - 8:19 am
Hi Dr. Muthen, is there a way to compare a BCH model (last step) with gender included as a between class predictor vs. the same model except, this time, gender is a between & within-group predictor? The model has a distal outcome & there are three classes.


Thank you!
 Daniel Lee posted on Thursday, June 01, 2017 - 8:21 am
Sorry, as a point of clarification, by compare I mean model fit comparison (e.g., BIC).
 Bengt O. Muthen posted on Thursday, June 01, 2017 - 6:59 pm
BIC works because the different models have the same set of DVs
 Daniel Lee posted on Wednesday, June 07, 2017 - 8:05 am
Thank you. If I may ask one more question - is a multi-group analysis possible for BCH model at step 2?
 Bengt O. Muthen posted on Wednesday, June 07, 2017 - 5:43 pm
Not sure if you can get Knownclass to do that - haven't tried.
 Jin Qu posted on Sunday, June 18, 2017 - 11:01 am
I am using the BCH method for my paper. What is the full name of the BCH method? I searched Asparouhov & Muthen (2014) webnote, but did not find it.
 Wendy Rote posted on Monday, June 19, 2017 - 3:15 pm
Hi,
I'd like to use the manual BCH method to estimate profile differences (From an LPA on Wave 1 variables) in Wave 2 outcomes controlling for levels of those same outcomes at wave 1. I've done this in the step 2 syntax by regressing each w2 outcome variable on its w1 equivalent, requesting the means of the w2 variables in each profile, and using model constraint to compare them. This seems to run fine but I'm not sure whether I should model the autoregessive paths for each profile separately (as is done in webnote 21 when controlling for demographic predictors in an LPA modeling mean class differences) or for just for the model overall (as I assume would more similarly replicate a classic autoregressive path model with a categorical variable predicting autoregressive change over time). The results differ quite a lot depending on the choice. Any feedback would be really helpful.
Thank you!
 Tihomir Asparouhov posted on Tuesday, June 20, 2017 - 9:41 am
The BCH comes from the first letters of the authors

Bolck, A., Croon M. A., & Hagenaars, J. A. (2004) Estimating latent
structure models with categorical variables: One-step versus three-step
estimators. Political Analysis, 12, 3-27.
 Tihomir Asparouhov posted on Tuesday, June 20, 2017 - 9:49 am
Wendy

I would recommend Section 4

http://statmodel.com/download/webnotes/webnote15.pdf

I would not be regressing indicator on indicator, rather regress latent class on latent class (otherwise you change the measurement model), i.e., if it gets too confusing stick the the standard latent transition analysis.

Using BCH with 2 latent class variables is not very easy. I would use one at a time and possibly run a joint analysis (single step standard ML) with all measurement model parameters fixed to the BCH estimates.
 Jamie Taxer posted on Tuesday, June 20, 2017 - 5:43 pm
I'm using the BCH method to examine differences in distal outcomes across latent profiles. Is it possible to determine the group specific standard deviations for my distal outcomes?
 Wendy Rote posted on Thursday, June 22, 2017 - 8:04 am
Thank you Tihomir,
I think I incorrectly described what I'm trying to do.

I am not regressing indicator on indicator, but distal outcomes on themselves at an earlier wave.

There is only one LPA, derived from indicators at W1.
----------------------------------------
Here is my Step 2 BCH syntax for regressing the distal outcome upon itself overall:

USEVARIABLES ARE W1Tpsycm W3Tpsycm
BCHW1-BCHW3;
MISSING IS All (999);

Classes = c(3);

Training = BCHW1-BCHW3(bch);

Analysis:
Type = Mixture;
Starts = 0;
Estimator = MLR;

Model:
%Overall%
W3Tpsycm on W1Tpsycm;

%c#1%
[w3Tpsycm] (b1);

%c#2%
[w3Tpsycm] (b2);

%c#3%
[w3Tpsycm] (b3);

Model Constraint:
New (b12 b13 b23);
b12 = b1-b2;
b13 = b1-b3;
b23 = b2-b3;
----------------------------------------
Here's the model section with class specific autoregressive paths:

Model:
%Overall%
W3Tpsycm on W1Tpsycm;

%c#1%
W3Tpsycm on W1Tpsycm;
[w3Tpsycm] (b1);

%c#2%
W3Tpsycm on W1Tpsycm;
[w3Tpsycm] (b2);

%c#3%
W3Tpsycm on W1Tpsycm;
[w3Tpsycm] (b3);
---------------------------
I'm trying to determine which model is more appropriate.
I hope this clarifies my question.
Thank you!!
 Tihomir Asparouhov posted on Thursday, June 22, 2017 - 3:08 pm
I would recommend this

Model:
%Overall%
W3Tpsycm on W1Tpsycm;

%c#1%
W3Tpsycm on W1Tpsycm (c1);
[w3Tpsycm] (b1);

%c#2%
W3Tpsycm on W1Tpsycm (c2);
[w3Tpsycm] (b2);

%c#3%
W3Tpsycm on W1Tpsycm (c3);
[w3Tpsycm] (b3);

Model Constraint:
New (c12 c13 c23);
c12 = c1-c2;
c13 = c1-c3;
c23 = c2-c3;

If any of these new parameters is significant you should use the class specific autoregressive model.
 Tihomir Asparouhov posted on Thursday, June 22, 2017 - 3:11 pm
Jamie

You can use a model like this to get the class specific variance.

Model:
%Overall%
distal; [distal];

%c#1%
distal; [distal];

%c#2%
distal; [distal];
 Sharon Simonton posted on Tuesday, June 27, 2017 - 9:53 am
Hi,

I'm using the BCH method to assess potential differences in distal outcomes across four latent classes per syntax in section 3.2 of Web Note 21. I have a set of covariates (12+) that influence my distal Ys and the latent class variable. I'm using class-specific models for the distal Ys.

I'm wondering if there's a way to get the fitted means for my distal outcomes at the centroid? When I include my model for C on my included covariates, I get the class-specific intercepts/thresholds for my distal outcomes but am unable to label the covariate means that I would then use in Model constraint to get the class-specific centroid means for my distal outcomes. Mplus assumes that I’m trying to bring the covariates into the model and gives me the error message that I need to use ALGORITHM = INTEGRATION (FIML estimation which cannot be used with BCH weights).

Is there another way to work around this so that I can get the necessary model parameters and use Model constraint (or some other procedure?) to compute and test for differences for the centroid means by class for my distal outcomes? Thank you for your assistance!
 Bengt O. Muthen posted on Tuesday, June 27, 2017 - 5:56 pm
You can instead use the actual sample means. That won't give you the exactly right SEs but they will be close.
 Jin Qu posted on Sunday, September 03, 2017 - 7:39 am
I am using the BCH method to include covariates for my latent profile analysis. Can I include more than 1 covariate at one time? for example, the outcome is "ZAGGR", while controlling for "crace" and "educati".

classes = c(4);
auxiliary= ZAGGR crace_D;

analysis: Type=Mixture;
OPTSEED=945065;
savedata: File=manBCH2_AGG.dat; save=bchweights;

PLOT:
type = plot3;
series = sfe_t6 (1)
sf_t6 (2) sfr_t6 (3)
sfERS (4) sfRS (5) sfRRS (6);
 Jin Qu posted on Sunday, September 03, 2017 - 7:41 am
Sorry I forgot to include the variable "educati" in my previous message.

classes = c(4);
auxiliary= ZAGGR crace_D educati;

analysis: Type=Mixture;
OPTSEED=945065;
savedata: File=manBCH2_AGG.dat; save=bchweights;

PLOT:
type = plot3;
series = sfe_t6 (1)
sf_t6 (2) sfr_t6 (3)
sfERS (4) sfRS (5) sfRRS (6);
 Bengt O. Muthen posted on Monday, September 04, 2017 - 4:06 pm
BCH is for a distal outcome, not covariates. If you want both, use the method described in Section 3.2 of our BCH paper.
 RuoShui posted on Wednesday, September 06, 2017 - 5:32 pm
Dear Drs. Muthen,

I am using the manual BCH method to estimate how the latent classes are different on the outcome variable, controlling a range of covariates. From the above postings, I understand that when covariates are included, the intercepts of the outcome were estimated across latent classes. But I am still unsure how to compare the means across classes. In your response to "Sharon" above, you said, that actual sample means can be used. Can you please explain a little more what do you mean by that and how to do this within the BCH manual approach?

Thank you!
 Bengt O. Muthen posted on Thursday, September 07, 2017 - 3:16 pm
Try using TECH4.
 RuoShui posted on Thursday, September 07, 2017 - 4:05 pm
Thank you Dr. Muthen! I did TECH4 and obtained the estimated latent means. I am wondering if there is a way to test the differences of the estimated latent means across the classes?

Thanks again!
 Tihomir Asparouhov posted on Friday, September 08, 2017 - 10:14 am
The model you are describing is focused on the conditional expectation E(Y|C,X) and not E(Y|C). Realize that it is somewhat of a mute question to ask if E(Y|C) is class invariant if E(Y|C,X) is not. It can happen in some strange/particular distribution of the [X|C], however, if
E(Y|C,X) is not class-invariant one generally should conclude that E(Y|C) is not class-invariant. If your question is regarding E[Y|C] you should remove the covariates from the the BCH estimation and get a direct answer to that.

You can also write out in model test E(Y|C) as a function of the mean of X and the regression coefficient (you would need to include in the model the distribution of X) thereby directly test the quantities of tech4.
 Gemma Hammerton posted on Saturday, December 16, 2017 - 9:24 am
Dear Drs Muthen,

I'm using the manual BCH method to assess potential differences in a continuous distal outcome Y across four latent classes. I have a set of covariates that I would like to adjust for by regressing Y on the covariates under the %overall% command. However, I receive an error message stating that the sample variance of one of the covariates is negative in class 1 and that the standard errors of the model parameters cannot be computed. Is there a way to prevent this error message without making this covariate endogenous and fixing its variance to equality across latent classes?

Thank you.
 Bengt O. Muthen posted on Saturday, December 16, 2017 - 2:39 pm
No, except deleting the covariate or the class. I would investigate why and if it makes sense that the covariate doesn't have variance in that class, perhaps using Most Likely Class.
 Gemma Hammerton posted on Saturday, February 03, 2018 - 7:59 am
Thank you for your previous response. I am now considering different approaches to address missing data when using the manual BCH method. My continuous distal outcome is the intercept from a latent growth curve model for alcohol use, therefore I am using FIML estimation to include those with at least 1 of 4 repeated alcohol measures. I would also like to use inverse probability weighting to address potential bias from missing data on the latent class exposure and covariates. However, when I include the inverse probability weight in the model, the latent class distribution changes from the unweighted model (including the final class counts based on their most likely latent class pattern). Is this because inverse probability weighting should not be combined with using the BCH weights?

Thank you.
 Tihomir Asparouhov posted on Monday, February 05, 2018 - 3:25 pm
From your description it looks to me that the change in the latent class distribution has nothing to do with BCH. In principle you can use sampling weight with BCH, but using sampling weights to adjust for missing data in the covariates is not something we would recommend. I think we generally would recommend that you convert the missing variables to endogenous variable or impute the missing data from an imputation model.
 Gemma Hammerton posted on Friday, February 09, 2018 - 4:13 am
Thank you Tihomir. Can I just check why you would not recommend using sampling weights to adjust for missing data in the covariates?
 Tihomir Asparouhov posted on Friday, February 09, 2018 - 8:42 am
It is not a proper technique to deal with missing data. Using multivariate full information modeling or multiple imputation are the two most well established missing data methods. Sampling weights should be used when the observations were not sampled at random, and they should not be used for other purposes. Using post-stratification is a common method for calibrating the sample covariate distribution to population totals. That is not however a way to deal with missing values. It is also irrelevant if you are estimating a model [Y|X] rather than [Y,X].
 Jin Qu posted on Tuesday, February 20, 2018 - 1:50 pm
I am using the BCH method described in Section 3.2 in Webnote 21 to predict distal outcomes (internalizing) from latent profiles while controlling for covariates (racedi). Then, I calculated means based on the intercepts, slopes, predictor means that I obtained from the output. I wonder if I could obtain standard deviation for the means of the distal outcomes? See below for my model. Thanks!

model:
%overall%
ZINTER4 on RaceDi;
c on RaceDi;

%C#1%
ZINTER4 on RaceDi;
[ZINTER4] (m1);
%C#2%
ZINTER4 on RaceDi;
[ZINTER4] (m2);
%C#3%
ZINTER4 on RaceDi;
[ZINTER4] (m3);

%C#4%
ZINTER4 on RaceDi;

[ZINTER4] (m4);

model test: m2=m4;
 Tihomir Asparouhov posted on Tuesday, February 20, 2018 - 3:41 pm
You can do something like that

%C#1%
ZINTER4 on RaceDi (beta1);
[ZINTER4] (m1); ZINTER4 (rv1);
[RaceDi]; RaceDi (v1);

model constraints:
new(sd1); sd1=sqrt(rv1+beta1*beta1*v1);

You can also get these using output:residual without modifying the model
 Jill Rabinowitz posted on Tuesday, March 06, 2018 - 11:38 am
I'm using the bch method to run some analyses and I am running into some issues. Using the syntax below, I am getting this message: "

*** ERROR in ANALYSIS command
TYPE=MIXTURE is not available for multiple group analysis."

I am following the example 3.1 of webnote 21 (p.8). Can you please advise?

syntax:
IDVARIABLE IS famid;
MISSING ARE ALL (999);
USEVARIABLES ARE icethnic icsex groupid
YTOTEXT3 YTOTINT3 ICTOTINT4 ICEXT4 TOTINT5 TOTEXT5 bchw1 bchw2 bchw3;

classes=c(3);

Training=bchw1-bchw3(bch);

DATA:file=manbch2;

ANALYSIS:
TYPE=mixture;
starts=0;
estimator=mlr;

MODEL:
%overall%
totint5 on icethnic icsex groupid YTOTINT3 ICTOTINT4;
%c#1%
totint5 on icethnic icsex groupid YTOTINT3 ICTOTINT4;
%c#2%
totint5 on icethnic icsex groupid YTOTINT3 ICTOTINT4;
%c#3%
totint5 on icethnic icsex groupid YTOTINT3 ICTOTINT4;
 Bengt O. Muthen posted on Tuesday, March 06, 2018 - 3:00 pm
We need to see our full output - send to Support along with your license number.
 Mark Peterman posted on Saturday, March 17, 2018 - 4:11 pm
I want to determine whether classes show different mean levels of dep2 after controlling for sex and dep1 (syntax below). I have 2 questions:

1. Does a significant intercept indicate that c2 predicts dep2 after controlling for sex and dep1?

2. How can I determine whether the intercepts of each class for dep2 are different from each other?

Latent Class 1
Dep2 ON sex -0.866 0.891 -0.423 0.672
dep1 -0.651 0.703 -0.927 0.354

Intercepts
Dep2 0.765 1.222 2.263 0.224

Latent Class 2
Dep 2 ON sex .287 1.891 -0.423 0.490
dep1 .674 0.124 -0.927 0.203

Intercepts
Dep2 3.649 1.066 3.422 0.001
 Bengt O. Muthen posted on Sunday, March 18, 2018 - 5:01 pm
You want to look at the difference between the class 1 and class 2 intercepts to see if class influences the DV controlling for the IVs. You do that using the Model Test command with parameter labels defined in the Model command, e.g.

Model Test:
New(diff);
diff = inter2 - inter1;

where inter1 and inter2 are intercept parameter labels.
 Mark Peterman posted on Sunday, March 18, 2018 - 5:57 pm
Thank you, Dr. Muthen. Does this look about right?

MODEL:
%overall%
Dep 2 on sex dep1;

%c#1%
Dep 2 on sex dep1;
[dep2](inter1);

%c#2%
Dep 2 on sex dep1;
[dep2](inter2);

MODEL TEST:
New(diff);
Diff =inter2 – inter1;
 Danielle Fowler posted on Monday, March 19, 2018 - 12:23 pm
Good Afternoon,

I am using the bch approach as outlined in webnote 21. I identified 3 profiles (n's = 126, 545, and 124). I entered the covariates and DVs and saved the bch weights. When I ran analyses looking at the effect of the covariates on the DV, the profile n's shifted (n's = 59, 670, and 40). I thought the class n's were not supposed to shift using the bch approach. Can you please clarify?

Thanks!
 Bengt O. Muthen posted on Monday, March 19, 2018 - 3:35 pm
Answer to Peterman:

Looks fine.
 Bengt O. Muthen posted on Monday, March 19, 2018 - 3:36 pm
Answer to Fowler:

Send outputs from your first and last steps to Support along with your license number.
 Rachael Robnett posted on Saturday, April 28, 2018 - 4:42 pm
I'm having the same issue as Jill above. I am trying to use the automatic BCH method with LPA. I keep getting the following error message:

*** ERROR in ANALYSIS command
TYPE=MIXTURE is not available for multiple group analysis.


Here is the input:
variable:
names=id common serious gender eth major femin genid value identity;
usevariables = common serious;
idvariable = id;
classes=c(3);
auxiliary = value(bch);
missing = all(99);
data: file=a1.dat;
analysis:
type=mixture;
 Tihomir Asparouhov posted on Monday, April 30, 2018 - 8:33 am
Please send your full example to support@statmodel.com
We can't replicate the problem.
 farzad alemi posted on Thursday, June 21, 2018 - 9:44 pm
Hello

I'm using the manual BCH method to assess potential differences in a continuous distal outcome Y across three latent classes (my indicators are four 3-level ordinal variables). I would like to incorporate residual association between 2-3 indicators using PARAMETERIZATION=RESCOVARIANCES command. I have a set of covariates that influence Y and/or latent class variables. However, I receive an error message stating
SAVE=BCHWEIGHTS is not available with ALGORITHM=INTEGRATION.

Is there a way to incorporate the residual association in latent class for 2-step BCH model?

Thank you!
 Tihomir Asparouhov posted on Friday, June 22, 2018 - 4:33 pm
It is not available. You can use the 3-step approach as an alternative.
 Sabrina Twilhaar posted on Monday, July 02, 2018 - 2:32 pm
Dear Sir/Madam,

I have used the BCH method to compare the mean of a continuous auxiliary outcome across 4 classes. The output provides the Wald chi-square statistic and accompanying p-value.

Most journals ask to report effect sizes and CI. I'm struggling how to infer these from the output.

Would it be correct to just calculate the standardized mean difference and its CI from the estimated means of the classes?

I'm in doubt because in one of the cases the Wald test is significant (p=0.036), but the CI around the SMD contains the zero, indicating that the differences in means are not significantly different.

Could you please clarify this? Thank you in advance.
 Tihomir Asparouhov posted on Tuesday, July 03, 2018 - 2:34 pm
Using the example on page 6
http://statmodel.com/examples/webnotes/webnote21.pdf
and the forth class as the reference class you can compute the effect size as

Effect=-1.063-0.295=-1.358

Then you can use the Class 1 vs. 4 chi-square value to get the Z-value by taking the square root

Z-value=sqrt(99.557)=9.9778

now you can get the standard error for the effect

SE=ABS(Effect/Z-value)=ABS(-1.358/9.9778)=0.1361

The confidence bound for the Effect is
[Effect-1.96*SE,Effect+1.96*SE]=
[-1.624759528, -1.091240472]
 Sabrina Twilhaar posted on Wednesday, July 04, 2018 - 3:20 am
Thank you very much for the very helpful answer. One additional question: if I would like to report the standardized mean difference, is it correct to take the following steps?

1. Convert the SE of the class mean into a SD by SE*(square root(n))
2. Calculate the SMD by dividing the raw mean difference between two classes by the pooled SD of the two classes
3. Get the SE of the SMD by SMD/z-value (square root of chi-square)
4. Compute the 95% CI as above
 Tihomir Asparouhov posted on Thursday, July 05, 2018 - 9:24 am
For that purpose I would recommend using the manual BCH approach. You can form the standardize mean differences in model constraint to obtain the proper SE and confidence intervals. See Section 3 in
http://statmodel.com/examples/webnotes/webnote21.pdf
to see how the manual BCH is conducted. The model constraint is illustrated in User's Guide example 3.10. You provide labels for the model parameters and then use them to form whatever difference you want.
 Scot Seitz posted on Friday, January 18, 2019 - 7:38 am
Based on the post in this forum on Friday, June 22, 2018 at 4:33 pm, it seems that the PARAMETERIZATION=RESCOVARIANCES command is not available for BCH. When using the manual BCH method, can residual covariances be included if the indicators are continuous?

Thank you!
 Bengt O. Muthen posted on Saturday, January 19, 2019 - 1:24 pm
I think so - try it.
 Esther Sutton posted on Wednesday, January 23, 2019 - 8:43 am
Hello,

I'm using the manual BCH method to examine the potential relation between latent class membership and an outcome (Y), controlling for a set of covariates (X1-X4). I completed the first step and decided on a model with 4 latent classes. I am now on the second step and would like to know if latent class membership significantly predicts the outcome variable, controlling for my covariates. Based on the messages on this discussion board, I've noticed two ways of doing this. I'm wondering which approach is correct.

Model 1:

MODEL:
%overall%
CL ON X1 X2 X3 X4;
Y on X1 X2 X3 X4;

%cl#1%
[OB_ES] (m1);

%cl#2%
[OB_ES] (m2);

%cl#3%
[OB_ES] (m3);

%cl#4%
[OB_ES] (m4);

MODEL TEST:
m1 = m2;
m1 = m3;
m1 = m4;

Model 2:

MODEL:
%overall%
CL ON X1 X2 X3 X4;
Y on X1 X2 X3 X4;

%cl#1%
Y on X1 X2 X3 X4;
[OB_ES] (m1);

%cl#2%
Y on X1 X2 X3 X4;
[OB_ES] (m2);

%cl#3%
Y on X1 X2 X3 X4;
[OB_ES] (m3);

%cl#4%
Y on X1 X2 X3 X4;
[OB_ES] (m4);

MODEL TEST:
m1 = m2;
m1 = m3;
m1 = m4;

Thank you!
 Esther Sutton posted on Wednesday, January 23, 2019 - 8:45 am
Sorry, just want to clarify that in the above syntax OB_ES is the same as Y.

Thanks.
 Bengt O. Muthen posted on Wednesday, January 23, 2019 - 4:53 pm
Either approach is fine. The second approach implies that the Y on X slope varies across the classes - that is, you have an interaction between the latent class variable and X in their influence on Y.
 Scot Seitz posted on Saturday, February 23, 2019 - 2:56 pm
Can sample weights be used during the second step of the manual BCH method?

Thank you!
 Tihomir Asparouhov posted on Monday, February 25, 2019 - 9:48 am
The sampling weight should be used during the first and the second stage.
 Esther Sutton posted on Tuesday, March 05, 2019 - 10:17 am
Hello,

When running the second step of the BCH approach I get the following error message:

WARNING: THE SAMPLE COVARIANCE OF THE INDEPENDENT VARIABLES IN CLASS 2 IS SINGULAR. PROBLEM INVOLVING VARIABLE OB_ES.

THE MODEL ESTIMATION DID NOT TERMINATE NORMALLY. THE COMPUTATION OF THE FISHER INFORMATION MATRIX COULD NOT BE COMPLETED.

THE STANDARD ERRORS OF THE MODEL PARAMETER ESTIMATES COULD NOT BE COMPUTED. THIS IS OFTEN DUE TO THE STARTING VALUES BUT MAY ALSO BE AN INDICATION OF MODEL NONIDENTIFICATION. CHANGE YOUR MODEL AND/OR STARTING VALUES. THE SAMPLE COVARIANCE MATRIX COULD NOT BE INVERTED FOR CLASS 2. PROBLEM INVOLVING VARIABLE OB_ES.

Is there any way I can proceed with my current model given this error message?

Thank you.
 Tihomir Asparouhov posted on Tuesday, March 05, 2019 - 5:27 pm
See page 4

https://www.statmodel.com/examples/webnotes/webnote21.pdf

If holding the variances equal across class doesn't work for you switch to the 3-step manual approach.
 fred posted on Tuesday, April 09, 2019 - 4:32 am
Hi,
when I try to replicate the example on page 11 on the webnote on BCH method i get the error message:
"TYPE=MIXTURE is not available for multiple group analysis."

My code is
Variable:
Names are ...G1-G8;
Missing are all (999);
Categorical are G1-G8;
Usevariables are G1-G8;
CLASSES = c (3);

Auxiliary=Outcome age_cent ;
Data: file=manBCH.dat;
Analysis: Type = Mixture;
Savedata: File= manBCH2.dat; Save=bchweights;
 Bengt O. Muthen posted on Tuesday, April 09, 2019 - 5:43 pm
Send your output to Support along with your license number.
 fred posted on Tuesday, April 09, 2019 - 10:12 pm
Thanks, I found out the problem which was a line being repeated in the input. So I could save the BCH weights.
For the next step I have two questions.

1. The Variable names line includes MLC, but looking at the oder and format of variables it seems that the last saved variables are BCH weights, and looking at the BCH file it does not look like it contains the most likely class variable.. is including MLC in the variable name list still correct?

2. Obviously several covariates can be included in model command, but can there be only one y (outcome) at a time that can be included in the model? This seems to be the case for automatic DE3step as well. Am I correct?
 fred posted on Wednesday, April 10, 2019 - 6:54 am
Another problem I am seeing is that it looks like there are missing data on the saved file (there are *s in the data) and the second step command dosent run ( *** ERROR Invalid symbol in data file: "*" at record #: 21, field #: 9).
 fred posted on Wednesday, April 10, 2019 - 9:51 pm
I retract my question about *, can see that it should be coded as missing.
 fred posted on Thursday, April 11, 2019 - 12:32 am
So by specifiying "*" as missing, and including only one distal outcome the BCH analysis could run. However I do not get the Wald test and receive the error message:

WALD'S TEST COULD NOT BE COMPUTED BECAUSE OF A SINGULAR COVARIANCE MATRIX.

Can this be resoved? the DCON option had earlier produced the mean and difference tests, but not controling for the covariates as I try to achive here in BCH.

Thanks
 Tihomir Asparouhov posted on Thursday, April 11, 2019 - 2:52 pm
At the end of each output file there is a section "SAVEDATA INFORMATION" which will tell you what is being saved and where. Add save=cprob; to get the most likely class.

Since you are saving the BCH weights you are using the manual BCH and with that aproach you can use any model including models with multiple dependent variables. The same applies to the manual 3step.

You can probably resolve the Wald test problem by making sure that there are no more than K-1 equations when you compare the means. For example, in a 3 class model the correct way to test equality of the means is
model test: 0=m1-m2; 0=m1-m3;
rather than
model test: 0=m1-m2; 0=m1-m3; 0=m2-m3;
The last equation is superfluous and will cause the Wald test error.
 fred posted on Friday, April 12, 2019 - 7:18 am
Thank you so much! It sorted it out!

in case of testing for equality of means of two dependent variables I enter something along:

Model test: 0=m3-m1; 0=m3-m2; 0=n3-n1; 0=n3-n2; (m and n are intercepts of the two dep variables)

Doing so gives me an overall Wald test with 4 df which I assume is 2df X2. Is there a way to determine which specific pair of means are significantly different (rather than the overall test) within the BCH?
 fred posted on Friday, April 12, 2019 - 9:16 am
To follow up the question about multiple comparisions when the overall Wald test is signifacnt:
Is it possible in this case to get Effect sizes and SEs similar to your response to apresvious question from July 03, 2018? (The output does not look like the one in page 6 and I am assuming it is because the means are here controlled for by the predictors.)

Also, is it possible to get the explained variance for each outcome in the class specific regressions?
 Bengt O. Muthen posted on Friday, April 12, 2019 - 1:59 pm
post 1: Use 2 runs.

post 2: You can create any effect size you like in Model Constraint. Same for R-square.
 fred posted on Saturday, April 13, 2019 - 1:50 am
Thanks, answer 1 is clear,
Regarding 2, is there a webnote or handout that described the prcoedure for using model constraint for ES and R-sq?
 Bengt O. Muthen posted on Saturday, April 13, 2019 - 4:21 pm
No. You just have to express these quantities in terms of model parameters using labels given in the Model command.
 fred posted on Sunday, April 14, 2019 - 6:35 am
Thank you, is exemple 5.20 in UG applicable to BCH for specifying the parameters? Also does the R^2 that the STDY output produces not the class specific explained variance?
 Bengt O. Muthen posted on Sunday, April 14, 2019 - 12:28 pm
Q1: It is useful. Directly applicable I don't think.

Q2: Could well be; I have to see the full output to see the specifics.
 Daniel Lee posted on Thursday, August 08, 2019 - 8:32 am
Hi Dr. Muthen,

I have read on some other posts that folks can now use multiple imputation when using the BCH approach. I am currently examining differences on a distal outcome across latent growth classifications (from a growth mixture model).

The distal outcomes were collected 6 years later and I have some missing data (due to study drop out).

I saw in User Guide example 9.5 Mplus syntax/description for conducting multiple imputation. What I'm not quite sure of is whether I should use the data imputation command in the first step of the BCH procedure (when generating BCH weights and saving weights and variables to a new dataset), or in the second step of the BCH procedure (running the analysis with BCH weights).

Also would you the syntax for multiple imputation be similar for BCH approach in relation to what's detailed in the user guide section 9.5?

Thank you so much.
 Tihomir Asparouhov posted on Thursday, August 08, 2019 - 4:02 pm
I don't think you need multiple imputationin in either step. We usually recommend that when covariates are missing, but we don't recommened it for dependent variables. Leave the missing values in place and let maximum likelihood deal with that.
 fred posted on Sunday, September 15, 2019 - 6:43 am
Hi,
I am running a manual BCH analysis, at the first step the BCH data file with auxillary variables and the weights has been created, and I am attempting to run the second step (using a similar code as previous analyses which have been runing successfully). I then recieve an error message saying:

*** ERROR
Unexpected end of file reached in data file.

I have listed the variable names exactly as the output of the first step (with the addition of MLC), and have checked for coding of missing. Still I get this message. Any help would be greatly appriciated!
Fred
 Bengt O. Muthen posted on Monday, September 16, 2019 - 4:06 pm
Check that the number of columns in your data match the number of variables in your Variable statement. For both steps.
 shonnslc posted on Monday, October 28, 2019 - 8:27 pm
Hi,

I am reading the BCH approach (https://www.statmodel.com/download/asparouhov_muthen_2014.pdf). It seems that the distal outcomes in the note are observed variables. What if my distal outcomes are latent variables. More like MIMIC (LCA as groups or predictors, latent variables as DV).
How can I use BCH approach to accomplish this goal? Thank you!
 Tihomir Asparouhov posted on Tuesday, October 29, 2019 - 8:53 am
You have to use the approach given in Section 3 (manual BCH) where the MIMIC model becomes the auxiliary model.
 Jill Rabinowitz posted on Thursday, December 26, 2019 - 8:11 pm
I am trying to determine whether class membership predicts a categorical outcome (y) using the bch method. In step 1, I saved the bch weights to be used in step 2 (see below). In step 2, do I need to specify that my outcome is categorical?

USEVARIABLES ARE gender race y bchw1
bchw2;

classes=c(2);

Training = bchw1
bchw2(bch);

MODEL:
%overall%
y on gender race;

%c#1%
y on gender race;
[y](p1);

%c#2%
y on gender race;
[y](p2);

ANALYSIS:
TYPE=mixture;
starts=0;
estimator=mlr;

MODEL TEST:
p1=p2;
 Tihomir Asparouhov posted on Friday, December 27, 2019 - 3:30 pm
You should specify it as categorical and change to
[y$1](p1);
[y$1](p2);
That will give you the proper logistic regression.
 DavidBoyda posted on Tuesday, February 18, 2020 - 2:23 am
Dear Support, I have used the Bch method for four different outcomes in my LCA model. In the equality tests of means, there are numerous comparisons. Does Mplus correct for multiple testing or does it estimate it a single run or something. I wish to mitigate any problems at review.

bw

D
 Bengt O. Muthen posted on Tuesday, February 18, 2020 - 5:23 pm
No correction is done for multiple testing.
 Kim Bamberg posted on Friday, April 24, 2020 - 12:07 pm
Dear DR Muthen,

I am trying to manually do the BCH method as indicated in webnote No.21. However, when indicating SAVE=bchweights; the bch weights are not saved. I can not find out why this is the case.

My syntax is :

VARIABLE:
NAMES = ov_1 ov_2 ov_3 ov_4
gr ID country listex
int_1 int_3 int_4
ex_1 ex_2 ex_3 ex_4
DP;

USEVAR = int_1 int_3 int_4
ex_1 ex_2 ex_3 ex_4;

AUXILIARY = ov_1 ov_2 ov_3 ov_4
gr country listex DP;

IDVARIABLE = ID;

CLASS = cl(4);


ANALYSIS:

PROCESSORS = 8;
TYPE = MIXTURE;
ESTIMATOR = MLR;
STARTS = 0;

MODEL:
!here I copy pasted starting values and model according to the previously received output when asking for SVALUES.

Savedata:
File= bch.dat;
Save= BCHWEIGHTS;
 Jung Yun Jang posted on Sunday, May 10, 2020 - 7:04 pm
Dear Professors,

I followed the method described in section 3.2 of webnote 21 to compare time to event across 3 classes, controlling for a number of covariates. I understand that class-specific intercepts indicate the effect of the latent class on time to event, controlling for covariates. I ran MODEL TEST for intercepts 1 vs 2 and 1 vs 3 and found that they are significantly different. I would like to report the results using HRs and CIs for class 2 and class 3, compared with class 1 (reference). I was wondering if you could provide instructions and/or direct me to papers that might be helpful.

Thank you!
 Tihomir Asparouhov posted on Monday, May 11, 2020 - 2:52 pm
This should work

model:
%C#2%
[S] (m2);
%C#3%
[S] (m3);

model constraints:
new(HR2); HR2=exp(m2);
new(HR3); HR2=exp(m3);

output:cint;

https://en.wikipedia.org/wiki/Hazard_ratio#The_hazard_ratio,_treatment_effect_and_time-based_endpoints

and formula (3)
http://www.statmodel.com/download/Survival.pdf
 Jung Yun Jang posted on Tuesday, May 12, 2020 - 7:49 am
Thank you!

I noticed that some of the values in the output that should not be negative are negative, such as average latent class probabilities or classification probabilities. I also noticed that class-specific intercepts might be larger than they should be, such as 9.270 or 4.074. I was wondering what the problem might be.
 Tihomir Asparouhov posted on Tuesday, May 12, 2020 - 6:24 pm
I have never seen such a thing. Probably extremely low entropy, i.e., the measurement model for the latent class is very poor.
 Jung Yun Jang posted on Wednesday, May 13, 2020 - 12:29 am
I was wondering if you have any suggestions as to what I might try? Entropy for the latent class is 0.848, without the auxiliary regression model.
 Tihomir Asparouhov posted on Wednesday, May 13, 2020 - 8:50 am
It's not the entropy. Check data reading. Send it to support@statmodel.com
 Sheung-Tak Cheng posted on Sunday, May 24, 2020 - 10:47 pm
I have two questions:

1) If I want to compare the means of >1 auxiliary vars using the automatic BCH method, do I run five separate analyses or specify all five vars in the AUXILIARY command? If the latter, do I say AUXILIARY = a b c d e (bch); or AUXILIARY = a(bch) b(bch) c(bch) d(bch) e(bch)?

2) When comparing group means on the auxiliary vars, was Bonferronn applied? If not, should I apply it manually myself?

Tak
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: