nlme_tidiers: Tidying methods for mixed effects models

nlme_tidiersR Documentation

Tidying methods for mixed effects models

Description

These methods tidy the coefficients of mixed effects models of the lme class from functions of the nlme package.

Usage

## S3 method for class 'lme'
tidy(
  x,
  effects = c("var_model", "ran_pars", "fixed"),
  scales = NULL,
  conf.int = FALSE,
  conf.level = 0.95,
  ...
)

## S3 method for class 'lme'
augment(x, data = x$data, newdata, ...)

## S3 method for class 'lme'
glance(x, ...)

## S3 method for class 'gls'
tidy(x, conf.int = FALSE, conf.level = 0.95, ...)

## S3 method for class 'gls'
augment(x, data = nlme::getData(x), newdata, ...)

Arguments

x

An object of class lme, such as those from lme or nlme

effects

One or more of "var_model", "ran_pars", "fixed", "ran_vals", and/or "ran_coefs".

scales

scales on which to report the variables: for random effects, the choices are ‘"sdcor"’ (standard deviations and correlations: the default if scales is NULL) or ‘"vcov"’ (variances and covariances). NA means no transformation, appropriate e.g. for fixed effects.

conf.int

whether to include a confidence interval

conf.level

confidence level for CI

...

extra arguments (not used)

data

original data this was fitted on; if not given this will attempt to be reconstructed

newdata

new data to be used for prediction; optional

Details

When the modeling was performed with na.action = "na.omit" (as is the typical default), rows with NA in the initial data are omitted entirely from the augmented data frame. When the modeling was performed with na.action = "na.exclude", one should provide the original data as a second argument, at which point the augmented data will contain those rows (typically with NAs in place of the new columns). If the original data is not provided to augment and na.action = "na.exclude", a warning is raised and the incomplete rows are dropped.

Value

All tidying methods return a data.frame without rownames. The structure depends on the method chosen.

tidy returns one row for each estimated effect, either random or fixed depending on the effects parameter. If effects = "ran_vals" (or "ran_pars"), it contains the columns

group

the group within which the random effect is being estimated

level

level within group

term

term being estimated

estimate

estimated coefficient

estimated

This column is only included if some parameters are fixed. TRUE if the residual error is estimated and FALSE if the residual error is fixed.

If effects="fixed", tidy returns the columns

term

fixed term being estimated

estimate

estimate of fixed effect

std.error

standard error

statistic

t-statistic

p.value

P-value computed from t-statistic

If effects="var_model" (the weights argument to the model), tidy returns the columns defined in the help for tidy.varFunc.

augment returns one row for each original observation, with columns (each prepended by a .) added. Included are the columns

.fitted

predicted values

.resid

residuals

.fixed

predicted values with no random effects

glance returns one row with the columns

sigma

the square root of the estimated residual variance

logLik

the data's log-likelihood under the model

AIC

the Akaike Information Criterion

BIC

the Bayesian Information Criterion

deviance

returned as NA. To quote Brian Ripley on R-help https://stat.ethz.ch/pipermail/r-help/2006-May/104744.html, "McCullagh & Nelder (1989) would be the authorative [sic] reference, but the 1982 first edition manages to use 'deviance' in three separate senses on one page."

See Also

na.action

Examples


if (require("nlme") && require("lme4")) {
    data("sleepstudy", package="lme4")
    ## original model
    ## Not run: 
         lmm1 <- lme(Reaction ~ Days, random=~ Days|Subject, sleepstudy)
    
## End(Not run)
    ## load stored object
    load(system.file("extdata","nlme_example.rda", package="broom.mixed"))
    tidy(lmm1)
    tidy(lmm1, effects = "fixed")
    tidy(lmm1, conf.int = TRUE)
    tidy(lmm1, conf.int = TRUE, conf.level = 0.8)
    tidy(lmm1, effects = "ran_pars")
    tidy(lmm1, effects = "ran_vals")
    tidy(lmm1, effects = "ran_coefs")
    head(augment(lmm1, sleepstudy))
    glance(lmm1)

    startvec <- c(Asym = 200, xmid = 725, scal = 350)
    nm1 <- nlme(circumference ~ SSlogis(age, Asym, xmid, scal),
                  data = Orange,
                  fixed = Asym + xmid + scal ~1,
                  random = Asym ~1,
                  start = startvec)
    tidy(nm1)
    tidy(nm1, effects = "fixed")
    head(augment(nm1, Orange))
    glance(nm1)

    gls1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
                         correlation = corAR1(form = ~ 1 | Mare))
    tidy(gls1)
    glance(gls1)
    head(augment(gls1))
}


broom.mixed documentation built on Oct. 16, 2024, 1:06 a.m.