Learn R Programming

sjPlot (version 2.1.0)

sjt.lmer: Summary of linear mixed effects models as HTML table

Description

Summarizes (multiple) fitted linear mixed effects models (estimates, std. beta values etc.) as HTML table, or saves them as file. The fitted models may have different predictors, e.g. when comparing different stepwise fitted models.

Usage

sjt.lmer(..., pred.labels = NULL, depvar.labels = NULL, remove.estimates = NULL, group.pred = FALSE, p.numeric = TRUE, emph.p = TRUE, p.zero = FALSE, p.kr = TRUE, separate.ci.col = TRUE, newline.ci = TRUE, show.est = TRUE, show.std = NULL, show.ci = TRUE, show.se = FALSE, show.header = FALSE, show.col.header = TRUE, show.r2 = TRUE, show.icc = TRUE, show.re.var = TRUE, show.fstat = FALSE, show.aic = FALSE, show.aicc = FALSE, show.dev = FALSE, string.pred = "Predictors", string.dv = "Dependent Variables", string.interc = "(Intercept)", string.obs = "Observations", string.est = "B", string.std = "std. Beta", string.ci = "CI", string.se = "std. Error", string.p = "p", ci.hyphen = " – ", minus.sign = "-", digits.est = 2, digits.std = 2, digits.p = 3, digits.ci = 2, digits.se = 2, digits.summary = 3, cell.spacing = 0.2, cell.gpr.indent = 0.6, sep.column = TRUE, CSS = NULL, encoding = NULL, file = NULL, use.viewer = TRUE, no.output = FALSE, remove.spaces = TRUE)

Arguments

