Aprender a efectuar un análisis de mediación en R es fundamental para comprender los efectos indirectos en tu investigación. Esta guía completa te muestra cómo realizar un análisis de mediación en R usando el paquete lavaan, con un recorrido paso a paso utilizando un conjunto de datos ficticio de 30 encuestados.
Ya sea que necesites ejecutar un análisis de mediación en R para tu tesis, comprender los resultados para una publicación o construir un modelo de mediación para investigación exploratoria, este tutorial cubre todo. Te mostraremos cómo usar el paquete lavaan, interpretar los coeficientes de ruta (a, b, c) y visualizar los resultados con diagramas profesionales.
En siete pasos sencillos, dominarás los flujos de trabajo de mediación en R usando los paquetes lavaan y semPlot, y aprenderás a realizar un análisis completo desde la importación de datos hasta la interpretación.
Objetivos de Aprendizaje
Al finalizar esta lección, serás capaz de:
-
Comprender el concepto de análisis de mediación y su propósito en la exploración de efectos indirectos.
-
Visualizar un modelo de mediación mediante un diagrama sencillo.
-
Instalar y cargar los paquetes de R necesarios para el análisis de mediación.
-
Importar y explorar un conjunto de datos en R, calculando estadísticas descriptivas y correlaciones entre variables.
-
Especificar un modelo de mediación en R.
-
Estimar y ajustar el modelo de mediación a tu conjunto de datos en R.
-
Interpretar los resultados de un análisis de mediación, incluyendo efectos directos, efectos indirectos y efectos totales.
-
Crear una visualización de los resultados del análisis de mediación en R.
-
Aplicar el proceso de análisis de mediación a tus propias preguntas de investigación y conjuntos de datos.
¿Qué es el Análisis de Mediación?
Antes de empezar con los cálculos, revisemos brevemente qué es el análisis de mediación. Es una técnica estadística que nos ayuda a entender cómo una variable independiente (X) influye en una variable dependiente (Y) a través de una variable mediadora (M).

Figura 1: Diagrama del modelo de mediación básico con las rutas X→M→Y.
El análisis de mediación es particularmente útil para determinar si el efecto de X sobre Y es total, parcial o no está mediado por M.
Nuestro Conjunto de Datos: Una Breve Descripción
En nuestro ejemplo, trabajaremos con un conjunto de datos de 30 encuestados. Supongamos que estos encuestados son empleados y queremos estudiar la relación entre satisfacción laboral (X), desempeño laboral (Y) y motivación laboral (M).
Nuestra hipótesis es que la satisfacción laboral influye en el desempeño laboral indirectamente a través de la motivación laboral. Entonces, vamos a realizar un análisis de mediación para verificar si esto es cierto.
Para visualizar nuestra hipótesis, podemos crear un diagrama sencillo con tres variables: satisfacción laboral (X), motivación laboral (M) y desempeño laboral (Y).

Figura 2: Ejemplo de modelo de mediación: satisfacción laboral → motivación laboral → desempeño laboral.
En este diagrama, la flecha de X a M representa el efecto de la satisfacción laboral sobre la motivación laboral (ruta a). La flecha de M a Y representa el efecto de la motivación laboral sobre el desempeño laboral (ruta b). El efecto indirecto de la satisfacción laboral sobre el desempeño laboral a través de la motivación laboral es el producto de las rutas a y b (a * b).
Cómo Efectuar el Análisis de Mediación en R
Ahora que tenemos una comprensión clara de nuestro conjunto de datos y nuestra hipótesis, entremos a R y comencemos a trabajar con los datos.
Paso 1: Instalar y Cargar los Paquetes
Primero, necesitamos instalar y cargar los paquetes necesarios para realizar el análisis de mediación en R y visualizar los resultados. Si aún no tienes R instalado, consulta nuestra guía sobre cómo instalar R y RStudio.
# Instalar paquetes
install.packages("psych")
install.packages("lavaan")
install.packages("ggplot2")
install.packages("readxl")
install.packages("semPlot")
# Cargar paquetes
library(psych)
library(lavaan)
library(ggplot2)
library(readxl)
library(semPlot)A continuación, una breve descripción de cada paquete:
-
psych: Paquete para realizar análisis psicológicos y psicométricos, como análisis factorial y estadísticas descriptivas.
-
lavaan: Paquete para modelado de ecuaciones estructurales (SEM) con sintaxis intuitiva y una variedad de índices de ajuste.
-
ggplot2: Paquete flexible de visualización de datos basado en la Gramática de los Gráficos para crear visualizaciones complejas y personalizables.
-
readxl: Paquete ligero para importar archivos de Excel (.xls y .xlsx) en data frames de R.
-
semPlot: Herramienta de visualización para crear diagramas de ruta de modelos de ecuaciones estructurales (SEM) con opciones de personalización.
Paso 2: Importar y Explorar el Conjunto de Datos
A continuación, importaremos nuestro conjunto de datos en R y revisaremos las primeras filas para familiarizarnos con los datos. Puedes usar tu propio conjunto de datos o descargar el conjunto de datos de práctica desde la barra lateral (solo con fines educativos). Si necesitas importar datos desde un archivo externo, consulta nuestra guía sobre cómo importar Excel en R.
NOTA: Si tu conjunto de datos es un archivo Excel .xlsx, usa la siguiente sintaxis:
# Importar el conjunto de datos
data <- read_excel("ruta/a/tu/archivo.xlsx")
# Explorar el conjunto de datos
head(data)- Si tu conjunto de datos es un archivo CSV, usa la siguiente sintaxis:
# Importar el conjunto de datos
data <- read.csv("ruta/a/tu/archivo.csv")
# Explorar el conjunto de datos
head(data)Suponiendo que nuestro conjunto de datos contiene tres columnas (job_satisfaction, workplace_motivation y job_performance), el resultado debería verse así:

