VIVANDA, la cadena de supermercados premium, necesita validar su cuestionario de experiencia del cliente para su programa “Tarjeta Vivanda”. Se evaluarán 3 constructos clave:
Exclusividad de Productos (EP1-EP3)
Servicio Personalizado (SP1-SP3)
Ambiente de Tienda (AT1-AT3)
Detalle de Ítems:
Constructo | Ítem | Enunciado | Escala |
---|---|---|---|
Exclusividad | EP1 | “Productos únicos difíciles de encontrar en otros lugares” | 1-5 |
EP2 | “Variedad de productos gourmet/importados” | 1-5 | |
EP3 | “Marcas exclusivas disponibles” | 1-5 | |
Servicio | SP1 | “Asesoramiento especializado en vinos/quesos” | 1-5 |
SP2 | “Servicio de embalaje para regalos” | 1-5 | |
SP3 | “Recordatorio de pedidos frecuentes” | 1-5 | |
Ambiente | AT1 | “Diseño arquitectónico premium” | 1-5 |
AT2 | “Iluminación y música ambiental” | 1-5 | |
AT3 | “Olores característicos agradables” | 1-5 |
Objetivos:
Calcular Fiabilidad Compuesta (CR) para cada constructo
Evaluar Validez Convergente
Verificar Validez Discriminante
Generar insights accionables para el equipo de Marketing
Las encuestas recolectadas se encuentran en el archivo encuesta_Vivanda.csv.
datos=read.csv(file.choose())
library(lavaan)
## This is lavaan 0.6-19
## lavaan is FREE software! Please report any bugs.
library(semTools)
##
## ###############################################################################
## This is semTools 0.5-7
## All users of R (or SEM) are invited to submit functions or ideas for functions.
## ###############################################################################
library(psych)
##
## Adjuntando el paquete: 'psych'
## The following objects are masked from 'package:semTools':
##
## reliability, skew
## The following object is masked from 'package:lavaan':
##
## cor2cov
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
library(semPlot)
modelo <- '
exclusividad =~ EP1 + EP2 + EP3
servicio =~ SP1 + SP2 + SP3
ambiente =~ AT1 + AT2 + AT3
'
fit <- cfa(modelo, data=datos, missing="fiml", std.lv=TRUE)
summary(fit, standardized=TRUE)
## lavaan 0.6-19 ended normally after 60 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 30
##
## Number of observations 500
## Number of missing patterns 38
##
## Model Test User Model:
##
## Test statistic 29.113
## Degrees of freedom 24
## P-value (Chi-square) 0.216
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Observed
## Observed information based on Hessian
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## exclusividad =~
## EP1 0.452 0.032 14.057 0.000 0.452 0.814
## EP2 0.498 0.038 13.203 0.000 0.498 0.731
## EP3 0.097 0.010 9.279 0.000 0.097 0.468
## servicio =~
## SP1 0.643 0.031 20.851 0.000 0.643 0.838
## SP2 0.662 0.035 19.156 0.000 0.662 0.777
## SP3 0.630 0.029 21.995 0.000 0.630 0.870
## ambiente =~
## AT1 0.230 0.031 7.508 0.000 0.230 0.480
## AT2 0.335 0.041 8.168 0.000 0.335 0.587
## AT3 0.261 0.033 7.977 0.000 0.261 0.564
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## exclusividad ~~
## servicio 0.020 0.056 0.365 0.715 0.020 0.020
## ambiente -0.031 0.069 -0.449 0.653 -0.031 -0.031
## servicio ~~
## ambiente 0.028 0.065 0.425 0.671 0.028 0.028
##
## Intercepts:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .EP1 4.505 0.025 178.503 0.000 4.505 8.113
## .EP2 4.127 0.031 133.226 0.000 4.127 6.058
## .EP3 4.959 0.009 525.192 0.000 4.959 24.004
## .SP1 4.183 0.035 120.531 0.000 4.183 5.451
## .SP2 3.632 0.039 94.068 0.000 3.632 4.262
## .SP3 4.478 0.033 136.779 0.000 4.478 6.183
## .AT1 4.654 0.022 211.903 0.000 4.654 9.697
## .AT2 4.628 0.026 177.433 0.000 4.628 8.113
## .AT3 4.787 0.021 226.482 0.000 4.787 10.358
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .EP1 0.104 0.023 4.460 0.000 0.104 0.338
## .EP2 0.216 0.031 7.048 0.000 0.216 0.465
## .EP3 0.033 0.002 13.937 0.000 0.033 0.781
## .SP1 0.176 0.020 8.907 0.000 0.176 0.298
## .SP2 0.288 0.025 11.431 0.000 0.288 0.396
## .SP3 0.128 0.017 7.420 0.000 0.128 0.244
## .AT1 0.177 0.016 11.343 0.000 0.177 0.769
## .AT2 0.213 0.026 8.082 0.000 0.213 0.656
## .AT3 0.146 0.017 8.739 0.000 0.146 0.681
## exclusividad 1.000 1.000 1.000
## servicio 1.000 1.000 1.000
## ambiente 1.000 1.000 1.000
semPaths(fit, whatLabels="std", edge.label.cex=0.6, layout="tree2",
groups=list(c("EP1","EP2","EP3"), c("SP1","SP2","SP3"), c("AT1","AT2","AT3")))
cargas <- inspect(fit, "std")$lambda
var_error <- 1 - rowSums(cargas^2)
resultados <- data.frame(
Constructo = colnames(cargas),
CR = apply(cargas, 2, function(x) sum(x)^2 / (sum(x)^2 + sum(1 - x^2))),
AVE = apply(cargas, 2, function(x) mean(x^2))
)
print(knitr::kable(resultados, digits = 3,
caption = "Métricas de Fiabilidad y Validez"))
##
##
## Table: Métricas de Fiabilidad y Validez
##
## | |Constructo | CR| AVE|
## |:------------|:------------|-----:|-----:|
## |exclusividad |exclusividad | 0.348| 0.157|
## |servicio |servicio | 0.471| 0.229|
## |ambiente |ambiente | 0.247| 0.099|