1 instalar la libreria PsyMetricTools

Es necesario instalar la libreria PsyMetricTools desde github.

if (!require("devtools")) {
  install.packages("devtools")
}
devtools::install_github("jventural/PsyMetricTools", force = T)

2 Cargando las librerias a utilizarse

Instalar la libreria “pacman”

install.packages("pacman")

La biblioteca “pacman” es una herramienta que, al utilizar la función p_load, permite instalar automáticamente una biblioteca si no está previamente instalada, y simplemente cargarla si ya está presente en el entorno. La función que se utiliza en la libreria PsyMetricTools se basa en los codigos de la libreria careless

pacman::p_load(tidyverse,PsyMetricTools, lavaan)

2.1 1. Carga de datos

El conjunto de datos psych::bfi (que contiene datos de personalidad del Big Five Inventory) se carga y se convierte en un tibble (as_tibble()), luego se eliminan las filas que contienen valores faltantes (na.omit()). Finalmente, se selecciona eliminan las variables gender, education, age

# data
big5 <- psych::bfi %>% 
  as_tibble() %>% 
  na.omit() %>% 
  select(-gender, -education, -age)

2.2 2. Renombrar las columnas

Se genera un vector de nombres nuevos para las columnas llamado nuevos_nombres, utilizando la función paste0() para concatenar el prefijo “bif” con los números del 1 al 25.

# Renombrar las columnas
nuevos_nombres <- paste0("bif", 1:25)

2.3 3. Aplicar los nuevos nombres a las columnas

Se renombran las columnas del conjunto de datos big5 utilizando los nombres generados en el paso anterior (nuevos_nombres) mediante la función rename_with(), aplicada a todas las columnas (everything()), y se almacena el resultado en un nuevo objeto llamado big5_new.

# Aplicar los nuevos nombres a las columnas
big5_new <- big5 %>%
  rename_with(~ nuevos_nombres, everything())

3 CFA con bootstrapping

El código comienza definiendo un modelo de factor confirmatorio model_original que especifica cinco factores latentes (F1 a F5), cada uno de ellos manifestado por cinco ítems (bif1 a bif25). Este modelo sugiere que hay cinco grupos distintos de ítems en el conjunto de datos, con cada grupo representando un factor subyacente diferente. Por ejemplo, F1 =~ bif1+bif2+bif3+bif4+bif5 significa que los ítems bif1 a bif5 son indicadores del factor latente F1.

Luego, el código procede a realizar un análisis de factores confirmatorios mediante bootstrap usando una función personalizada llamada boot_cfa. Esta función parece realizar múltiples replicaciones de CFA en muestras re-muestreadas del conjunto de datos original para evaluar la estabilidad y confiabilidad de las estimaciones de los parámetros del modelo. La función boot_cfa se llama con los siguientes argumentos:

  • new_df = big5_new %>% select(bif1:bif25): Selecciona las columnas bif1 a bif25 del conjunto de datos big5_new para el análisis. Esto sugiere que el análisis se enfocará exclusivamente en estos ítems.
  • model_string = model_original: Usa la cadena de modelo definida anteriormente como el modelo de factor confirmatorio a analizar.
  • item_prefix = "bif": Indica el prefijo común de los nombres de ítems utilizados en el modelo, probablemente para facilitar el procesamiento automático de los nombres de variables dentro de la función.
  • seed = 2024: Establece una semilla para la generación de números aleatorios, lo que garantiza que los resultados del bootstrap sean reproducibles.
  • n_replications = 10: Especifica el número de replicaciones de bootstrap a realizar, en este caso, 10.

La variable results captura la salida de la función boot_cfa, que incluye estadísticas resumidas y medidas de ajuste del modelo para cada replicación de bootstrap, permitiendo una evaluación detallada de la consistencia del modelo a través de diferentes muestras re-muestreadas. Esta técnica es útil para evaluar la robustez de los modelos de factor confirmatorio, especialmente en presencia de incertidumbre en la estimación de parámetros o para verificar la estabilidad de las cargas factoriales y otras métricas de ajuste del modelo.

model_original <- "F1 =~ bif1+bif2+bif3+bif4+bif5
                   F2 =~ bif6+bif7+bif8+bif9+bif10
                   F3 =~ bif11+bif12+bif13+bif14+bif15
                   F4 =~ bif16+bif17+bif18+bif19+bif20
                   F5 =~ bif21+bif22+bif23+bif24+bif25
"

# Assuming 'my_dataset' is your dataset, and you have a model string and item prefix defined
results <- boot_cfa(new_df = big5_new %>% select(bif1:bif25),
                    model_string = model_original,
                    item_prefix = "bif",
                    seed = 2024,
                    n_replications = 10)
