p_mediation: p-value from three-variable mediation analysis simulation

View source: R/p_mediation.R

p_mediationR Documentation

p-value from three-variable mediation analysis simulation

Description

Simple 3-variable mediation analysis simulation to test the hypothesis that X -> Y is mediated by the relationship X -> M -> Y. Currently, M and Y are assumed to be continuous variables with Gaussian errors, while X may be continuous or dichotomous.

Usage

p_mediation(
  n,
  a,
  b,
  cprime,
  dichotomous.X = FALSE,
  two.tailed = TRUE,
  method = "wald",
  sd.X = 1,
  sd.Y = 1,
  sd.M = 1,
  gen_fun = gen_mediation,
  ...
)

gen_mediation(
  n,
  a,
  b,
  cprime,
  dichotomous.X = FALSE,
  sd.X = 1,
  sd.Y = 1,
  sd.M = 1,
  ...
)

Arguments

n

total sample size unless dichotomous.X = TRUE, in which the value represents the size per group

a

regression coefficient for the path X -> M

b

regression coefficient for the path M -> Y

cprime

partial regression coefficient for the path X -> Y

dichotomous.X

logical; should the X variable be generated as though it were dichotomous? If TRUE then n represents the sample size per group

two.tailed

logical; should a two-tailed or one-tailed test be used?

method

type of inferential method to use. Default uses the Wald (a.k.a., Sobel) test

sd.X

standard deviation for X

sd.Y

standard deviation for Y

sd.M

standard deviation for M

gen_fun

function used to generate the required two-sample data. Object returned must be a data.frame with the columns "DV" and "group". Default uses gen_mediation to generate conditionally Gaussian distributed samples. User defined version of this function must include the argument ...

...

additional arguments to be passed to gen_fun. Not used unless a customized gen_fun is defined

Value

a single p-value

Author(s)

Phil Chalmers rphilip.chalmers@gmail.com

See Also

gen_mediation

Examples


# joint test H0: a*b = 0
p_mediation(50, a=sqrt(.35), b=sqrt(.35), cprime=.39)
p_mediation(50, a=sqrt(.35), b=sqrt(.35), cprime=.39, dichotomous.X=TRUE)



  # power to detect mediation
  p_mediation(n=50, a=sqrt(.35), b=sqrt(.35), cprime=.39) |>
    Spower(parallel=TRUE, replications=1000)

  # sample size estimate for .95 power
  p_mediation(n=NA, a=sqrt(.35), b=sqrt(.35), cprime=.39) |>
    Spower(power=.95, interval=c(50, 200), parallel=TRUE)




Spower documentation built on April 4, 2025, 5:11 a.m.