IMPORTANT: This function and its methods are no longer supported. The user is adviced to use clm() from package ordinal instead.
Fits a cumulative link location-scale model to an ordered response variable. When the scale part is left unspecified, the model reduces to a cumulative link model assuming a constant scale. With the default logistic link function, the model reduces to the famous Proportional Odds Model. With the probit link and a single two-level factor in both location and scale parts, the model is known as the Binormal model in the Signal Detection Theory and the Psychometric literature.
clls(location, scale, data, weights, start, ..., subset,
na.action, contrasts = NULL, Hess = FALSE, model = TRUE,
method = c("logistic", "probit", "cloglog", "cauchit"))
a formula expression as for regression models, of the form
response ~ predictors
. The response should be a factor
(preferably an ordered factor), which will be interpreted as an
ordinal response, with levels ordered as in the factor.
The model must have an intercept: attempts to remove one will
lead to a warning and be ignored. An offset may be used. See the
documentation of formula
for other details.
a optional formula expression as for the location part, of the form
~ predictors
, ie. with an empty left hand side.
If left unspecified, the model assumes a constant scale and reduces
to the cumulative link model.
An offset may be used. See the
documentation of formula
for other details.
an optional data frame in which to interpret the variables occurring
in formula
.
optional case weights in fitting. Default to 1.
initial values for the parameters. This is in the format
c(beta, theta, sigma)
: see the Values section.
additional arguments to be passed to optim
, most often a
control
argument.
expression saying which subset of the rows of the data should be used in the fit. All observations are included by default.
a function to filter missing data.
a list of contrasts to be used for some or all of the factors appearing as variables in the model formula.
logical for whether the Hessian (the observed information matrix)
should be returned. Use this if you intend to call summary
or
vcov
on the fit.
logical for whether the model matrix should be returned.
logistic or probit or complementary log-log or cauchit (corresponding to a Cauchy latent variable).
A object of class "clls"
. This has components
the coefficients of the location
(beta
), the intercepts (theta
) and the scale
(sigma
).
the parameter estimates of the location part.
the intercepts/thresholds for the class boundaries.
the parameter estimates of the scale part.
parameter estimates of the scale part on the log scale;
ie. tau
= log sigma
.
the residual deviance.
a matrix, with a column for each level of the response with the fitted probabilities.
a vector of same length as response
, with
the fitted probabilities on a case-by-case basis.
the names of the response levels.
a terms
structure describing the location
part.
a terms
structure describing the scale
part.
the number of residual degrees of freedoms, calculated using the weights.
the (effective) number of degrees of freedom used by the model
the (effective) number of observations, calculated using the weights.
the matched call.
the matched method used.
the convergence code returned by optim
.
the number of function and gradient evaluations used by
optim
.
if Hess
is true, the observed Fisher information
matrix.
if model
is true, the model.frame
for
the location part.
if model
is true, the model.frame
for
the scale part.
The implementation is highly inspired by polr
in
package MASS and should give compatible results, if scale
is
left unspecified.
Note that standard errors are appropriate for tau
=
log sigma
and not for sigma
, because the profile
likelihood is usually more symmetric for tau
than for
sigma
. Therefore vcov
will give the
variance-covariance matrix of the parameters with tau
rather
than sigma
and summary.clls
will report standard errors
for log sigma
. Notice also that a relevant test for
sigma
is \(H_0: sigma = 1\), so the relevant test for log
sigma
is \(H_0: log(sigma) = 0\). This is reflected in the z
value for sigma
returned by summary.clls
.
There are methods for the standard model-fitting functions, including
summary
, vcov
,
anova
, and an
extractAIC
method.
Agresti, A. (2002) Categorical Data. Second edition. Wiley.
Christensen, R. H. B., Brockhoff, P. B. and Cleaver, G. (2008) Estimation and Inference in the A-Not A test with Sureness. Manuscript for Food Quality and Preference.
Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth edition. Springer.
# NOT RUN {
options(contrasts = c("contr.treatment", "contr.poly"))
## Extend example from polr in package MASS:
## Fit model from polr example:
data(housing, package = "MASS")
fm1 <- clls(Sat ~ Infl + Type + Cont, weights = Freq, data = housing)
fm1
summary(fm1)
## With probit link:
summary(update(fm1, method = "probit"))
## Allow scale to depend on Cont-variable
summary(fm2 <- update(fm1, scale =~ Cont))
anova(fm1, fm2)
## which seems to improve the fit
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab