Most Likely Transformations

Description

Likelihood-based model estimation in conditional transformation models

Usage

1
2
mlt(model, data, weights = NULL, offset = NULL, fixed = NULL, theta = NULL, 
    pstart = NULL, scale = FALSE, dofit = TRUE, optim = mltoptim(), ...)

Arguments

model

a conditional transformation model as specified by ctm

data

a data.frame containing all variables specified in model

weights

an optional vector of weights

offset

an optional vector of offset values

fixed

a named vector of fixed regression coefficients; the names need to correspond to column names of the design matrix

theta

optional starting values for the model parameters

pstart

optional starting values for the distribution function evaluated at the data

scale

a logical indicating if (internal) scaling shall be applied to the model coefficients

dofit

a logical indicating if the model shall be fitted to the data (TRUE) or not

optim

a list of functions implementing suitable optimisers

...

additional arguments, currently ignored

Details

This function fits a conditional transformation model by searching for the most likely transformation as described in Hothorn et al. (2016).

Value

An object of class mlt with corresponding methods.

References

Torsten Hothorn, Lisa Moest, Peter Buehlmann (2016), Most Likely Transformations, http://arxiv.org/abs/1508.06749

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
 
  ### set-up conditional transformation model for conditional
  ### distribution of dist given speed
  dist <- numeric_var("dist", support = c(2.0, 100), bounds = c(0, Inf))
  speed <- numeric_var("speed", support = c(5.0, 23), bounds = c(0, Inf)) 
  ctmm <- ctm(response = Bernstein_basis(dist, order = 4, ui = "increasing"),
              interacting = Bernstein_basis(speed, order = 3))

  ### fit model
  (mltm <- mlt(ctmm, data = cars))

  ### plot data
  plot(cars)
  ### predict quantiles and overlay data with model via a "quantile sheet"
  q <- predict(mltm, newdata = data.frame(speed = 0:24), type = "quantile", 
               p = 2:8 / 10, K = 500)
  tmp <- apply(q, 1, function(x) lines(0:24, x, type = "l"))