SOC9035 – Análisis Avanzado de Datos II
27 Apr 2026
Ejemplo de medición de una variable latente (unidimensional): Escala de Machismo Sexual (Díaz, Rosas & González, 2010).
Expresa en tu opinión tu grado de acuerdo o desacuerdo con las siguientes frases. Por favor responde honestamente utilizando estas opciones: (1) Totalmente en desacuerdo; (2) En desacuerdo; (3) Sin opinión; (4) De acuerdo; (5) Totalmente de acuerdo
Ejemplos de variables latentes (con más de una dimensión)
Ejemplos de variables latentes (con más de una dimensión): Actitudes meritocráticas (Castillo, Iturra, Meneses & Maldonado, 2021)
| Dimensión | Subdimensión | Indicador |
|---|---|---|
| Percepción | Meritocrática | Quienes más se esfuerzan logran obtener mayores recompensas que quienes se esfuerzan menos.(i1) |
| Quienes poseen más talento logran obtener mayores recompensas que quienes poseen menos talento. (i2) | ||
| No meritocrática | Quienes tienen padres ricos logran salir adelante. (i3) | |
| Quienes tienen buenos contactos logran salir adelante. (i4) |
Ejemplos de variables latentes (con más de una dimensión): Actitudes meritocráticas (Castillo, Iturra, Meneses & Maldonado, 2021)
| Dimensión | Subdimensión | Indicador |
|---|---|---|
| Preferencia | Meritocrática | Quienes más se esfuerzan deberían obtener mayores recompensas que quienes se esfuerzan menos. (i5) |
| Quienes poseen más talento deberían obtener mayores recompensas que quienes poseen menos talento. (i6) | ||
| No meritocrática | Está bien que quienes tienen padres ricos salgan adelante. (i7) | |
| Está bien que quienes tienen buenos contactos salgan adelante (i8) |
| Análisis Factorial Exploratorio (AFE o EFA) | Análisis Factorial Confirmatorio (AFC o CFA) |
|---|---|
| Cuando no hay un modelo teórico que sustenta la manera en que las variables observadas se relacionan entre sí | Un modelo teórico especifica qué variables observadas se relacionan con qué variable(s) latente(s) |
| Busca identificar las variables latentes que subyacen a un conjunto de indicadores correlacionados entre sí | Generalmente, cada variable observada se relaciona solamente con una variable latente |
| El modelo plantea que cada variable observada se relaciona con todas las variables latentes | Podemos evaluar si el modelo planteado se ajusta a los datos observados |
¿Corresponden autoritarismo y dominancia a dos dimensiones distintas del conservadurismo?
Enfoque Exploratorio (AFE):
Relaciona todos los indicadores con todos los factores
¿Corresponden autoritarismo y dominancia a dos dimensiones distintas del conservadurismo?
Enfoque Confirmatorio (AFC):
Restringe relaciones indicadores y factores
Advertencia conceptual
Aplicar AFC a un constructo formativo es un error de especificación grave. El mal ajuste no refleja un instrumento deficiente, sino un modelo causal equivocado desde el inicio. Kline (2023) señala que esta confusión es frecuente y costosa en ciencias sociales.
{lavaan} (Rosseel, 2012).=~ significa que la variable latente (izquierda) es medida por los indicadores (derecha).cfa() se usa para estimar el modelo:mod_conf_cfa es un objeto con los resultados del modelo ajustado.Prueba de Chi-Cuadrado
RMSEA (Root Mean Square Error of Approximation)
CFI (Comparative Fit Index)
El ajuste global no es suficiente
Los umbrales RMSEA < 0.05 y CFI > 0.95 provienen de simulaciones de Hu & Bentler (1999) para condiciones específicas. No son criterios universales.
lavaanRegla práctica (Kline, 2023)
Un modelo puede “pasar” el RMSEA y el CFI y aun así debe ser rechazado o revisado si presenta residuos de correlación con valor absoluto > 0.10.
Latent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
autoritarismo =~
aut1 1.000 1.646 0.907
aut2 0.921 0.060 15.457 0.000 1.517 0.887
aut3 0.929 0.069 13.502 0.000 1.530 0.803
dominancia =~
dom1 1.000 1.201 0.919
dom2 1.096 0.080 13.729 0.000 1.316 0.882
dom3 0.861 0.084 10.298 0.000 1.034 0.685
Covariances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
autoritarismo ~~
dominancia 0.678 0.174 3.891 0.000 0.343 0.343aut1 y dom1 igual a 1
lavaan asume que el primer indicador de un factor se fija en 1Latent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
autoritarismo =~
aut1 1.000 1.646 0.907
aut2 0.921 0.060 15.457 0.000 1.517 0.887
aut3 0.929 0.069 13.502 0.000 1.530 0.803
dominancia =~
dom1 1.000 1.201 0.919
dom2 1.096 0.080 13.729 0.000 1.316 0.882
dom3 0.861 0.084 10.298 0.000 1.034 0.685
Covariances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
autoritarismo ~~
dominancia 0.678 0.174 3.891 0.000 0.343 0.343aut1 y dom1 no tienen valor p porque fueron fijadosaut1 y dom1 son los indicadores más puros de sus factoresLatent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
autoritarismo =~
aut1 1.000 1.646 0.907
aut2 0.921 0.060 15.457 0.000 1.517 0.887
aut3 0.929 0.069 13.502 0.000 1.530 0.803
dominancia =~
dom1 1.000 1.201 0.919
dom2 1.096 0.080 13.729 0.000 1.316 0.882
dom3 0.861 0.084 10.298 0.000 1.034 0.685
Covariances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
autoritarismo ~~
dominancia 0.678 0.174 3.891 0.000 0.343 0.343dom3 tiene la comunalidad más baja: el factor “dominancia” explica el 46,9% de la varianza de dom3.
Modification Indicesmi indican que este cambio significará un mayor cambio en la bondad de ajuste del modelo=~: indica agregar un efecto de una variable observada en una variable latente~~: indica agregar una correlación entre los errores de dos variables observadasdom3, se sugiere:
dom3 como un indicador de autoritarismo (mi = 6,437)dom1 y dom2 (mi = 6,437)aut2 y dom3 (mi = 4,180)Capitalización del azar
Agregar correlaciones de error solo porque un IM es alto transforma el AFC en análisis exploratorio.
https://forms.gle/hx3zXjGUu7iEJg886
lavaanlavaan permite declarar variables ordinales directamente en cfa() con el argumento orderedestimator = "WLSMV") para datos categóricos# Modelo sigue siendo el mismo
mod_conf <- 'autoritarismo =~ aut1 + aut2 + aut3
dominancia =~ dom1 + dom2 + dom3'
# Vector con los nombres de los ítems a tratar como ordinales
items_ordinales <- c("aut1", "aut2", "aut3", "dom1", "dom2", "dom3")
# Ajustar el modelo especificando las variables ordinales y el estimador
mod_conf_ord <- cfa(mod_conf,
data = datos,
ordered = items_ordinales, # ¡Argumento clave!
estimator = "WLSMV") # Estimador para datos categóricoslavaan, se usa la función anova():# Modelo 1: Un solo factor general
mod1 <- 'general =~ aut1+aut2+aut3+dom1+dom2+dom3'
fit1 <- cfa(mod1, data = datos)
# Modelo 2: Dos factores correlacionados (el original)
mod2 <- 'autoritarismo =~ aut1+aut2+aut3
dominancia =~ dom1+dom2+dom3'
fit2 <- cfa(mod2, data = datos)
# Comparar los dos modelos anidados
anova(fit1, fit2)weights) se utilizan para corregir el desbalance en la muestra, permitiendo que las estimaciones de los parámetros (cargas, covarianzas) sean generalizables a la población de interés.lavaan sí puede incorporar pesos muestrales directamente para obtener estimaciones de parámetros correctas.
sampling.weights en la función cfa().lavaan y lavaan.survey.lavaan incluyendo los pesos muestrales.
sampling.weights = "nombre_del_ponderador".lavaan.survey.
survey que especifica los estratos, conglomerados y pesos.lavaan.survey() para tomar el modelo del Paso 1 y el objeto de diseño para recalcular los errores estándar y los índices de ajuste correctamente.lavaancfa(), pasando el nombre de la variable de ponderación al argumento sampling.weights.# Ajustar el modelo CFA especificando la variable de ponderación
mod_conf_cfa_pesos <- cfa(mod_conf,
data = datos,
sampling.weights = "ponderador")
# AVISO: En este punto, los `Estimate` del summary son correctos y ponderados,
# pero los Std.Err, z-value, P(>|z|) y los índices de ajuste NO son
# confiables si el diseño es complejo.lavaan.surveymod_conf_cfa_pesos) y un objeto de diseño de encuesta para obtener los errores estándar e índices de ajuste correctos.# 1. Cargar paquetes e instalar si es necesario
# install.packages(c("survey", "lavaan.survey"))
library(survey)
library(lavaan.survey)
# 2. Crear el objeto de diseño de encuesta completo
diseno_encuesta <- svydesign(ids = ~conglomerado, # Variable de cluster
strata = ~estrato, # Variable de estrato
weights = ~ponderador, # Variable de peso
data = datos)
# 3. Corregir el modelo lavaan usando el diseño de encuesta
fit_complejo <- lavaan.survey(lavaan.fit = mod_conf_cfa_pesos,
survey.design = diseno_encuesta)
# 4. Obtener el resumen con estimaciones, errores estándar e índices de ajuste corregidos
summary(fit_complejo)![]()
Análisis Avanzado de Datos II