...
one or more fitted linear (mixed) models.
pred.labels
character vector with labels of predictor variables. If not NULL, pred.labels will be used in the first table column with the predictors' names. If NULL, variable labels are set based on label attributes (see get_label). If pred.labels = "", column names (vector names) are used as predictor labels. See 'Examples'.
depvar.labels
character vector with labels of dependent variables of all fitted models. See 'Examples'.
remove.estimates
numeric vector with indices (order equals to row index of coef(fit)) or character vector with coefficient names that indicate which estimates should be removed from the table output. The first estimate is the intercept, followed by the model predictors. The intercept cannot be removed from the table output! remove.estimates = c(2:4) would remove the 2nd to the 4th estimate (1st to 3rd predictor after intercept) from the output. remove.estimates = "est_name" would remove the estimate est_name. Default is NULL, i.e. all estimates are printed.
group.pred
logical, if TRUE (default), automatically groups table rows with factor levels of same factor, i.e. predictors of type factor will be grouped, if the factor has more than two levels. Grouping means that a separate headline row is inserted to the table just before the predictor values.
p.numeric
logical, if TRUE, the p-values are printed as numbers. If FALSE (default), asterisks are used.
emph.p
logical, if TRUE (default), significant p-values are shown bold faced.
p.zero
logical, if TRUE, p-values have a leading 0 before the period (e.g. 0.002), else p-values start with a period and without a zero (e.g. .002).
p.kr
logical, if TRUE, p-value estimation is based on conditional F-tests with Kenward-Roger approximation for the df. Caution: Computation may take very long time for large samples!
separate.ci.col
if TRUE, the CI values are shown in a separate table column. Default is FALSE.
newline.ci
logical, if TRUE and separate.ci.col = FALSE, inserts a line break between estimate and CI values. If FALSE, CI values are printed in the same line as estimate values.
show.est
logical, if TRUE (default), the estimates are printed.
show.std
indicates whether standardized beta-coefficients should also printed, and if yes, which type of standardization is done. See 'Details'.
show.ci
logical, if TRUE (default), the confidence intervall is also printed to the table. Use FALSE to omit the CI in the table.
show.se
logical, if TRUE, the standard errors are also printed. Default is FALSE.
show.header
logical, if TRUE, the header strings string.pred and string.dv are shown. By default, they're hidden.
show.col.header
logical, if TRUE (default), the table data columns have a headline with abbreviations for estimates, std. beta-values, confidence interval and p-values.
show.r2
logical, if TRUE (default), the R2 and adjusted R2 values for each model are printed in the model summary. For linear mixed models, the R2 and Omega-squared values are printed (see r2 for details).
show.icc
logical, if TRUE, the intra-class-correlation for each model is printed in the model summary. Only applies to mixed models.
show.re.var
logical, if TRUE, the variance parameters for the random effects for each model are printed in the model summary. Only applies to mixed models. For details output, see 'Note' in icc.
show.fstat
If TRUE, the F-statistics for each model is printed in the model summary. Default is FALSE. This argument does not apply to sjt.lmer.
show.aic
logical, if TRUE, the AIC value for each model is printed in the model summary. Default is FALSE.
show.aicc
logical, if TRUE, the second-order AIC value for each model is printed in the model summary. Default is FALSE.
show.dev
logical, if TRUE, the deviance for each model is printed in the model summary.
string.pred
character vector,used as headline for the predictor column. Default is "Predictors".
string.dv
character vector, used as headline for the dependent variable columns. Default is "Dependent Variables".
string.interc
character vector, used as headline for the Intercept row. Default is "Intercept".
string.obs
character vector, used in the summary row for the count of observation (cases). Default is "Observations".
string.est
character vector, used for the column heading of estimates.
string.std
character vector, used for the column heading of standardized beta coefficients. Default is "std. Beta".
string.ci
character vector, used for the column heading of confidence interval values. Default is "CI".
string.se
character vector, used for the column heading of standard error values. Default is "std. Error".
string.p
character vector, used for the column heading of p values. Default is "p".
ci.hyphen
character vector, indicating the hyphen for confidence interval range. May be an HTML entity. See 'Examples'.
minus.sign
string, indicating the minus sign for negative numbers. May be an HTML entity. See 'Examples'.
digits.est
amount of decimals for estimates
digits.std
amount of decimals for standardized beta
digits.p
amount of decimals for p-values
digits.ci
amount of decimals for confidence intervals
digits.se
amount of decimals for standard error
digits.summary
amount of decimals for values in model summary
cell.spacing
numeric, inner padding of table cells. By default, this value is 0.2 (unit is cm), which is suitable for viewing the table. Decrease this value (0.05 to 0.1) if you want to import the table into Office documents. This is a convenient argument for the CSS argument for changing cell spacing, which would be: CSS = list(css.thead = "padding:0.2cm;", css.tdata = "padding:0.2cm;").
cell.gpr.indent
indent for table rows with grouped factor predictors. Only applies if group.pred = TRUE.
sep.column
logical, if TRUE, an empty table column is added after each model column, to add margins between model columns. By default, this column will be added to the output; however, when copying tables to office applications, it might be helpful not to add this separator column when modifying the table layout.
CSS
list-object with user-defined style-sheet-definitions, according to the official CSS syntax. See 'Details'.
encoding
string, indicating the charset encoding used for variable and value labels. Default is NULL, so encoding will be auto-detected depending on your platform (e.g., "UTF-8" for Unix and "Windows-1252" for Windows OS). Change encoding if specific chars are not properly displayed (e.g. German umlauts).
file
destination file, if the output should be saved as file. If NULL (default), the output will be saved as temporary file and openend either in the IDE's viewer pane or the default web browser.
use.viewer
If TRUE, the HTML table is shown in the IDE's viewer pane. If FALSE or no viewer available, the HTML table is opened in a web browser.
no.output
logical, if TRUE, the html-output is neither opened in a browser nor shown in the viewer pane and not even saved to file. This option is useful when the html output should be used in knitr documents. The html output can be accessed via the return value.
remove.spaces
logical, if TRUE, leading spaces are removed from all lines in the final string that contains the html-data. Use this, if you want to remove parantheses for html-tags. The html-source may look less pretty, but it may help when exporting html-tables to office tools.