Figura 3: Vista previa del conjunto de datos mostrando las primeras 6 filas del conjunto de datos para el análisis de mediación en R.
Paso 3: Estadísticas Descriptivas y Correlaciones
Antes de ejecutar el análisis de mediación, calculemos algunas estadísticas descriptivas y correlaciones para nuestras variables.
# Estadísticas descriptivas
summary(data)
# Correlaciones
correlations <- cor(data)
print(correlations)Esto nos dará una visión general de la media, desviación estándar y correlaciones de nuestras variables.

Figura 4: Resultado de estadísticas descriptivas y matriz de correlación en R para las variables de mediación.
Realizar estadísticas descriptivas y análisis de correlación antes del análisis de mediación es importante por varias razones:
-
Comprensión de los datos: Las estadísticas descriptivas proporcionan un resumen de tu conjunto de datos y te ayudan a entender la tendencia central, la dispersión y la forma de la distribución de cada variable. Esta comprensión es crucial antes de profundizar en análisis más complejos como el análisis de mediación, ya que te ayuda a identificar posibles problemas o valores atípicos en los datos.
-
Verificación de supuestos: Muchas técnicas estadísticas, incluyendo el análisis de mediación, se basan en ciertos supuestos sobre los datos. Las estadísticas descriptivas te ayudan a evaluar si estos supuestos se cumplen. Por ejemplo, la normalidad de las variables es frecuentemente un supuesto en el análisis de mediación, y puedes examinarla mediante estadísticas descriptivas como la asimetría y la curtosis.
-
Perspectivas preliminares: El análisis de correlación proporciona una comprensión inicial de las relaciones entre tus variables. Te ayuda a examinar la fuerza y dirección de las asociaciones, lo cual es útil para generar hipótesis o informar el modelo de mediación. Correlaciones fuertes entre la variable independiente (X) y el mediador (M), así como entre el mediador (M) y la variable dependiente (Y), podrían indicar la presencia de efectos de mediación.
-
Evaluación de multicolinealidad: Examinar las correlaciones también te ayuda a detectar multicolinealidad, una situación donde dos o más variables predictivas están altamente correlacionadas. La multicolinealidad puede causar problemas en el análisis de mediación, ya que puede generar estimaciones inestables o errores estándar inflados. Al identificarla temprano, puedes abordarla antes de continuar con el análisis de mediación.
Paso 4: Especificar el Modelo de Mediación
Ahora que comprendemos mejor nuestro conjunto de datos, es momento de especificar el modelo de mediación. Usaremos el paquete lavaan de R para definir el modelo con la siguiente sintaxis:
mediation_model <- '
# Efectos directos
workplace_motivation ~ a*job_satisfaction
job_performance ~ c * job_satisfaction + b*workplace_motivation
# Efecto indirecto (a * b)
indirect := a*b
# Efecto total (c + indirect)
total := c + indirect
'En este modelo, definimos los efectos directos de la satisfacción laboral (X) sobre la motivación laboral (M) y el desempeño laboral (Y). También especificamos el efecto indirecto (a * b) y el efecto total (c + indirect).
NOTA: Si te preguntas por qué no obtienes ningún resultado con el script anterior, es porque este solo especifica el modelo de mediación como una cadena de texto, pero no ejecuta el análisis ni imprime resultados. El análisis de mediación se ejecutará en el siguiente paso.
Paso 5: Estimar el Modelo de Mediación
Con nuestro modelo de mediación especificado, ahora podemos estimarlo usando el paquete lavaan. Ajustaremos el modelo a nuestro conjunto de datos y luego resumiremos los resultados.
# Estimar el modelo de mediación
mediation_results <- sem(mediation_model, data = data)
# Resumir los resultados
summary(mediation_results, standardized = TRUE, fit.measures = TRUE)El resumen mostrará los efectos directos estimados (rutas a, b y c), el efecto indirecto (a * b) y el efecto total (c + indirect) junto con sus niveles de significancia, como se muestra a continuación:

