Learn R Programming

scan (version 0.64.0)

between_smd: Between-Case Standardized Mean Difference

Description

Calculates a standardized mean difference from a multilevel model as described in Pustejovsky et al. (2014)

Usage

between_smd(data, include_residuals = TRUE, model = "frequentist", ...)

# S3 method for sc_bcsmd print(x, digits = 2, ...)

Value

An object of class sc_bcsmd.

Arguments

data

Either an scdf or an object returned from the hplm() or bplm() function.

include_residuals

Logical. See details.

model

Either "ml" or "bayesian".

...

Further arguments passed to the hplm() or bplm()function.

x

An object returned by baseline_smd().

digits

The minimum number of significant digits to be use. If set to "auto" (default), values are predefined.

Functions

  • print(sc_bcsmd): Print results

Details

The BC-SMD is calculate as BC-SMD = Phase difference / sqrt(residual + random_intercept). This is most closely related to Cohen's d. If you want to have the most exact estimation based on the between case variance, you have to exclude the residual variance by setting the argument include_residuals = FALSE you get BC-SMD = Phase difference / sqrt(random_intercept). The 'base' model only includes the phase level as a predictor like originally proposed by Hedges et al. Whereas the 'Full plm' model includes the trend and the phase slope as additional predictors.

References

Pustejovsky, J. E., Hedges, L. V., & Shadish, W. R. (2014). Design-Comparable Effect Sizes in Multiple Baseline Designs: A General Modeling Framework. Journal of Educational and Behavioral Statistics, 39(5), 368–393. https://doi.org/10.3102/1076998614547577

Examples

Run this code
## Create a example scdf:
des <- design(
  n = 150,
  phase_design = list(A1 = 10, B1 = 10, A2 = 10, B2 = 10, C = 10),
  level = list(B1 = 1, A2 = 0, B2 = 1, C = 1),
  rtt = 0.7,
  random_start_value = TRUE
)
study <- random_scdf(des)

## Standard BC-SMD return:
between_smd(study)

## Specify the model and provide an hplm object:
model <- hplm(study, contrast_level = "preceding", slope = FALSE,  trend = FALSE)
between_smd(model)

## excluding the residuals gives a more accruate estimation:
between_smd(model, include_residuals = FALSE)

Run the code above in your browser using DataLab