Es necesario instalar la libreria PsyMetricTools desde github.
if (!require("devtools")) {
install.packages("devtools")
}
devtools::install_github("jventural/PsyMetricTools", force = T)
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)
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)
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)
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())
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>
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
Ventura-León, J. (2024). PsyMetricTools [Software]. GitHub. https://github.com/jventural/PsyMetricTools