Stata now fits nonlinear models with random effects. This means that when your science says that the model should be nonlinear in the parameters, as in the constant elasticity of substitution (CES) production function or in a growth curve for adoption of a new technology, you can now fit that model even when you have panel data. Parameters in the fixed portion of the model and random effects can both enter the model nonlinearly.
Now instead of fitting a linear model with random effects UjUj, such as:
we can fit a nonlinear model with random effects, such as:
The new menl
command fits these models. In particular, an example with random intercepts is presented under Random intercepts. You can also fit models with random coefficients as shown in the Random coefficients and random-effects covariance structures example. You can even fit models with additional levels. See the Nonlinear three-level model: CES production function
The new bayes
prefix can fit Bayesian panel-data models. If you read Bayesian regression models using the bayes
prefix, this may surprise you. But what you might have overlooked is that panel-data models can be fit using commands for multilevel models. You can read all about Bayesian multilevel models. But when you see:
Instead think:
which fits a panel-data linear regression model with random intercepts by id
. Thus, while you can't fit the Bayesian version of this model by typing:
you can type:
And because you are using mixed
, you are not limited to random intercepts. You can include random coefficients too. If the coefficient for x2 varies across ids
, type:
For an example, see Random coefficients.
Bayesian panel-data models are not only for continuous outcomes. You can just as easily type for binary outcomes
for count outcomes:
or for censored outcomes:
Or use any of the 12 multilevel estimators that support the bayes
prefix.
Suppose you have panel data and want to fit a random-effects model to an interval-measured outcome such as income bracket or age group.
If ylower
and yupper
record the upper and lower endpoints of the outcome, we could type:
to fit a model with random intercepts by id
. The xtintreg
command is not new, but the meintreg
command is. You can fit the same model with meintreg
by typing:
The advantage of using meintreg
is that it does not restrict us to random intercepts. What if the coefficient for x1
varies across the levels of id
? We can fit a random-coefficients model by typing:
You can see an example and learn more about the new meintreg command. That example fits a model with city-level random intercepts.
The model could easily be extended to allow for random coefficients on age
and work
by typing: