clm  R Documentation 
Fits cumulative link models (CLMs) such as the propotional odds model. The model allows for various link functions and structured thresholds that restricts the thresholds or cutpoints to be e.g., equidistant or symmetrically arranged around the central threshold(s). Nominal effects (partial proportional odds with the logit link) are also allowed. A modified Newton algorithm is used to optimize the likelihood function.
clm(formula, scale, nominal, data, weights, start, subset, doFit = TRUE, na.action, contrasts, model = TRUE, control=list(), link = c("logit", "probit", "cloglog", "loglog", "cauchit", "ArandaOrdaz", "loggamma"), threshold = c("flexible", "symmetric", "symmetric2", "equidistant"), ...)
formula 
a formula expression as for regression models, of the form

scale 
an optional formula expression, of the form

nominal 
an optional formula of the form 
data 
an optional data frame in which to interpret the variables occurring in the formulas. 
weights 
optional case weights in fitting. Defaults to 1. Negative weights are not allowed. 
start 
initial values for the parameters in the format

subset 
expression saying which subset of the rows of the data should be used in the fit. All observations are included by default. 
doFit 
logical for whether the model should be fitted or the model environment should be returned. 
na.action 
a function to filter missing data. Applies to terms in all three formulae. 
contrasts 
a list of contrasts to be used for some or all of the factors appearing as variables in the model formula. 
model 
logical for whether the model frame should be part of the returned object. 
control 
a list of control parameters passed on to

link 
link function, i.e., the type of locationscale distribution
assumed for the latent distribution. The default 
threshold 
specifies a potential structure for the thresholds
(cutpoints). 
... 
additional arguments are passed on to 
This is a new (as of August 2011) improved implementation of CLMs. The
old implementation is available in clm2
, but will
probably be removed at some point.
There are methods for the standard modelfitting functions, including
summary
,
anova
,
model.frame
,
model.matrix
,
drop1
,
dropterm
,
step
,
stepAIC
,
extractAIC
,
AIC
,
coef
,
nobs
,
profile
,
confint
,
vcov
and
slice
.
If doFit = FALSE
the result is an environment
representing the model ready to be optimized.
If doFit = TRUE
the result is an
object of class "clm"
with the components listed below.
Note that some components are only present if scale
and
nominal
are used.
aliased 
list of length 3 or less with components 
alpha 
a vector of threshold parameters. 
alpha.mat 
(where relevant) a table ( 
beta 
(where relevant) a vector of regression parameters. 
call 
the mathed call. 
coefficients 
a vector of coefficients of the form

cond.H 
condition number of the Hessian matrix at the optimum (i.e. the ratio of the largest to the smallest eigenvalue). 
contrasts 
(where relevant) the contrasts used for the

control 
list of control parameters as generated by 
convergence 
convergence code where 0 indicates successful convergence and negative values indicate convergence failure; 1 indicates successful convergence to a nonunique optimum. 
edf 
the estimated degrees of freedom, i.e., the number of parameters in the model fit. 
fitted.values 
the fitted probabilities. 
gradient 
a vector of gradients for the coefficients at the estimated optimum. 
Hessian 
the Hessian matrix for the parameters at the estimated optimum. 
info 
a table of basic model information for printing. 
link 
character, the link function used. 
logLik 
the value of the loglikelihood at the estimated optimum. 
maxGradient 
the maximum absolute gradient, i.e.,

model 
if requested (the default), the

n 
the number of observations counted as 
na.action 
(where relevant) information returned by

nobs 
the number of observations counted as 
nom.contrasts 
(where relevant) the contrasts used for the

nom.terms 
(where relevant) the terms object for the

nom.xlevels 
(where relevant) a record of the levels of the
factors used in fitting for the 
start 
the parameter values at which the optimization has
started. An attribute 
S.contrasts 
(where relevant) the contrasts used for the

S.terms 
(where relevant) the terms object for the 
S.xlevels 
(where relevant) a record of the levels of the
factors used in fitting for the 
terms 
the terms object for the 
Theta 
(where relevant) a table ( 
threshold 
character, the threshold structure used. 
tJac 
the transpose of the Jacobian for the threshold structure. 
xlevels 
(where relevant) a record of the levels of the factors
used in fitting for the 
y.levels 
the levels of the response variable after removing levels for which all weights are zero. 
zeta 
(where relevant) a vector of scale regression parameters. 
Rune Haubo B Christensen
fm1 < clm(rating ~ temp * contact, data = wine) fm1 ## print method summary(fm1) fm2 < update(fm1, ~.temp:contact) anova(fm1, fm2) drop1(fm1, test = "Chi") add1(fm1, ~.+judge, test = "Chi") fm2 < step(fm1) summary(fm2) coef(fm1) vcov(fm1) AIC(fm1) extractAIC(fm1) logLik(fm1) fitted(fm1) confint(fm1) ## type = "profile" confint(fm1, type = "Wald") pr1 < profile(fm1) confint(pr1) ## plotting the profiles: par(mfrow = c(2, 2)) plot(pr1, root = TRUE) ## check for linearity par(mfrow = c(2, 2)) plot(pr1) par(mfrow = c(2, 2)) plot(pr1, approx = TRUE) par(mfrow = c(2, 2)) plot(pr1, Log = TRUE) par(mfrow = c(2, 2)) plot(pr1, Log = TRUE, relative = FALSE) ## other link functions: fm4.lgt < update(fm1, link = "logit") ## default fm4.prt < update(fm1, link = "probit") fm4.ll < update(fm1, link = "loglog") fm4.cll < update(fm1, link = "cloglog") fm4.cct < update(fm1, link = "cauchit") anova(fm4.lgt, fm4.prt, fm4.ll, fm4.cll, fm4.cct) ## structured thresholds: fm5 < update(fm1, threshold = "symmetric") fm6 < update(fm1, threshold = "equidistant") anova(fm1, fm5, fm6) ## the slice methods: slice.fm1 < slice(fm1) par(mfrow = c(3, 3)) plot(slice.fm1) ## see more at '?slice.clm' ## Another example: fm.soup < clm(SURENESS ~ PRODID, data = soup) summary(fm.soup) if(require(MASS)) { ## dropterm, addterm, stepAIC, housing fm1 < clm(rating ~ temp * contact, data = wine) dropterm(fm1, test = "Chi") addterm(fm1, ~.+judge, test = "Chi") fm3 < stepAIC(fm1) summary(fm3) ## Example from MASS::polr: fm1 < clm(Sat ~ Infl + Type + Cont, weights = Freq, data = housing) summary(fm1) }
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.