## Calculando el CFA con bootstrapping
## 
## Calculando la fiabilidad con bootstrapping
results
## # A tibble: 10 × 12
##    obs   data     model_cfa1         fit_cfa1 converged1 validity1 fit_measures1
##    <chr> <list>   <chr>              <list>   <lgl>      <lgl>     <list>       
##  1 1     <tibble> "F1 =~ bif1+bif2+… <lavaan> TRUE       TRUE      <tibble>     
##  2 10    <tibble> "F1 =~ bif1+bif2+… <lavaan> TRUE       TRUE      <tibble>     
##  3 2     <tibble> "F1 =~ bif1+bif2+… <lavaan> TRUE       TRUE      <tibble>     
##  4 3     <tibble> "F1 =~ bif1+bif2+… <lavaan> TRUE       TRUE      <tibble>     
##  5 4     <tibble> "F1 =~ bif1+bif2+… <lavaan> TRUE       TRUE      <tibble>     
##  6 5     <tibble> "F1 =~ bif1+bif2+… <lavaan> TRUE       TRUE      <tibble>     
##  7 6     <tibble> "F1 =~ bif1+bif2+… <lavaan> TRUE       TRUE      <tibble>     
##  8 7     <tibble> "F1 =~ bif1+bif2+… <lavaan> TRUE       TRUE      <tibble>     
##  9 8     <tibble> "F1 =~ bif1+bif2+… <lavaan> TRUE       TRUE      <tibble>     
## 10 9     <tibble> "F1 =~ bif1+bif2+… <lavaan> TRUE       TRUE      <tibble>     
## # ℹ 5 more variables: Rel1 <lvn.vctr>, Rel2 <lvn.vctr>, Rel3 <lvn.vctr>,
## #   Rel4 <lvn.vctr>, Rel5 <lvn.vctr>

4 Plot del CFA con bootstrapping

La línea de código proporcionada hace uso de una función personalizada llamada boot_cfa_plot, la cual se asume que está diseñada para visualizar de manera comprensiva los resultados de un análisis de factor confirmatorio (CFA) realizado con bootstrap, como los almacenados en la variable results. La función parece generar y, opcionalmente, guardar una imagen que compila visualizaciones de varios aspectos clave del análisis CFA, incluyendo los coeficientes de fiabilidad de omega, índices de ajuste comparativos como el CFI (Comparative Fit Index) y el TLI (Tucker-Lewis Index), así como medidas de ajuste absoluto como el RMSEA (Root Mean Square Error of Approximation) y el SRMR (Standardized Root Mean Square Residual).

Aquí se detallan los argumentos específicos utilizados en la llamada a boot_cfa_plot:

  • results: Se pasa como argumento y contiene los resultados del análisis CFA realizado con bootstrap, presumiblemente incluyendo métricas de ajuste del modelo y estadísticas de fiabilidad para múltiples replicaciones de bootstrap.
  • save = TRUE: Indica que la función debe guardar la visualización generada como un archivo de imagen.
  • dpi = 600: Especifica la resolución de la imagen guardada en puntos por pulgada (dpi), eligiendo una alta resolución de 600 dpi para garantizar claridad y detalle.
  • omega_ymin_annot = 0.25 y omega_ymax_annot = 0.55: Establecen los límites inferior y superior para la anotación del eje y en el gráfico de coeficientes de fiabilidad de omega, respectivamente, proporcionando un rango específico para visualizar estos valores.
  • comp_ymin_annot = 0.85 y comp_ymax_annot = 0.90: Definen los límites inferior y superior para la anotación del eje y en el gráfico de índices de ajuste comparativos (CFI y TLI), ofreciendo una vista estrecha para observar variaciones menores en estos índices de ajuste elevados.
  • abs_ymin_annot = 0.05 y abs_ymax_annot = 0.20: Determinan los límites inferior y superior para la anotación del eje y en el gráfico de medidas de ajuste absoluto, permitiendo enfocar en un rango específico donde se esperan estos valores.

La asignación de esta llamada a la función a la variable Plot1 sugiere que la figura resultante se almacena en dicha variable, permitiendo su posterior visualización o manipulación. Esta práctica es útil para inspeccionar visualmente la calidad y estabilidad del ajuste del modelo a los datos, así como para evaluar la consistencia de los coeficientes de fiabilidad a través de múltiples muestras generadas por el proceso de bootstrap, proporcionando una evaluación comprensiva de la robustez del modelo CFA analizado.

Plot1 <- boot_cfa_plot(results, save = TRUE, dpi = 600,
                       omega_ymin_annot = 0.25, omega_ymax_annot = 0.55,
                       comp_ymin_annot = 0.85, comp_ymax_annot = 0.90,
                       abs_ymin_annot = 0.05, abs_ymax_annot = 0.20
                       )
Plot1

5 Como citar la libreria PsyMetricTools

Ventura-León, J. (2024). PsyMetricTools [Software]. GitHub. https://github.com/jventural/PsyMetricTools