Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | rraciborski@stata.com (Rafal Raciborski, StataCorp) |
To | statalist@hsphsun2.harvard.edu |
Subject | st: Mixed ordered probit (Stata 13) varying intercept when there is no intercept |
Date | Fri, 19 Jul 2013 14:53:25 -0500 |
Sam <lucaselastic@gmail.com> has some questions about the -meoprobit- command: > How do I specify a varying intercept in the -meoprobit- model when the > model does not have an intercept? > How do I specify a level-2 explanatory covariate for variance in that > intercept in the -meoprobit- model when the model does not have an > intercept? In Stata's implementation of ordered outcomes models, the effect of the constant term in the fixed-effects equation is absorbed into the cutpoints. Therefore, there is no -noconstant- option for the fixed-effects equation. This is explained in the following FAQ: Why is there no constant term reported in ologit and oprobit? http://www.stata.com/support/faqs/statistics/ordered-logistic-and-probit-models/ Essentially, from the model, we cannot identify all the cutpoints and the constant. Introducing a constant equal to c, would result in the same model with the constant added to all the cutpoints, for example: . sysuse auto, clear (1978 Automobile Data) . oprobit rep mpg disp turn, nolog Ordered probit regression Number of obs = 69 LR chi2(3) = 19.65 Prob > chi2 = 0.0002 Log likelihood = -83.865955 Pseudo R2 = 0.1049 ------------------------------------------------------------------------------ rep78 | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- mpg | .0206013 .0374653 0.55 0.582 -.0528293 .0940318 displacement | .0002449 .0026009 0.09 0.925 -.0048528 .0053426 turn | -.1231891 .0555626 -2.22 0.027 -.2320897 -.0142885 -------------+---------------------------------------------------------------- /cut1 | -6.562678 2.523843 -11.50932 -1.616037 /cut2 | -5.677153 2.49473 -10.56674 -.7875718 /cut3 | -4.19813 2.444281 -8.988833 .5925736 /cut4 | -3.215816 2.437516 -7.993258 1.561627 ------------------------------------------------------------------------------ . generate one = 1 . constraint 1 _b[one] = 5 . oprobit rep mpg disp turn one, constraint(1) nolog collinear Ordered probit regression Number of obs = 69 Wald chi2(3) = 18.66 Log likelihood = -83.865955 Prob > chi2 = 0.0003 ( 1) [rep78]one = 5 ------------------------------------------------------------------------------ rep78 | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- mpg | .0206013 .0374653 0.55 0.582 -.0528293 .0940318 displacement | .0002449 .0026009 0.09 0.925 -.0048528 .0053426 turn | -.1231891 .0555626 -2.22 0.027 -.2320897 -.0142885 one | 5 (constrained) -------------+---------------------------------------------------------------- /cut1 | -1.562678 2.523843 -6.50932 3.383963 /cut2 | -.6771535 2.49473 -5.566735 4.212428 /cut3 | .8018702 2.444281 -3.988833 5.592574 /cut4 | 1.784184 2.437516 -2.993258 6.561627 ------------------------------------------------------------------------------ Therefore, if we want to introduce the equivalent to different 'constants' for boys and girls, we just need to include a dummy variable for one of the two groups; the coefficient for this dummy will tell us how much this group is shifted with respect to the other, for example: clear use http://www.stata-press.com/data/r13/childweight gen weightcat = int(weight/4) oprobit weightcat girl c.age c.age#c.age Notice that if we try to include both dummies, boy and girl, one of them will be dropped for the same reason that the model does not have a constant. If we fit a two-level model, the option -noconstant- is valid at the second level. For example, in the model oprobit y girl || school: The 'constant' at the school level models a random shift in the cutpoints from their overall values. If, in addition, we want to introduce a different random slope for boys and girls at the school level, we just include the two dummies at the school level, with the option -noconstant-, as in the following artificial example: clear set seed 13597 webuse childweight egen v = group(id) gen school =int(v) gen sch_eff = rnormal() bysort school: replace sch_eff = sch_eff[1] replace weight = weight + sch_eff gen weightcat = int(weight/5) gen boy = 1-girl meoprobit weightcat girl c.age c.age#c.age || school: boy girl, nocons Sam may have a look at the "Heteroskedastic random effects" section of the -mixed- entry of the Multilevel Mixed-Effects Reference Manual for more examples. The manual is available on-line at http://www.stata-press.com/manuals/multilevel-mixed-effects-reference-manual. -- Isabel -- Rafal icanette@stata.com rraciborski@stata.com * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/