It is now possible to estimate models with non-nested
(e.g. crossed) random effects. Such models can be specified
by providing a list of formulas as random=
argument to the
mclogit()
or mblogit()
function.
The left-hand side of conditional logit models can now
more conveniently specified using the vertical-bar (|
)
operator.
It is now possible to choose between different
optimizers to be used in the inner iterations of the MQL/PQL
estimator: One can choose between nlm()
, nlminb()
,
ucminf()
, and most techniques provided by optim()
.
With rebase()
the baseline category of a model
can be changed without the need of refitting the model.
mblogit()
and mclogit()
now have a
groups=
argument that allows to estimated
overdispersion (across groups).
mblogit()
and mclogit()
now also have an
offset=
argument that to add an offset to the model
(i.e. a covariate with coeffecient fixed to unity).
Singular initial covariance matrices no longer cause errors.
A warning about unreliable results is issued if
anova()
is applied to models with random effects.
Estimating of overdispersion with group data now works.
mclogit()
and mblogit()
check whether the list
passed as control
is complete i.e. contains all the relevant
named arguments.
A ranef()
method is provided for objects created
by mclogit()
or mblogit()
.
It is now possible to use the MQL estimation technique as an alternative to PQL.
As an alternative to extending a logit model with random effects, it is now possible to add an over-dispersion parameter to the model.
In addition to approximate the ML estimator, MQL and PQL have a variant that approximates the REML estimator.
There is now a simulate()
method for objects returned
by mblogit()
or mclogit()
(but only for those
without random effects).
Predictions from random-effects models estimated using the PQL technique now are now conditional on the random effects (unless requested otherwise).
mclogit()
now handles empty responses (i.e. counts that
sum to zero) correclty.
mclogit()
now flags non-numeric response vectors as an
error.
predict()
now handles scaled independent variables correcty.
summary()
shows the number of groups per random
effects level (if present).
mclogit()
and mblogit()
with random effects now work with
formula=
-argumements passed in variables.
The algorithm for fitting random-effects models tended to stop prematurely returning the starting values obtained using a methods of moments. It has been completely refactored and proceeds similar to the PQL algorithm in Professor Brian Ripley's MASS package:
Now an inner step, in which a linear mixed model is fitted to a working dependent variable is nested into outer step iterations, in which the the working dependent variable is updated.
Also, the PQL algorithm no longer builds on starting values from a no-random-effects model, because surprisingly this makes the algorithm more stable and not less.
As a consequence, the algorithm does a much better job at avoiding divergence or running into numerical difficulties.
The PQL estimator for random-effects model uses a (inverse) Cholesky factor parametrisation, which makes sure that random-effects (Co-)Variance matrices are always positive (semi-)definite.
mclogit
now complains about (i.e. throws an error
exception) when the random effects structure cannot be estimated,
e.g. because random effects are constant within choice sets
and therefore drop out by the formation of conditional logits.
mblogit
now handles responses with only two columns.
mblogit
now can deal with matrix responses that have
rows that sum to zero.
mclogit
and mblogit
now return a component
named "df.residual" instead of "residual.df".
mclogit
now supports conditional logit models with
random slopes.
mblogit
now supports multinomial baseline models with
random intercept and random slopes.
predict
methods of objects created by mclogit
and mblogit
are better in handling missing data.
New nobs
and extractAIC
methods for mclogit
objects, so that drop1.default
should work with these.
New function mblogit
to fit multinomial baseline logit models.
mclogit
mclogit.fit
now allow user-provided starting values.
getSummary
methods now return "contrasts" and "xlevels" components.
Fixed prediction method for mclogit
results.
Corrected handling of weights and standard errors of prediction.
Matrices returned by the mclogit
method of vcov()
have
row and column names.
The number of observations is now displayed where it was not before.
nobs
is defined in mclogit.fit.rePQL
.
mclogit.fit
and mclogit.fit.rePQL
are exported to enable their use by other packages.