Value

Invisibly returns
  • the web page style sheet (page.style),
  • the web page content (page.content),
  • the complete html-output (output.complete) and
  • the html-table with inline-css for use with knitr (knitr)
for further use.

Details

Concerning the show.std argument, show.std = "std" will print normal standardized estimates. For show.std = "std2", however, standardization of estimates follows Gelman's (2008) suggestion, rescaling the estimates by dividing them by two standard deviations instead of just one. Resulting coefficients are then directly comparable for untransformed binary predictors. This type of standardization uses the standardize-function from the arm-package. For backward compatibility reasons, show.std also may be a logical value; if TRUE, normal standardized estimates are printed (same effect as show.std = "std"). Use show.std = NULL (default) or show.std = FALSE, if standardized estimats should not be printed. Computation of p-values (if necessary and if p.kr = TRUE) are based on conditional F-tests with Kenward-Roger approximation for the df, using the pbkrtest-package. If pbkrtest is not available or p.kr = FALSE, computation of p-values is based on normal-distribution assumption, treating the t-statistics as Wald z-statistics. See 'Details' in merMod_p. The confidence intervals stem from broom's tidy-function. For linear mixed models, the computation method is "Wald" (lme4::confint.merMod(fit, method = "Wald")). Furthermore, see 'Details' in sjt.frq.

See Also

sjPlot manual: sjt.lmer and sjt.lm for further examples.

Examples

Run this code
## Not run: 
# library(lme4)
# library(sjmisc)
# data(efc)
# 
# # prepare group variable
# efc$grp = as.factor(efc$e15relat)
# levels(x = efc$grp) <- get_labels(efc$e15relat)
# efc$care.level <- as.factor(sjmisc::rec(efc$n4pstu, "0=0;1=1;2=2;3:4=4"))
# levels(x = efc$care.level) <- c("none", "I", "II", "III")
# 
# # data frame for fitted model
# mydf <- data.frame(neg_c_7 = efc$neg_c_7,
#                    sex = efc$c161sex,
#                    c12hour = efc$c12hour,
#                    barthel = efc$barthtot,
#                    education = to_factor(efc$c172code),
#                    grp = efc$grp,
#                    carelevel = efc$care.level)
#                    
# # fit three sample models
# fit1 <- lmer(neg_c_7 ~ sex + c12hour + barthel + (1|grp), data = mydf)
# fit2 <- lmer(neg_c_7 ~ sex + c12hour + education + barthel + (1|grp), data = mydf)
# fit3 <- lmer(neg_c_7 ~ sex + c12hour + education + barthel + 
#               (1|grp) + (1|carelevel), data = mydf)
# 
# # print summary table... automatic grouping does not work here,
# # barthel-index is printed as category of education (values are
# # correct, however, indentation is wrong)
# sjt.lmer(fit1, fit2, ci.hyphen = " to ", group.pred = TRUE)
# 
# # either change order of models
# sjt.lmer(fit2, fit1, group.pred = TRUE)
# # or turn off automatic grouping of categorical predictors
# sjt.lmer(fit1, fit2, group.pred = FALSE)
# 
# # print table, using vector names as labels
# sjt.lmer(fit1, fit2, fit3, pred.labels = "")
# 
# # show other statistics
# sjt.lmer(fit1, fit2, show.aic = TRUE, show.ci = FALSE, 
#          show.se = TRUE, p.numeric = FALSE)
#            
# sjt.lmer(fit1, fit2, fit3, show.aic = TRUE, 
#          separate.ci.col = FALSE, newline.ci = FALSE)
# 
# # user defined predictor labels
# sjt.lmer(fit1, fit2, fit3, pred.labels = c("Elder's gender (female)",
#          "Hours of care per week", "Barthel Index", "Educational level (mid)",
#          "Educational level (high)"))## End(Not run)
                  

Run the code above in your browser using DataLab