Dear Professor/s ... I ran Bivariate probit model using MPlus, SAS (Proc QLIM) and STATA (using “biprobit” command) … SAS and STATA results are matching with each other for every variables (in fact up to 5 point after decimal) ... however they are not matching with MPlus, discrepancies are pretty huge ...it really makes me worried (everything is different, coefficient, SE and hence the following, though the overall significance of parameters remain almost same)
Now in MPlus I have run my model using both ML and WLSMV, even the result differences among them are noticeable too ... below is my code
ANALYSIS: ESTIMATOR=ML; !(I have checked with MLR as well) MODEL: Y1 on X1 X2 X3 X4; Y2 on X1 X2 X3 X4;
Q1. Now ...Under ML I have put the restriction Y1 with Y2 in MODEL command ...it does not work ... How could I be sure that MPlus is assuming Y1 and Y2 are related or not. under WLSMV it gives us “rho” but that is also pretty low (0.784 in Mplus vs. 0.816 in SAS and STATA result)
Q2. Do you think I should write something else to make it Bivariate in the above code? ...I need to make it sure that I am writing MPlus syntax correctly
Q3. For sure, I know SAS and STATA use Maximum Likelihood estimation ...I was expecting MPlus’s ML result to match with them ...what could be the reasons behind such discrepancies
Thanks and regards
NB: I check with single equation probit using MPlus and SAS, the discrepancies are there too … I can send you the print out of all these results
With ML and categorical outcomes, Mplus uses logit, not probit. For approximate logit-probit conversions, see e.g. Maddala's book on our web site. Probit is only available with the Mplus WLS estimators. With categorical outcomes and ML, correlated residuals is not available because Mplus works with a conditional independence assumption to reduce the computational burden for general models (with more than 2 dependent variables). If you want a residual covariance you can create a factor that influences each outcome. For single equation probit, Mplus does produce ML estimates (see the "sample statistics") - given that you say that you see discrepancies here as well, I suspect you are not analyzing the same data in the different programs, for example you may handle missing data differently.
Thank You Professor ... but a little confusion still remains about the Threshold Assumption of MPlus
I took MPlus example3.4 (page23) and run it as Logit/ML
Q1. Using the same data set (ex3.4.dat) I run Logit (error following Logistic Distribution)in STATA and SAS ...as you have said, this time every thing is exactly same with MPlus, BUT with one difference ...
Thresholds (MPlus) U1$1 1.796 0.241 7.462 While in STATA/SAS I got constant -1.795903 .2406734 -7.46
it looks the difference lies in the way we assume threshold ...I'm wondering what is that!
Q2. thanks ...now I got the ML and single equation Probit thing in MPlus ... I use "sampstat", and in the output under "estimated sample statistics" I got the value which is exactly matching with STATA result ... however, here as well, the constant sign is different again!
Model: f1 by y1; f2 by y2; y1 ON x1 x2 f1; y2 ON x1 x2 f2; f1 with f2;
Q1:The coefficient and standard errors came very close, but the estimate for f1 with f2, by which I meant to capture residual covariance, is .000. Is this forced to be zero, or is is a result of the analysis? Is this the correct way to get residual covariance?
Q2:Though the coefficient estimates come very close to the results by stata's biprobit, they aren't identical. Is there any error or lack of command that might have produced this descrepancy? Any comments will be greatly appreciated!!!
I meant your comments on May 30 where you say "if you want a residual covariance you can create a factor that influences each outcome." How should I exactly create a factor to capture residual covariance and incorporate it in the codes;
You do not need TYPE=RANDOM; Please delete that. To specify a residual covariance, say y1 WITH y2; If you have categorical outcomes and specify nothing in the ANALYSIS command, you will obtain weighted least squares.
In summary, with maximum likelihood and categorical outcomes, residual covariances cannot be specified using the WITH option. They must be specified by putting a factor behind the two variables to be covaried as shown in Example 7.16. Each residual covariance results in one dimension of integration. The WITH option is used with weighted least squares to specify a residual covariance.
I came up with the following set of partial codes;
Analysis: type = meanstructure; model: Y1 on X1 X2; Y2 on X1 X2; f1 by Y1; f2 by Y2; f1 with f2; [Y1$1*5 Y2$1*5]; f1@1; f2@1;
This way, I am able to get the residual covariance but the coefficient estimates in this multi-equation modeling are the same as running univariate probit models. However, stata uses the biprobit (or multivariae probit) disribution and not just correlate the residuals, thus produces coefficient estimates that are different from single probits, and these coefficients are supposedly efficient since they take residual covariance into account when estimating the coefficients.
So my question would be: does mplus do stata's biprobit??
I would need to see the Stata output and the Mplus input, data, and output to answer this. It looks like you set the model up properly. Please send them and your license number to firstname.lastname@example.org.