Simulando datos para ajustarse a un modelo de mediación


9

Estoy interesado en encontrar un procedimiento para simular datos que sean consistentes con un modelo de mediación específico. De acuerdo con el marco general del modelo de ecuación estructural lineal para probar los modelos de mediación descritos por primera vez por Barron y Kenny (1986) y descritos en otros lugares, como Judd, Yzerbyt y Muller (2013) , modelos de mediación para el resultado Y , mediador , y el predictor y se rigen por las siguientes tres ecuaciones de regresión: X YmetromireX

(1)Y=si11+si12X+mi1(2)metromire=si21+si22X+mi2(3)Y=si31+si32X+si32metromire+mi3
El efecto indirecto o el efecto de mediación de X en Y través de metromire puede definirse como si22si32 o, de manera equivalente, como si12-si32 . Bajo el antiguo marco de pruebas para la mediación, la mediación se estableció probando si12 en la ecuación 1, si22 en la ecuación 2 y si32 en la ecuación 3.

Hasta ahora, he intentado simular valores de metromire e Y que son consistentes con los valores de los diversos coeficientes de regresión que usan rnormin R, como el código a continuación:

x   <- rep(c(-.5, .5), 50)
med <- 4 + .7 * x + rnorm(100, sd = 1) 

# Check the relationship between x and med
mod <- lm(med ~ x)
summary(mod)

y <- 2.5 + 0 * x + .4 * med + rnorm(100, sd = 1)

# Check the relationships between x, med, and y
mod <- lm(y ~ x + med)
summary(mod)

# Check the relationship between x and y -- not present
mod <- lm(y ~ x)
summary(mod)

Sin embargo, parece que generar secuencialmente e usando las ecuaciones 2 y 3 no es suficiente, ya que no me queda ninguna relación entre e en la ecuación de regresión 1 (que modela una relación bivariada simple entre ymedYXYXY ) usando este enfoque . Esto es importante porque una definición del efecto indirecto (es decir, mediación) es , como describí anteriormente.b12b32

¿Alguien puede ayudarme a encontrar un procedimiento en R para generar las variables , em e d YXmedY que satisfagan las restricciones que establezco usando las ecuaciones 1, 2 y 3?

Respuestas:


4

Esto es bastante sencillo. La razón por la que no tiene ninguna relación entre X e y usando su enfoque es debido al código:

y <- 2.5 + 0 * x + .4 * med + rnorm(100, sd = 1)

Si quieres algo de relación entre X e y aun cuando metromire está incluido (esto es, que desea parcial mediación), sólo tendría que utilizar un valor distinto de cero para si32 en su lugar. Por ejemplo, podría sustituir el siguiente código por el anterior:

y <- 2.5 + 3 * x + .4 * med + rnorm(100, sd = 1)

Por lo tanto, si32 ha cambiado de 0 0 a 3 . (Por supuesto, algún otro valor específico probablemente sería más relevante, dependiendo de su situación, solo elegí 3 de la parte superior de mi cabeza).


Editar:
con respecto a que la relación marginal Xy no es significativa, eso es solo una función del poder estadístico . Dado que la fuerza causal de X se pasa completamente a través de metromire en su configuración original, tiene una potencia menor de la que podría tener de otra manera. No obstante, el efecto sigue siendo real en algún sentido. Cuando ejecuté su código original (después de haber configurado la semilla usando 90como un valor que nuevamente elegí en la parte superior de mi cabeza), obtuve un efecto significativo:

set.seed(90)
x <- rep(c(-.5, .5), 50)
med <- 4 + .7 * x + rnorm(100, sd = 1) 

# Check the relationship between x and med
mod <- lm(med ~ x)
summary(mod)

y <- 2.5 + 0 * x + .4 * med + rnorm(100, sd = 1)

# Check the relationships between x, med, and y
mod <- lm(y ~ x + med)
summary(mod)

# Check the relationship between x and y -- not present
mod <- lm(y ~ x)
summary(mod)

...
Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   3.8491     0.1151  33.431   <2e-16 ***
x             0.5315     0.2303   2.308   0.0231 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

...

nortesd=1rnorm()


Gung, gracias por tu respuesta. Supongo que mi pregunta podría ser un poco ambigua. Lo que quiero no es una relación entre xey en el modelo 3 (que es lo que has hecho), sino en el modelo 1 (Y = b11 + b12 * X + e1). He aclarado mi pregunta a este efecto.
Patrick S. Forscher

Gracias por la edición ¿Es posible especificar directamente el tamaño del efecto de población para el coeficiente b12?
Patrick S. Forscher

XyXmetromireyXyρX,y=ρX,metromireρmetromire,yX-.5+.5

0

Aquí hay un documento sobre cómo modelar una mediación simple en Caron & Valois (2018) : el código R es

  x <- rnorm(n)
  em <- sqrt(1-a^2)
  m <- a*x + em*rnorm(n)
  ey2 <- sqrt(ey)
  y <- cp*x + b*m + ey2*rnorm(n)
  data <- as.data.frame(cbind(x, m, y))

norteunasiC

Referencias

Caron, P.-O. y Valois, P. (2018). Una descripción computacional del análisis de mediación simple. Los métodos cuantitativos para la psicología, 14, 147-158. doi: 10.20982 / tqmp.14.2.p147

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.