Figura 5: Resultado SEM de lavaan mostrando los resultados del análisis de mediación con estimaciones de ruta y niveles de significancia.
Pero, ¿qué significan todos estos números? Revisémoslo a continuación.
Paso 6: Interpretar el Resultado de la Mediación en R
Con base en el resultado de tu análisis de mediación usando el conjunto de datos ficticio de esta lección, aquí te explicamos cómo interpretar los resultados:
Estimaciones de Parámetros:
-
Ruta a (satisfacción laboral → motivación laboral): El coeficiente estimado para el efecto directo de la satisfacción laboral (X) sobre la motivación laboral (M) es 1.218. Esto sugiere que, en promedio, un incremento de una unidad en la satisfacción laboral se asocia con un incremento de 1.218 unidades en la motivación laboral, asumiendo una relación lineal. El coeficiente estandarizado (Std.all) es 1.000, lo que indica una relación positiva fuerte entre la satisfacción laboral y la motivación laboral.
-
Ruta b (motivación laboral → desempeño laboral): El coeficiente estimado para el efecto directo de la motivación laboral (M) sobre el desempeño laboral (Y) es 0.727. Esto sugiere que, en promedio, un incremento de una unidad en la motivación laboral se asocia con un incremento de 0.727 unidades en el desempeño laboral, asumiendo una relación lineal. El coeficiente estandarizado (Std.all) es 0.632, lo que indica una relación positiva moderada entre la motivación laboral y el desempeño laboral.
-
Ruta c (satisfacción laboral → desempeño laboral): El coeficiente estimado para el efecto directo de la satisfacción laboral (X) sobre el desempeño laboral (Y) sin considerar el efecto de mediación es 0.516. Esto sugiere que, en promedio, un incremento de una unidad en la satisfacción laboral se asocia con un incremento de 0.516 unidades en el desempeño laboral, asumiendo una relación lineal. El coeficiente estandarizado (Std.all) es 0.368, lo que indica una relación positiva débil a moderada entre la satisfacción laboral y el desempeño laboral.
Parámetros Definidos:
-
Efecto indirecto (a * b): El efecto indirecto estimado de la satisfacción laboral (X) sobre el desempeño laboral (Y) a través de la motivación laboral (M) es 0.885. Esto sugiere que, en promedio, un incremento de una unidad en la satisfacción laboral resulta en un incremento de 0.885 unidades en el desempeño laboral indirectamente a través de su efecto sobre la motivación laboral. El efecto indirecto estandarizado (Std.all) es 0.632, lo que indica una relación positiva moderada.
-
Efecto total (c + indirect): El efecto total estimado de la satisfacción laboral (X) sobre el desempeño laboral (Y), considerando tanto los efectos directos como indirectos, es 1.401. Esto sugiere que, en promedio, un incremento de una unidad en la satisfacción laboral se asocia con un incremento de 1.401 unidades en el desempeño laboral al considerar ambos efectos. El efecto total estandarizado (Std.all) es 1.000, lo que indica una relación positiva fuerte.
Los resultados presentados aquí se basan en un conjunto de datos ficticio creado únicamente con fines demostrativos, y las interpretaciones no deben considerarse significativas. Sin embargo, el proceso de interpretación de los resultados del análisis de mediación es el mismo para conjuntos de datos reales.
Paso 7: Visualizar la Mediación en R
Para hacer nuestros resultados más accesibles, creemos un diagrama usando el paquete ggplot2:
# Cargar las bibliotecas necesarias
library(ggplot2)
# Crear un gráfico de barras para visualizar los coeficientes de ruta
ggplot(path_data, aes(x = path, y = coefficient, fill = path)) +
geom_bar(stat = "identity", position = position_dodge()) +
geom_text(aes(label = round(coefficient, 3)), vjust = -0.3, size = 4) +
theme_minimal() +
theme(legend.position = "none") +
ylab("Coefficient") +
xlab("Path") +
ggtitle("Mediation Analysis Results")El script anterior creará un gráfico de barras que muestra los coeficientes para cada ruta en nuestro modelo de mediación:

