9 votos

Simulación de datos para ajustar un modelo de mediación

Estoy interesado en encontrar un procedimiento para simular datos que sean consistentes con un modelo de mediación especificado. Según el marco del modelo general de ecuaciones estructurales lineales para probar los modelos de mediación, esbozado por primera vez por Barron y Kenny (1986) y descritos en otros lugares como Judd, Yzerbyt y Muller (2013) Modelos de mediación de resultados $Y$ , mediador $\newcommand{\med}{\rm med} \med$ y el predictor $X$ y se rigen por las siguientes tres ecuaciones de regresión: \begin{align} Y &= b_{11} + b_{12}X + e_1 \tag{1} \\ \med &= b_{21} + b_{22}X + e_2 \tag{2} \\ Y &= b_{31} + b_{32}X + b_{32} \med + e_3 \tag{3} \end{align} El efecto indirecto o de mediación de $X$ en $Y$ a través de $\med$ puede definirse como $b_{22}b_{32}$ o, de forma equivalente, como $b_{12}-b_{32}$ . En el antiguo marco de las pruebas de mediación, la mediación se establecía mediante pruebas $b_{12}$ en la ecuación 1, $b_{22}$ en la ecuación 2, y $b_{32}$ en la ecuación 3.

Hasta ahora, he intentado simular valores de $\med$ y $Y$ que son consistentes con los valores de los distintos coeficientes de regresión utilizando rnorm en R como el siguiente código:

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 la generación secuencial de $\med$ y $Y$ utilizando las ecuaciones 2 y 3 no es suficiente, ya que no me queda ninguna relación entre $X$ y $Y$ en la ecuación de regresión 1 (que modela una relación bivariada simple entre $X$ y $Y$ ) utilizando este enfoque. Esto es importante porque una definición del efecto indirecto (es decir, de mediación) es $b_{12}-b_{32}$ como he descrito anteriormente.

Puede alguien ayudarme a encontrar un procedimiento en R para generar variables $X$ , $\med$ y $Y$ que satisfagan las restricciones que he establecido mediante las ecuaciones 1, 2 y 3?

4voto

Sean Hanley Puntos 2428

Esto es bastante sencillo. La razón por la que no tiene relación entre $x$ y $y$ utilizando su enfoque es por el código:

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

Si quieres alguna relación entre $x$ y $y$ incluso cuando ${\rm med}$ se incluye (es decir, se quiere parcial mediación), simplemente se utilizaría un valor distinto de cero para $b_{32}$ en su lugar. Por ejemplo, puede sustituir el código anterior por el siguiente:

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

Así, $b_{32}$ se ha cambiado de $0$ a $3$ . (Por supuesto, algún otro valor específico sería probablemente más relevante, dependiendo de su situación, yo sólo elegí $3$ de la cabeza).


Editar:
Con respecto al margen $x\rightarrow y$ relación no es significativa, eso es sólo una función de poder estadístico . Dado que la fuerza causal de $x$ se transmite por completo a través de ${\rm med}$ en su configuración original, tiene una potencia inferior a la que podría tener en caso contrario. No obstante, el efecto sigue siendo real en cierto sentido. Cuando ejecuté tu código original (después de haber establecido la semilla con 90 como un valor que, de nuevo, acabo de elegir de la 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 

...

Para obtener más potencia, puede aumentar el $N$ que está utilizando, o utilice valores de error más pequeños (es decir, utilice sd= valores inferiores a los predeterminados 1 en el rnorm() llamadas).

0 votos

Gung, gracias por tu respuesta. Supongo que mi pregunta puede ser un poco ambigua. Lo que quiero no es una relación entre x e y en el modelo 3 (que es lo que tú has hecho), sino en el modelo 1 (Y = b11 + b12 * X + e1). He aclarado mi pregunta en este sentido.

0 votos

Gracias por la edición. ¿Es posible especificar directamente el tamaño del efecto poblacional para el coeficiente b12?

0 votos

Su pregunta en este punto sería: ¿cuál es la correlación de la población entre $x$ & $y$ en general. Me pregunto si es mejor plantear esta cuestión como una nueva pregunta, ya que no estoy seguro de ello. En el caso más sencillo, en el que las 3 variables ( $x$ , $med$ , $y$ ) se distribuyen normalmente, y la relación entre $x$ & $y$ est totalmente mediada, entonces $\rho_{x,y} = \rho_{x,med}*\rho_{med,y}$ . Sin embargo, es más complejo si las distribuciones no son normales (por ejemplo, su $x$ es igual a las frecuencias de $-.5$ & $+.5$ ), o con situaciones de mediación más complejas.

0voto

csharpener Puntos 23

Aquí hay un documento sobre cómo modelar la 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))

Sólo tiene que especificar $n$ (el tamaño de la muestra), $a$ , $b$ y $c'$ (efecto directo). La ventaja aquí es que modelarás los coeficientes estandarizados, por lo que conocerás sus tamaños de efecto. También incluyen código para desestandarizar, llevar el bootstrap de Baron & Kenny, Sobel y Bca.

Referencias

Caron, P.-O., & 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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X