FLXMRlmer {flexmix} | R Documentation

## FlexMix Interface to Linear Mixed Models

### Description

This is a driver which allows fitting of mixtures of linear models with random effects.

### Usage

    FLXMRlmer(formula = . ~ ., random, weighted = FALSE,
              control = list(), eps = .Machine$double.eps)
    FLXMRlmm(formula = . ~ ., random, lm.fit = c("lm.wfit",
              "smooth.spline"), varFix = c(Random = FALSE, Residual =
              FALSE), ...)

### Arguments

`formula` | A formula which is interpreted relative to the formula specified in the call to `flexmix` using `update.formula`. Default is to use the original `flexmix` model formula.
`random` | A formula for specifying the random effects.
`weighted` | A logical indicating if the model can estimate weighted ML.
`control` | A list of control parameters. See `lmer` for details.
`eps` | Observations with a component-specific posterior smaller than `eps` are omitted in the M-step for this component.
`lm.fit` | A character string indicating if the coefficients should be fitted using either a linear model or the function `smooth.spline`
`varFix` | Named logical vector of length 2 indicating if the variance of the random effects and the residuals are fixed over the components.
`...` | Additional arguments to be passed to `smooth.spline`.

### Details

`FLXMRlmm` allows only one random effect. `FLXMRlmer` allows an arbitrary number of random effects if `weighted=FALSE`; a certain structure of the model matrix of the random effects has to be given for weighted ML estimation, i.e. where `weighted=TRUE`.

### Value

Returns an object of class `FLXMRlmer` and `FLXMRlmm`.

### warning

For `FLXMRlmer` the weighted ML estimation is only correct if the covariate matrix of the random effects is the same for each observation. By default non-weighted ML estimation is made. If this is changed the condition on the covariate matrix of the random effects is checked.

### Author(s)

Bettina Gruen

### Examples

    id <- rep(1:100, each = 10)
    x <- rep(1:10, 100)
    sample <- data.frame(y = rep(rnorm(unique(id)/2, 0, c(5, 2)), each = 10) +
                             rnorm(length(id), rep(c(3, 8), each = 10)) +
                             rep(c(0, 3), each = 10) * x,
                         x = x,
                         id = factor(id))
    fitted <- flexmix(.~.|id, k = 2, model = FLXMRlmer(y ~ x, random = ~ 1),
                      data = sample)
    parameters(fitted)
    xyplot(y ~ x | clusters(fitted), groups = id, data = sample, type = "l")

[Package flexmix version 2.2-4 Index]