Figura 6: Gráfico de barras mostrando los coeficientes de ruta (a, b, c, indirect, total) del análisis de mediación.
El gráfico de barras es una buena representación de nuestro análisis de mediación. Sin embargo, podemos ir más allá y generar un diagrama de mediación con las estimaciones de ruta sobre las flechas, facilitando la interpretación de las relaciones entre variables usando el siguiente script de R:
# Cargar las bibliotecas necesarias
library(ggplot2)
library(semPlot)
# Crear un gráfico de barras para visualizar los coeficientes de ruta
bar_plot <- ggplot(path_data, aes(x = path, y = coefficient, fill = path)) +
geom_bar(stat = "identity", position = position_dodge()) +
geom_text(aes(label = round(coefficient, 3)), vjust = -0.3, size = 4) +
theme_minimal() +
theme(legend.position = "none") +
ylab("Coefficient") +
xlab("Path") +
ggtitle("Mediation Analysis Results")
# Mostrar el gráfico de barras
print(bar_plot)
# Mostrar el diagrama de mediación con las estimaciones de ruta
semPaths(mediation_fit, whatLabels = "est", style = "lisrel", intercepts = FALSE)Esto generará un diagrama de mediación con las estimaciones de ruta sobre las flechas, facilitando la interpretación de las relaciones entre las variables de nuestro modelo:

Figura 7: Diagrama de ruta creado con semPlot mostrando el modelo de mediación con los coeficientes estimados.
A continuación, una breve explicación de cómo interpretar el diagrama anterior:
-
X → M (ruta a): Esta flecha muestra el efecto de la satisfacción laboral (X) sobre la motivación laboral (M). Un número positivo significa que a medida que aumenta la satisfacción laboral, la motivación laboral también aumenta. Un número negativo indica que a medida que aumenta la satisfacción laboral, la motivación laboral disminuye. La magnitud del número refleja la fuerza de esta relación.
-
M → Y (ruta b): Esta flecha representa el efecto de la motivación laboral (M) sobre el desempeño laboral (Y), asumiendo que la satisfacción laboral (X) se mantiene constante. Un número positivo significa que a medida que aumenta la motivación laboral, el desempeño laboral también aumenta. Un número negativo indica que a medida que aumenta la motivación laboral, el desempeño laboral disminuye. La magnitud del número refleja la fuerza de esta relación.
-
X → Y (ruta c): Esta flecha muestra el efecto directo de la satisfacción laboral (X) sobre el desempeño laboral (Y), sin considerar el mediador (motivación laboral). Un número positivo significa que a medida que aumenta la satisfacción laboral, el desempeño laboral también aumenta. Un número negativo indica que a medida que aumenta la satisfacción laboral, el desempeño laboral disminuye. La magnitud del número refleja la fuerza de esta relación.
Para interpretar los resultados, considera los signos (positivos o negativos) y las magnitudes de los coeficientes de ruta. Un valor absoluto mayor indica una relación más fuerte entre las variables.
Si el efecto indirecto (a * b) es significativo, sugiere que la motivación laboral media la relación entre la satisfacción laboral y el desempeño laboral. En este caso, parte del efecto de la satisfacción laboral sobre el desempeño laboral puede explicarse a través de la motivación laboral.
Preguntas Frecuentes
Próximos Pasos
Ahora que dominas el análisis de mediación en R, puedes expandir tus conocimientos en estas direcciones:
-
Comprende la diferencia entre mediadores y moderadores. El análisis de mediación y el de moderación responden a preguntas distintas. Consulta nuestra guía sobre moderador vs mediador para saber cuándo aplicar cada técnica.
-
Compara tu análisis con SPSS. Si también trabajas con SPSS, nuestra guía sobre análisis de mediación en SPSS te permitirá contrastar los resultados entre ambas plataformas.
Referencias
Baron, R. M., & Kenny, D. A. (1986). The moderator-mediator variable distinction in social psychological research: Conceptual, strategic, and statistical considerations. Journal of Personality and Social Psychology, 51(6), 1173-1182.
Rosseel, Y. (2012). lavaan: An R package for structural equation modeling. Journal of Statistical Software, 48(2), 1-36.
Preacher, K. J., & Hayes, A. F. (2008). Asymptotic and resampling strategies for assessing and comparing indirect effects in multiple mediator models. Behavior Research Methods, 40(3), 879-891.