In the face of declining sales, Galeries Lafayette, a cornerstone of French retail, has embarked on a strategic project to deepen its understanding of customer perceptions and their influence on brand loyalty and commitment. Frederic Fuchsbau, the Marketing Manager, in collaboration with a specialized research consultancy, aims to uncover the key drivers of brand equity for this iconic department store. This initiative was triggered by a directive from the Chief Marketing Officer and has progressed through several phases. Initially, twenty in-depth interviews were conducted to capture a qualitative understanding of how customers perceive Galeries Lafayette, including their preferences and grievances. Insights from these interviews informed the development of a comprehensive survey, which was subsequently distributed to 5,000 customers. Of these, 600 provided detailed feedback on a series of 22 image-related statements, ranging from “Large Range of Assortment” to “Intimate Atmosphere,” using a Likert scale from 1 (“does not apply at all”) to 7 (“applies completely”). This report focuses on analyzing these responses through exploratory and confirmatory factor analysis to elucidate the dimensions by which customers perceive Galeries Lafayette, thus providing actionable insights to enhance marketing strategies and improve overall customer satisfaction.
$$$$
$$$$
# Download packages
library(tidyverse) # data manipulation
library(dplyr) # data manipulation
library(naniar) # missing values analysis
library(ggplot2) # data visualization
library(ggcorrplot) # correlogram with ggplot
library(REdaS) # Bartlett's test of sphericity
library(psych) # factor analysis
library(corrplot) # visualizing correlation matrix
library(olsrr) # VIF and tolerance values
library(kableExtra) # nice looking tables
library(lm.beta) # to display standardized beta coefficients
library(gplots) # plot heatmap
library(RColorBrewer) # color palette
library(reshape2) # data manipulation
library(agricolae) # to perform Fisher’s LSD test
library(readr) # read data
library(semPlot)
# Load the dataset
myData <- read_csv("Case Study III_Structural Equation Modeling.csv")
# View the first few rows of the dataset
head(myData)
## # A tibble: 6 × 45
## Im1 Im2 Im3 Im4 Im5 Im6 Im7 Im8 Im9 Im10 Im11 Im12 Im13
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 7 7 4 4 4 7 999 999 6 7 7 6 4
## 2 4 4 999 4 3 5 3 5 4 5 4 5 5
## 3 5 5 7 7 7 4 999 6 6 7 7 7 7
## 4 5 5 5 5 5 4 4 4 4 4 6 6 6
## 5 4 4 4 3 5 4 4 4 3 6 5 4 4
## 6 4 4 5 5 999 4 2 5 3 3 5 3 3
## # ℹ 32 more variables: Im14 <dbl>, Im15 <dbl>, Im16 <dbl>, Im17 <dbl>,
## # Im18 <dbl>, Im19 <dbl>, Im20 <dbl>, Im21 <dbl>, Im22 <dbl>, C_CR1 <dbl>,
## # C_CR2 <dbl>, C_CR3 <dbl>, C_CR4 <dbl>, C_REP1 <dbl>, C_REP2 <dbl>,
## # C_REP3 <dbl>, COM_A1 <dbl>, COM_A2 <dbl>, COM_A3 <dbl>, COM_A4 <dbl>,
## # SAT_1 <dbl>, SAT_2 <dbl>, SAT_3 <dbl>, SAT_P1 <dbl>, SAT_P2 <dbl>,
## # SAT_P3 <dbl>, SAT_P4 <dbl>, SAT_P5 <dbl>, SAT_P6 <dbl>, TRU_1 <dbl>,
## # TRU_2 <dbl>, TRU_3 <dbl>
# Number of missing values in each column
sapply(myData, function(x) sum(is.na(x)))
## Im1 Im2 Im3 Im4 Im5 Im6 Im7 Im8 Im9 Im10 Im11
## 0 0 0 0 0 0 0 0 0 0 0
## Im12 Im13 Im14 Im15 Im16 Im17 Im18 Im19 Im20 Im21 Im22
## 0 0 0 0 0 0 0 0 0 0 0
## C_CR1 C_CR2 C_CR3 C_CR4 C_REP1 C_REP2 C_REP3 COM_A1 COM_A2 COM_A3 COM_A4
## 0 0 0 0 0 0 0 0 0 0 0
## SAT_1 SAT_2 SAT_3 SAT_P1 SAT_P2 SAT_P3 SAT_P4 SAT_P5 SAT_P6 TRU_1 TRU_2
## 0 0 0 0 0 0 0 0 0 0 0
## TRU_3
## 0
We can see that there is no missing value, but unfortunately it’s too
good to be true.
After a careful examination of the dataset from Galeries Lafayette’s
customer survey revealed a peculiar issue: the presence of values
labeled as 999, which were used to denote missing or unavailable
responses. Recognizing the potential impact of these pseudo-missing
values on the analysis, the first step involved replacing these values
with NA, a standard notation for missing data in R, to streamline the
subsequent data handling processes.
# Replace 999 with NA across the entire dataset
myData[myData == 999] <- NA
# Number of missing values in each column
sapply(myData, function(x) sum(is.na(x)))
## Im1 Im2 Im3 Im4 Im5 Im6 Im7 Im8 Im9 Im10 Im11
## 14 18 20 10 29 9 26 6 16 6 12
## Im12 Im13 Im14 Im15 Im16 Im17 Im18 Im19 Im20 Im21 Im22
## 21 15 24 12 24 12 28 12 9 5 17
## C_CR1 C_CR2 C_CR3 C_CR4 C_REP1 C_REP2 C_REP3 COM_A1 COM_A2 COM_A3 COM_A4
## 20 30 6 10 5 16 18 14 11 18 9
## SAT_1 SAT_2 SAT_3 SAT_P1 SAT_P2 SAT_P3 SAT_P4 SAT_P5 SAT_P6 TRU_1 TRU_2
## 5 10 40 8 16 6 13 8 13 28 33
## TRU_3
## 28
This adjustment was crucial as it revealed the true extent of missing
data, which remained significant despite the initial appearance of a
complete dataset. With the real picture of data completeness now clear,
we proceeded to focus on the subset of the dataset critical for our
analysis.
# Subset the first 22 columns
data_image <- myData[, 1:22]
A subset of the original dataset, myData, was created to focus
specifically on the 22 image statements that respondents answered in the
survey. This subset, referred to as data_image, includes only the first
22 columns of myData, each corresponding to one of the image-related
questions. This segmentation ensures that our factor analysis is
concentrated on understanding the perceptual dimensions regarding
Galeries Lafayette’s image as perceived by customers.
Given the significance of dealing with complete data in factor analysis, the next step involved cleaning the dataset by removing rows that contained any missing values. This approach was chosen to ensure the integrity and reliability of the factor analysis, albeit at the cost of reducing the dataset size.
# Remove rows with any NA values
data_image_clean <- na.omit(data_image)
After cleaning the data, the dataset size reduced significantly from 553 observations to 385. This reduction highlights a substantial amount of incomplete data, which poses certain challenges. The decrease in data size can impact the generalizability and statistical power of the subsequent analyses. Such a situation necessitates a careful consideration of the balance between data completeness and the sufficiency of the sample size for robust statistical analysis.
$$$$
ggcorrplot(round(cor(data_image_clean), 2),
method = "square",
type = "lower",
show.diag = FALSE,
lab = TRUE, lab_col = "black", hc.order = T, lab_size = 2)
In examining the correlation matrix, we observe several pairs of
variables exhibiting notably high correlations, indicating potential
redundancy or strong associations that could suggest underlying common
factors. For instance, the correlation between lm3 and lm4 is
exceptionally high at 0.91, suggesting these items might measure a
similar construct or aspect of the Galeries Lafayette image. Similarly,
lm1 and lm2 show a correlation of 0.87, and both lm10 and lm14 also
present a correlation of 0.87. Such strong correlations may guide the
grouping of these items under the same factors during the factor
analysis.
Conversely, some variables display weak correlations, such as lm5
with lm6 at a correlation of only 0.2, and lm7 with lm16, also at 0.2.
These low correlations indicate that the items likely measure distinct
aspects of the customer’s perception and should not be grouped under the
same factor.
This pattern of high and low correlations is critical for defining
the factor structure in both exploratory and confirmatory factor
analysis, as it helps in understanding how different aspects of the
brand image are perceived by customers. Such insights are invaluable for
accurately modeling the dimensions of brand perception at Galeries
Lafayette.
$$$$
#### Bartlett’s test of sphericity
Before proceeding with factor analysis, it is crucial to ascertain the suitability of the data for such statistical modeling. To this end, Bartlett’s Test of Sphericity was employed to evaluate the overall significance of the correlation matrix:
bart_spher(data_image_clean)
## Bartlett's Test of Sphericity
##
## Call: bart_spher(x = data_image_clean)
##
## X2 = 6451.238
## df = 231
## p-value < 2.22e-16
The Bartlett’s Test of Sphericity showed a chi-square statistic of
6451.238 with a p-value less than 0.05 (p < 2.22e-16), strongly
rejecting the null hypothesis that the variables are uncorrelated. This
confirms the presence of significant correlations among variables,
justifying the use of factor analysis to explore underlying factors.
The Kaiser-Meyer-Olkin measure of sampling adequacy is calculated to assess the appropriateness of factor analysis for the dataset:
KMO_test <- KMOS(data_image_clean)
KMO_test
##
## Kaiser-Meyer-Olkin Statistics
##
## Call: KMOS(x = data_image_clean)
##
## Measures of Sampling Adequacy (MSA):
## Im1 Im2 Im3 Im4 Im5 Im6 Im7 Im8
## 0.8244624 0.8224640 0.8640362 0.8542604 0.9546668 0.8224827 0.8448231 0.9300079
## Im9 Im10 Im11 Im12 Im13 Im14 Im15 Im16
## 0.9380091 0.8285789 0.9113882 0.8789413 0.8722220 0.8267452 0.9647563 0.9092200
## Im17 Im18 Im19 Im20 Im21 Im22
## 0.8644991 0.8550678 0.9400714 0.8266391 0.9149654 0.8793157
##
## KMO-Criterion: 0.8770975
The KMO criterion for our data is 0.88, well above the commonly recommended threshold of 0.6. This high value suggests that the partial correlations among variables are relatively low, indicating that factor analysis is likely to be reliable with this dataset.
$$$$
We sort values by Measures of Sampling Adequacy (MSA)
sort(KMO_test$MSA)
## Im2 Im6 Im1 Im20 Im14 Im10 Im7 Im4
## 0.8224640 0.8224827 0.8244624 0.8266391 0.8267452 0.8285789 0.8448231 0.8542604
## Im18 Im3 Im17 Im13 Im12 Im22 Im16 Im11
## 0.8550678 0.8640362 0.8644991 0.8722220 0.8789413 0.8793157 0.9092200 0.9113882
## Im21 Im8 Im9 Im19 Im5 Im15
## 0.9149654 0.9300079 0.9380091 0.9400714 0.9546668 0.9647563
The lowest MSA value is associated with lm2, which pertains to the question, “What do GLB represent from your point of view? Assortment Variety”. This lower adequacy measure suggests that lm2 might not share as much common variance with other variables in the dataset, an aspect to be carefully considered in subsequent analyses. This finding indicates that lm2 may not fit well with a common factor model, potentially requiring special attention in the factor analysis process.
$$$$
Principal axes factoring with Varimax rotation
$$$$
After performing the factor analysis without rotation, we examined the communalities for each variable to assess how well each is accounted for by the extracted factors. Communalities represent the proportion of each variable’s variance that can be explained by the factors, thus high communalities are indicative of a good factor solution.
# Run factor analysis with no rotation
fa_0 <- fa(data_image_clean,
nfactors = ncol(data_image_clean),
rotate = "none")
# Look at communalities
sort(fa_0$communalities)
## Im11 Im9 Im5 Im21 Im19 Im15 Im16 Im8
## 0.6017430 0.6131069 0.6413666 0.7117001 0.7290241 0.7485245 0.7604446 0.7936975
## Im12 Im18 Im13 Im20 Im22 Im6 Im7 Im10
## 0.8132541 0.8294448 0.8417272 0.8564198 0.8745729 0.8773807 0.8937851 0.9167615
## Im2 Im3 Im17 Im4 Im14 Im1
## 0.9264859 0.9307854 0.9352630 0.9664673 0.9711077 0.9761381
The results indicate that all variables have communalities greater
than 0.5, suggesting that a substantial amount of the variance in each
variable is explained by the factors. This high level of communalities
validates the factorability of the dataset and supports the continuation
of the factor analysis process with a defined number of factors.
# Run factor analysis
fa_paf <- fa(data_image_clean,
nfactors = ncol(data_image_clean),
rotate = "none")
# Data frame with eigenvalues and variance
total_var_explained_paf <- data.frame(
Factor_n = as.factor(1:length(fa_paf$e.values)),
Eigenvalue = fa_paf$e.values,
Variance = fa_paf$e.values/(ncol(data_image_clean))*100,
Cum_var = cumsum(fa_paf$e.values/ncol(data_image_clean))
)
total_var_explained_paf
## Factor_n Eigenvalue Variance Cum_var
## 1 1 8.97758636 40.8072107 0.4080721
## 2 2 2.46726381 11.2148355 0.5202205
## 3 3 1.56195916 7.0998144 0.5912186
## 4 4 1.45683885 6.6219948 0.6574386
## 5 5 1.24785174 5.6720533 0.7141591
## 6 6 1.14733750 5.2151705 0.7663108
## 7 7 0.81009930 3.6822696 0.8031335
## 8 8 0.71161301 3.2346046 0.8354795
## 9 9 0.56785521 2.5811600 0.8612911
## 10 10 0.45684420 2.0765645 0.8820568
## 11 11 0.36139965 1.6427257 0.8984840
## 12 12 0.33234747 1.5106703 0.9135907
## 13 13 0.29499718 1.3408963 0.9269997
## 14 14 0.28351700 1.2887137 0.9398868
## 15 15 0.24936387 1.1334721 0.9512216
## 16 16 0.22811058 1.0368663 0.9615902
## 17 17 0.20225224 0.9193284 0.9707835
## 18 18 0.18624143 0.8465520 0.9792490
## 19 19 0.15737216 0.7153280 0.9864023
## 20 20 0.11623773 0.5283533 0.9916858
## 21 21 0.10167221 0.4621464 0.9963073
## 22 22 0.08123935 0.3692698 1.0000000
First factor has an eigenvalue of 8.98 indicating that it can explain
almost 40.81% of the overall variance. Six factors have eigenvalues
above 1 and explain 76% of the total variance. Seven factors explain 80%
of the total variance and eight factors explain around 83.5%.
To further refine the selection of factors for our analysis, we visualize the eigenvalues using a scree plot. This graphical representation helps identify the point at which the eigenvalues begin to level off, informally known as the ‘elbow,’ which typically indicates the optimal number of factors to retain.
# Scree plot
ggplot(total_var_explained_paf, aes(x = Factor_n, y = Eigenvalue, group = 1)) +
geom_point() + geom_line() +
xlab("Number of factors") +
ylab("Initial eigenvalue") +
labs( title = "Scree Plot") +
geom_hline(yintercept= 1, linetype="dashed", color = "red")
Based on Kaiser criterion (extract factors with eigenvalues larger than 1), six factors are to be retained. However, eigenvalue for 7th factor is close to 1. As a general recommendation, you should always test for solutions with more and less number of factors than suggested by Kaiser criterion.
$$$$
What are the dimensions by which Galeries Lafayette is perceived?
Please explain your findings and rational for your final result.
To explore the underlying factors among the 22 image statements,
we’ll perform factor analysis using the psych package. Here, principal
is used for factor analysis with a Varimax rotation to make the factor
structure easier to interpret.
# Run factor analysis with 6 factors and Varimax rotation
PCA_6 = principal(data_image_clean, rotate = "varimax", nfactors = 6, scores = TRUE)
# Print the loadings
print(PCA_6$loadings, cutoff = 0.3, sort = TRUE)
##
## Loadings:
## RC2 RC1 RC5 RC3 RC4 RC6
## Im6 0.718 0.494
## Im7 0.803 0.371
## Im8 0.854
## Im10 0.791
## Im14 0.791
## Im1 0.853
## Im2 0.856
## Im15 0.685
## Im16 0.624 0.385
## Im19 0.568 0.415
## Im3 0.829
## Im4 0.847
## Im5 0.778
## Im20 0.874
## Im21 0.830
## Im22 0.817
## Im11 0.770
## Im12 0.817
## Im13 0.738
## Im9 0.426 0.554
## Im17 0.354 0.687
## Im18 0.705
##
## RC2 RC1 RC5 RC3 RC4 RC6
## SS loadings 3.648 3.307 2.851 2.540 2.463 2.049
## Proportion Var 0.166 0.150 0.130 0.115 0.112 0.093
## Cumulative Var 0.166 0.316 0.446 0.561 0.673 0.766
Low Loadings: Items like Im9, Im17 and Im6 do not
load strongly on one of the six factors, with loadings still near to
0.708. This suggests that these items may not align well with the
identified factors or could be measuring aspects of customer perception
that are distinct from those captured by the current factor
solution.
Marginal Loadings: Im15, IM16 and Im19 exhibit loadings just below 0.708. While they do contribute to their respective factors, their loadings are marginal, which may warrant a reassessment of whether they fit well within the factor structure.
$$$$
Given the insights from previous analyses, we decided to expand the factor analysis to include seven factors. This adjustment was intended to explore whether a more nuanced factor solution could better account for the complexities within the data.
# Run factor analysis with 7 factors and Varimax rotation
PCA_7 = principal(data_image_clean, rotate = "varimax", nfactors = 7, scores = TRUE)
# Print the loadings
print(PCA_7$loadings, cutoff = 0.3, sort = TRUE)
##
## Loadings:
## RC7 RC1 RC5 RC3 RC4 RC2 RC6
## Im8 0.716 0.497
## Im10 0.830
## Im14 0.808
## Im1 0.874
## Im2 0.890
## Im15 0.632 0.301
## Im3 0.830
## Im4 0.853
## Im5 0.813
## Im20 0.886
## Im21 0.835
## Im22 0.811
## Im11 0.776
## Im12 0.822
## Im13 0.751
## Im6 0.849
## Im7 0.375 0.814
## Im9 0.371 0.600
## Im17 0.780
## Im18 0.793
## Im19 0.438 0.399 0.502
## Im16 0.483 0.446 0.453
##
## RC7 RC1 RC5 RC3 RC4 RC2 RC6
## SS loadings 2.723 2.702 2.642 2.550 2.464 2.400 2.189
## Proportion Var 0.124 0.123 0.120 0.116 0.112 0.109 0.099
## Cumulative Var 0.124 0.247 0.367 0.483 0.595 0.704 0.803
Improved Clarity: The introduction of a seventh
factor has resulted in a clearer factor structure since less loadings
are lower than the thresholds at 0.708.
Persistent
Issues: Despite these improvements, four variables (Im15, Im16
Im19 and Im9) still do not load significantly on any of the seven
factors, indicating they may not align well with the identified
dimensions of customer perceptions.
Let’s try out for eight factors
in order to see if the improvement continue.
$$$$
Given the results from the seven-factor model, an additional factor might provide even more differentiation among the variables, potentially resolving issues with variables that are currently not loading strongly on any of the existing seven factors.
# Run factor analysis with 8 factors and Varimax rotation
PCA_8 = principal(data_image_clean, rotate = "varimax", nfactors = 8, scores = TRUE)
# Print the loadings
print(PCA_8$loadings, cutoff = 0.3, sort = TRUE)
##
## Loadings:
## RC1 RC3 RC4 RC2 RC8 RC5 RC7 RC6
## Im3 0.822
## Im4 0.845
## Im5 0.814
## Im20 0.887
## Im21 0.835
## Im22 0.811
## Im11 0.768
## Im12 0.841
## Im13 0.758
## Im8 0.674 0.515
## Im10 0.883
## Im14 0.884
## Im6 0.870
## Im7 0.366 0.825
## Im9 0.388 0.635
## Im1 0.869
## Im2 0.891
## Im15 0.520 0.469
## Im16 0.822
## Im19 0.723
## Im17 0.807
## Im18 0.866
##
## RC1 RC3 RC4 RC2 RC8 RC5 RC7 RC6
## SS loadings 2.571 2.563 2.497 2.439 2.421 2.216 1.865 1.808
## Proportion Var 0.117 0.116 0.113 0.111 0.110 0.101 0.085 0.082
## Cumulative Var 0.117 0.233 0.347 0.458 0.568 0.669 0.753 0.835
Improved Clarity: We can see a real improvement in
the clarity of the variables separation. All the loadings are above the
threshold of 0.708 wich is very good.
Persistent
Issues: Despite the overall improvements, Im15, which queries
respondents about “Professional Selection of Brands” continues to
exhibit a low loading of 0.520. It soesn’t fit neather in factor 5 which
could be “Product Diversity” and neather in factor 7 which could be
“Professionalism and Service”.
Recommendations:
Given its consistently low loading across various factor models, it may
be prudent to remove Im15 from the analysis. Excluding this item could
potentially enhance the coherence and interpretability of the remaining
factors.
$$$$
With the potential removal of Im15, a re-run of the factor analysis
might be necessary to reassess the factor structure and confirm the
stability of the remaining items.
# Remove the columns Im15
data_image_clean_2 <- data_image_clean[, !colnames(data_image_clean) %in% c("Im15")]
# Run factor analysis with 8 factors and Varimax rotation
PCA_8 = principal(data_image_clean_2, rotate = "varimax", nfactors = 8, scores = TRUE)
# Print the loadings
print(PCA_8$loadings, cutoff = 0.3, sort = TRUE)
##
## Loadings:
## RC1 RC3 RC4 RC2 RC8 RC5 RC6 RC7
## Im3 0.825
## Im4 0.847
## Im5 0.816
## Im20 0.889
## Im21 0.837
## Im22 0.814
## Im11 0.773
## Im12 0.842
## Im13 0.759
## Im8 0.680 0.511
## Im10 0.885
## Im14 0.886
## Im6 0.871
## Im7 0.369 0.825
## Im9 0.391 0.637
## Im1 0.865
## Im2 0.891
## Im17 0.812
## Im18 0.868
## Im16 0.825
## Im19 0.738
##
## RC1 RC3 RC4 RC2 RC8 RC5 RC6 RC7
## SS loadings 2.567 2.529 2.449 2.444 2.384 1.886 1.813 1.639
## Proportion Var 0.122 0.120 0.117 0.116 0.114 0.090 0.086 0.078
## Cumulative Var 0.122 0.243 0.359 0.476 0.589 0.679 0.765 0.843
Improved Clarity: The factor analysis, conducted
without Im15, has yielded a coherent and clear factor structure. Each of
the eight factors shows strong loadings from multiple variables,
demonstrating a robust alignment with specific aspects of customer
perceptions. Importantly, the cumulative variance explained by these
factors stands at 84.3%, indicating that the model effectively captures
a significant portion of the variability in the dataset.
Im8 (“Expertise in French Traditional Cuisine”): Despite a loading of
0.680, which is slightly below the often-used threshold of 0.7 for
strong loadings, Im8 aligns well with Factor 2. This factor, potentially
labeled as “Gourmet and Specialty Offerings,” appropriately groups items
related to Galeries Lafayette’s food-related offerings. The thematic
consistency justifies retaining Im8 within this factor, as it
contributes to a nuanced understanding of the store’s gourmet
appeal.
Im9 (“French Fashion”): Similarly, Im9 has a loading of 0.637 and
fits within Factor 8, which could be named “French Cultural Appeal.”
This factor captures elements of Galeries Lafayette that are
quintessentially French, such as fashion and lifestyle. Although the
loading is modest, Im9’s relevance to the factor’s theme of French
culture is significant enough to warrant its inclusion.
With the improved clarity of the factor structure, our next step is to delve deeper into interpreting and labeling each factor. This will involve a detailed examination of the variables that significantly load on each factor to precisely define what each factor represents and how it relates to Galeries Lafayette’s brand image and customer experiences.
With the improved factor structure, the next step is to interpret and label each factor based on the variables that load significantly on them and with that we answer to the question 1 which is : “What are the dimensions by which Galeries Lafayette is perceived?”
$$$$
Factor 1 : Store Presentation and Aesthetics
Im3 : Artistic Decoration of Sales Area
Im4 : Creative
Decoration of Sales Area
Im5 : Appealing Arrangement of Shop
Windows
Interpretation : This factor likely represents the
customers’ perception of the artistic and aesthetic qualities of
Galeries Lafayette’s store presentation. It indicates that customers
value creativity and visual appeal in the store’s layout and window
displays.
Factor 2 : Gourmet and Specialty Offerings
Im8 : Expertise in French Traditional Cuisine
Im10 : Gourmet
Food
Im14 : Gourmet Specialties
Interpretation : This factor focuses on Galeries Lafayette’s
offerings related to gourmet food and French cuisine specialties. It
highlights the store’s reputation as a destination for high-quality food
products and culinary expertise.
Factor 3 : Shopping Experience
Im20 : Relaxing Shopping
Im21 : A Great Place to Stroll
Im22 : Intimate Shop Atmosphere
Interpretation : This factor captures aspects related to the
overall shopping experience at Galeries Lafayette, emphasizing a
relaxed, enjoyable, and intimate shopping environment. It reflects how
the atmosphere contributes to a positive customer experience.
Factor 4 : High-End Products
Im11 : High-Quality Cosmetics
Im12 : Luxury Brands
Im13 :
Up to Date Designer Brands
Interpretation : Representing the high-end, luxury segment
of Galeries Lafayette’s offerings, this factor underscores the store’s
appeal to customers seeking premium brands, designer products, and
top-quality cosmetics.
Factor 5 : Product Diversity
Im1 : Large Assortment
Im2 : Assortment Variety
Interpretation : This factor reflects the breadth and
variety of products available at Galeries Lafayette, highlighting the
store’s wide assortment and diversity in product offerings.
Factor 6 : Trendiness and Modernity
Im17 : Are Trendy
Im18 : Are Hip
Interpretation : This factor suggests that customers
perceive Galeries Lafayette as a trendy and hip destination, aligning
with contemporary styles and the latest fashion trends.
Factor 7 : Professionalism and Service
Im16 : Professional Appearance Towards Customers
Im19 :
Professional Organization
Interpretation : It focuses on the professionalism and
organizational aspects of Galeries Lafayette, indicating that customers
value efficient service and a professional approach in the store’s
operations.
Factor 8 : French Cultural Appeal
Im6 : France
Im7 : French Savoir-vivre
Im9 : French Fashion
Interpretation : This factor encapsulates the French
cultural elements that Galeries Lafayette embodies, from its
representation of French lifestyle and fashion to its overall
savoir-vivre. It highlights the store’s strong association with French
cultural identity in Berlin.
To effectively transition to the confirmatory factor analysis phase,
it’s essential that we prepare a comprehensive and clean dataset that
encompasses not just the 22 image statements but all relevant variables.
This broader dataset will enable us to confirm the factor structures
derived from the exploratory analysis and to validate the relationships
among the variables. To facilitate this, we will create a new subset of
the data, which we will refer to as data_clean. This subset will undergo
a thorough cleaning process to ensure it is devoid of any
inconsistencies or missing values that could impact the accuracy of the
confirmatory analysis.
data_clean <- na.omit(myData)
Now let’s revisit the scree plot for our 22 image statements, this
time using the newly cleaned dataset. This dataset now contains fewer
observations, having undergone a thorough cleaning process prior to our
decision to focus exclusively on these 22 variables. Examining the scree
plot again will help us understand the underlying structure of the data
post-cleanup and ensure that our factor analysis is based on the most
reliable and representative information available.
# Run factor analysis
fa_paf <- fa(data_clean[,1:22],
nfactors = 8,
rotate = "none")
# Data frame with eigenvalues and variance
total_var_explained_paf <- data.frame(
Factor_n = as.factor(1:length(fa_paf$e.values)),
Eigenvalue = fa_paf$e.values,
Variance = fa_paf$e.values/(ncol(data_clean))*100,
Cum_var = cumsum(fa_paf$e.values/ncol(data_clean))
)
total_var_explained_paf
## Factor_n Eigenvalue Variance Cum_var
## 1 1 9.25171061 20.5593569 0.2055936
## 2 2 2.48028478 5.5117439 0.2607110
## 3 3 1.52812084 3.3958241 0.2946692
## 4 4 1.39900216 3.1088937 0.3257582
## 5 5 1.20213990 2.6714220 0.3524724
## 6 6 1.11493140 2.4776253 0.3772487
## 7 7 0.79681001 1.7706889 0.3949555
## 8 8 0.73030690 1.6229042 0.4111846
## 9 9 0.56484827 1.2552184 0.4237368
## 10 10 0.44563733 0.9903052 0.4336398
## 11 11 0.35644575 0.7921017 0.4415608
## 12 12 0.32303979 0.7178662 0.4487395
## 13 13 0.31045264 0.6898948 0.4556385
## 14 14 0.26100084 0.5800019 0.4614385
## 15 15 0.25402407 0.5644979 0.4670835
## 16 16 0.20850941 0.4633543 0.4717170
## 17 17 0.18913951 0.4203100 0.4759201
## 18 18 0.16728341 0.3717409 0.4796375
## 19 19 0.13754293 0.3056510 0.4826940
## 20 20 0.10913031 0.2425118 0.4851191
## 21 21 0.09229101 0.2050911 0.4871700
## 22 22 0.07734813 0.1718847 0.4888889
# Scree plot
ggplot(total_var_explained_paf, aes(x = Factor_n, y = Eigenvalue, group = 1)) +
geom_point() + geom_line() +
xlab("Number of factors") +
ylab("Initial eigenvalue") +
labs( title = "Scree Plot") +
geom_hline(yintercept= 1, linetype="dashed", color = "red")
Observing that the scree plot generated from the new dataset,
data_clean, closely mirrors the initial scree plot derived from
data_image_clean, we can conclude that the structural integrity of the
data has been maintained despite the reduction in observations. This
consistency confirms that the underlying factors influencing customer
perceptions remain stable and well-represented, even after the data
cleaning process. Consequently, this stability supports the reliability
of our factor analysis findings and validates our approach to focusing
on these 22 variables for deeper insights into customer perceptions at
Galeries Lafayette.
With the updated dataset data_clean, from which Im15 has also been
excluded, it is now appropriate to conduct a Principal Component
Analysis (PCA) with eight factors. This step will help us verify if the
PCA results remain consistent with our previous findings. By performing
PCA on this cleaned dataset, we aim to assess the stability of the
factor structure and ensure that the principal components reflect the
underlying patterns accurately, even after the data adjustments.
# Run factor analysis with 8 factors and Varimax rotation
PCA_8 = principal(data_clean[,1:22], rotate = "varimax", nfactors = 8, scores = TRUE)
# Print the loadings
print(PCA_8$loadings, cutoff = 0.3, sort = TRUE)
##
## Loadings:
## RC3 RC2 RC6 RC4 RC5 RC7 RC1 RC8
## Im20 0.882
## Im21 0.857
## Im22 0.817
## Im8 0.703 0.468
## Im10 0.881
## Im14 0.888
## Im3 0.798
## Im4 0.825
## Im5 0.797
## Im11 0.765
## Im12 0.831
## Im13 0.732 0.309
## Im6 0.879
## Im7 0.371 0.817
## Im9 0.411 0.614
## Im1 0.872
## Im2 0.881
## Im15 0.322 0.506 0.500
## Im16 0.826
## Im19 0.707
## Im17 0.820
## Im18 0.848
##
## RC3 RC2 RC6 RC4 RC5 RC7 RC1 RC8
## SS loadings 2.667 2.525 2.522 2.493 2.315 2.226 1.922 1.834
## Proportion Var 0.121 0.115 0.115 0.113 0.105 0.101 0.087 0.083
## Cumulative Var 0.121 0.236 0.351 0.464 0.569 0.670 0.758 0.841
The analysis shows that the variables continue to align with the same factors as observed in the previous PCA conducted with eight factors. Although the loadings of these variables have shifted slightly, this variation is expected and acceptable given the modifications made to the dataset, including the removal of Im15. These differences underscore the robustness of our factor structure, confirming that the essential characteristics of the dataset are preserved despite these adjustments.
Now let’s take a look at the Confirmatory Factor Analysis.
Initially, we will construct the latent variables required to develop a comprehensive Structural Equation Modeling (SEM) framework. This foundational step ensures that all necessary constructs are accurately represented in the model, facilitating a robust analysis of the relationships within the data.
library(lavaan)
model_1 <- "
fc1 =~ Im3 + Im4 + Im5
fc2 =~ Im8 + Im10 + Im14
fc3 =~ Im20 + Im21 + Im22
fc4 =~ Im11 + Im12 + Im13
fc5 =~ Im1 + Im2
fc6 =~ Im17 + Im18
fc7 =~ Im16 + Im19
fc8 =~ Im6 + Im7+ Im9
AFC =~ COM_A1 + COM_A2 + COM_A3 + COM_A4
SAT =~ SAT_1 + SAT_2 + SAT_3
RPCH =~ C_REP1 + C_REP2 + C_REP3
COCR =~ C_CR1 + C_CR3 + C_CR4
"
fit_1 <- cfa(model_1, data = data_clean, missing = "ML")
summary(fit_1, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.6.17 ended normally after 95 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 168
##
## Number of observations 277
## Number of missing patterns 1
##
## Model Test User Model:
##
## Test statistic 859.316
## Degrees of freedom 461
## P-value (Chi-square) 0.000
##
## Model Test Baseline Model:
##
## Test statistic 7452.346
## Degrees of freedom 561
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.942
## Tucker-Lewis Index (TLI) 0.930
##
## Robust Comparative Fit Index (CFI) 0.942
## Robust Tucker-Lewis Index (TLI) 0.930
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -12189.352
## Loglikelihood unrestricted model (H1) -11759.694
##
## Akaike (AIC) 24714.703
## Bayesian (BIC) 25323.538
## Sample-size adjusted Bayesian (SABIC) 24790.834
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.056
## 90 Percent confidence interval - lower 0.050
## 90 Percent confidence interval - upper 0.062
## P-value H_0: RMSEA <= 0.050 0.049
## P-value H_0: RMSEA >= 0.080 0.000
##
## Robust RMSEA 0.056
## 90 Percent confidence interval - lower 0.050
## 90 Percent confidence interval - upper 0.062
## P-value H_0: Robust RMSEA <= 0.050 0.049
## P-value H_0: Robust RMSEA >= 0.080 0.000
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.055
##
## 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
## fc1 =~
## Im3 1.000 1.303 0.942
## Im4 1.044 0.034 31.157 0.000 1.360 0.963
## Im5 0.802 0.047 17.144 0.000 1.044 0.757
## fc2 =~
## Im8 1.000 0.803 0.772
## Im10 1.015 0.060 16.994 0.000 0.815 0.926
## Im14 1.016 0.060 16.999 0.000 0.815 0.932
## fc3 =~
## Im20 1.000 1.278 0.852
## Im21 0.941 0.054 17.433 0.000 1.203 0.841
## Im22 1.106 0.060 18.466 0.000 1.413 0.907
## fc4 =~
## Im11 1.000 0.752 0.651
## Im12 1.313 0.110 11.898 0.000 0.987 0.862
## Im13 1.528 0.137 11.142 0.000 1.149 0.890
## fc5 =~
## Im1 1.000 1.332 0.967
## Im2 0.890 0.043 20.659 0.000 1.186 0.914
## fc6 =~
## Im17 1.000 1.244 0.958
## Im18 0.994 0.051 19.425 0.000 1.236 0.886
## fc7 =~
## Im16 1.000 0.955 0.759
## Im19 1.092 0.084 12.947 0.000 1.043 0.864
## fc8 =~
## Im6 1.000 1.002 0.824
## Im7 1.100 0.070 15.825 0.000 1.102 0.936
## Im9 0.721 0.078 9.179 0.000 0.722 0.539
## AFC =~
## COM_A1 1.000 1.239 0.817
## COM_A2 1.093 0.069 15.822 0.000 1.354 0.822
## COM_A3 1.062 0.069 15.290 0.000 1.315 0.820
## COM_A4 1.203 0.075 16.131 0.000 1.490 0.861
## SAT =~
## SAT_1 1.000 0.868 0.847
## SAT_2 1.012 0.068 14.886 0.000 0.878 0.829
## SAT_3 0.906 0.067 13.464 0.000 0.787 0.735
## RPCH =~
## C_REP1 1.000 0.572 0.785
## C_REP2 1.004 0.065 15.476 0.000 0.574 0.931
## C_REP3 0.798 0.058 13.797 0.000 0.456 0.793
## COCR =~
## C_CR1 1.000 1.755 0.859
## C_CR3 1.049 0.063 16.568 0.000 1.841 0.869
## C_CR4 0.934 0.061 15.279 0.000 1.639 0.804
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## fc1 ~~
## fc2 0.440 0.075 5.839 0.000 0.421 0.421
## fc3 0.877 0.125 7.027 0.000 0.527 0.527
## fc4 0.539 0.083 6.511 0.000 0.550 0.550
## fc5 0.871 0.123 7.098 0.000 0.502 0.502
## fc6 0.914 0.119 7.683 0.000 0.564 0.564
## fc7 0.857 0.111 7.758 0.000 0.689 0.689
## fc8 0.428 0.093 4.619 0.000 0.328 0.328
## AFC 0.598 0.114 5.261 0.000 0.371 0.371
## SAT 0.411 0.081 5.066 0.000 0.364 0.364
## RPCH 0.235 0.052 4.523 0.000 0.316 0.316
## COCR 0.011 0.150 0.073 0.942 0.005 0.005
## fc2 ~~
## fc3 0.290 0.072 4.049 0.000 0.282 0.282
## fc4 0.283 0.051 5.527 0.000 0.469 0.469
## fc5 0.307 0.073 4.239 0.000 0.288 0.288
## fc6 0.285 0.068 4.190 0.000 0.285 0.285
## fc7 0.381 0.064 5.925 0.000 0.497 0.497
## fc8 0.474 0.068 6.959 0.000 0.589 0.589
## AFC 0.280 0.070 3.999 0.000 0.282 0.282
## SAT 0.286 0.053 5.413 0.000 0.411 0.411
## RPCH 0.124 0.033 3.811 0.000 0.270 0.270
## COCR -0.100 0.094 -1.063 0.288 -0.071 -0.071
## fc3 ~~
## fc4 0.430 0.078 5.501 0.000 0.447 0.447
## fc5 0.851 0.126 6.773 0.000 0.500 0.500
## fc6 0.797 0.117 6.787 0.000 0.501 0.501
## fc7 0.588 0.099 5.923 0.000 0.482 0.482
## fc8 0.441 0.093 4.754 0.000 0.344 0.344
## AFC 0.869 0.125 6.923 0.000 0.549 0.549
## SAT 0.426 0.083 5.142 0.000 0.384 0.384
## RPCH 0.262 0.055 4.775 0.000 0.358 0.358
## COCR 0.425 0.154 2.759 0.006 0.190 0.190
## fc4 ~~
## fc5 0.464 0.080 5.788 0.000 0.463 0.463
## fc6 0.571 0.082 6.999 0.000 0.610 0.610
## fc7 0.387 0.066 5.893 0.000 0.538 0.538
## fc8 0.295 0.060 4.885 0.000 0.391 0.391
## AFC 0.224 0.068 3.322 0.001 0.241 0.241
## SAT 0.245 0.051 4.757 0.000 0.375 0.375
## RPCH 0.131 0.032 4.072 0.000 0.305 0.305
## COCR 0.040 0.090 0.440 0.660 0.030 0.030
## fc5 ~~
## fc6 0.823 0.118 6.997 0.000 0.497 0.497
## fc7 0.795 0.109 7.328 0.000 0.625 0.625
## fc8 0.318 0.091 3.506 0.000 0.238 0.238
## AFC 0.609 0.117 5.225 0.000 0.369 0.369
## SAT 0.589 0.088 6.726 0.000 0.510 0.510
## RPCH 0.246 0.054 4.602 0.000 0.323 0.323
## COCR -0.013 0.154 -0.085 0.932 -0.006 -0.006
## fc6 ~~
## fc7 0.690 0.099 6.998 0.000 0.581 0.581
## fc8 0.451 0.091 4.972 0.000 0.362 0.362
## AFC 0.601 0.110 5.446 0.000 0.390 0.390
## SAT 0.446 0.079 5.649 0.000 0.414 0.414
## RPCH 0.240 0.050 4.762 0.000 0.338 0.338
## COCR 0.118 0.145 0.815 0.415 0.054 0.054
## fc7 ~~
## fc8 0.340 0.073 4.623 0.000 0.355 0.355
## AFC 0.437 0.092 4.761 0.000 0.369 0.369
## SAT 0.514 0.074 6.943 0.000 0.620 0.620
## RPCH 0.217 0.043 5.041 0.000 0.397 0.397
## COCR -0.148 0.121 -1.228 0.219 -0.088 -0.088
## fc8 ~~
## AFC 0.429 0.091 4.709 0.000 0.346 0.346
## SAT 0.236 0.064 3.697 0.000 0.272 0.272
## RPCH 0.094 0.039 2.374 0.018 0.164 0.164
## COCR -0.021 0.118 -0.179 0.858 -0.012 -0.012
## AFC ~~
## SAT 0.579 0.087 6.666 0.000 0.539 0.539
## RPCH 0.357 0.059 6.084 0.000 0.504 0.504
## COCR 0.504 0.151 3.328 0.001 0.232 0.232
## SAT ~~
## RPCH 0.293 0.043 6.783 0.000 0.590 0.590
## COCR -0.210 0.108 -1.949 0.051 -0.138 -0.138
## RPCH ~~
## COCR 0.025 0.068 0.367 0.713 0.025 0.025
##
## Intercepts:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Im3 4.917 0.083 59.212 0.000 4.917 3.558
## .Im4 4.917 0.085 57.913 0.000 4.917 3.480
## .Im5 4.913 0.083 59.234 0.000 4.913 3.559
## .Im8 6.036 0.062 96.591 0.000 6.036 5.804
## .Im10 6.097 0.053 115.358 0.000 6.097 6.931
## .Im14 6.123 0.053 116.529 0.000 6.123 7.002
## .Im20 4.643 0.090 51.497 0.000 4.643 3.094
## .Im21 5.105 0.086 59.437 0.000 5.105 3.571
## .Im22 4.217 0.094 45.023 0.000 4.217 2.705
## .Im11 5.617 0.069 80.954 0.000 5.617 4.864
## .Im12 5.625 0.069 81.779 0.000 5.625 4.914
## .Im13 5.361 0.078 69.096 0.000 5.361 4.152
## .Im1 4.791 0.083 57.868 0.000 4.791 3.477
## .Im2 4.892 0.078 62.719 0.000 4.892 3.768
## .Im17 4.968 0.078 63.693 0.000 4.968 3.827
## .Im18 4.527 0.084 54.011 0.000 4.527 3.245
## .Im16 5.116 0.076 67.683 0.000 5.116 4.067
## .Im19 5.094 0.073 70.238 0.000 5.094 4.220
## .Im6 5.830 0.073 79.854 0.000 5.830 4.798
## .Im7 5.747 0.071 81.209 0.000 5.747 4.879
## .Im9 5.032 0.080 62.548 0.000 5.032 3.758
## .COM_A1 4.321 0.091 47.449 0.000 4.321 2.851
## .COM_A2 3.852 0.099 38.937 0.000 3.852 2.340
## .COM_A3 3.567 0.096 37.027 0.000 3.567 2.225
## .COM_A4 3.527 0.104 33.932 0.000 3.527 2.039
## .SAT_1 5.274 0.062 85.624 0.000 5.274 5.145
## .SAT_2 5.404 0.064 84.926 0.000 5.404 5.103
## .SAT_3 5.495 0.064 85.452 0.000 5.495 5.134
## .C_REP1 4.289 0.044 98.020 0.000 4.289 5.889
## .C_REP2 4.509 0.037 121.758 0.000 4.509 7.316
## .C_REP3 4.664 0.035 134.865 0.000 4.664 8.103
## .C_CR1 2.830 0.123 23.049 0.000 2.830 1.385
## .C_CR3 3.321 0.127 26.101 0.000 3.321 1.568
## .C_CR4 2.881 0.122 23.541 0.000 2.881 1.414
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Im3 0.214 0.036 5.995 0.000 0.214 0.112
## .Im4 0.147 0.036 4.111 0.000 0.147 0.073
## .Im5 0.815 0.074 11.057 0.000 0.815 0.428
## .Im8 0.438 0.042 10.392 0.000 0.438 0.405
## .Im10 0.110 0.017 6.468 0.000 0.110 0.143
## .Im14 0.100 0.017 5.989 0.000 0.100 0.131
## .Im20 0.617 0.074 8.302 0.000 0.617 0.274
## .Im21 0.597 0.071 8.468 0.000 0.597 0.292
## .Im22 0.432 0.074 5.799 0.000 0.432 0.178
## .Im11 0.768 0.074 10.377 0.000 0.768 0.576
## .Im12 0.336 0.051 6.601 0.000 0.336 0.256
## .Im13 0.348 0.064 5.413 0.000 0.348 0.209
## .Im1 0.123 0.068 1.816 0.069 0.123 0.065
## .Im2 0.278 0.058 4.785 0.000 0.278 0.165
## .Im17 0.138 0.060 2.316 0.021 0.138 0.082
## .Im18 0.419 0.068 6.180 0.000 0.419 0.215
## .Im16 0.670 0.076 8.848 0.000 0.670 0.423
## .Im19 0.369 0.067 5.488 0.000 0.369 0.253
## .Im6 0.473 0.060 7.924 0.000 0.473 0.320
## .Im7 0.172 0.059 2.930 0.003 0.172 0.124
## .Im9 1.272 0.116 10.921 0.000 1.272 0.709
## .COM_A1 0.763 0.084 9.068 0.000 0.763 0.332
## .COM_A2 0.879 0.097 9.087 0.000 0.879 0.324
## .COM_A3 0.841 0.092 9.190 0.000 0.841 0.327
## .COM_A4 0.773 0.095 8.141 0.000 0.773 0.258
## .SAT_1 0.298 0.042 7.163 0.000 0.298 0.283
## .SAT_2 0.350 0.045 7.702 0.000 0.350 0.312
## .SAT_3 0.526 0.054 9.747 0.000 0.526 0.459
## .C_REP1 0.204 0.022 9.074 0.000 0.204 0.384
## .C_REP2 0.050 0.013 3.817 0.000 0.050 0.133
## .C_REP3 0.123 0.013 9.715 0.000 0.123 0.372
## .C_CR1 1.098 0.155 7.077 0.000 1.098 0.263
## .C_CR3 1.097 0.165 6.639 0.000 1.097 0.245
## .C_CR4 1.464 0.168 8.736 0.000 1.464 0.353
## fc1 1.697 0.164 10.334 0.000 1.000 1.000
## fc2 0.644 0.086 7.459 0.000 1.000 1.000
## fc3 1.634 0.191 8.540 0.000 1.000 1.000
## fc4 0.566 0.099 5.712 0.000 1.000 1.000
## fc5 1.775 0.174 10.180 0.000 1.000 1.000
## fc6 1.547 0.154 10.033 0.000 1.000 1.000
## fc7 0.913 0.132 6.932 0.000 1.000 1.000
## fc8 1.004 0.127 7.917 0.000 1.000 1.000
## AFC 1.534 0.192 8.001 0.000 1.000 1.000
## SAT 0.753 0.092 8.209 0.000 1.000 1.000
## RPCH 0.327 0.044 7.427 0.000 1.000 1.000
## COCR 3.079 0.364 8.455 0.000 1.000 1.000
The latents variables were built by definition as following :
Identically, the factors 1 to 8 are defined as found in previous
steps.
semPaths(fit_1, what = "path", whatLabels = "std", style = "mx",
rotation = 2, layout = "tree3", mar = c(1, 2, 1, 2),
nCharNodes = 7,shapeMan = "rectangle", sizeMan = 8, sizeMan2 = 5,
curvePivot=TRUE, edge.label.cex = 1.2, edge.color = "skyblue4")
The following R code sets up the model specifications, defines the relationships among factors and latent variables, and calculates the indirect and total effects to provide a comprehensive view of the causal relationships within the data. This model will include direct, indirect, and total effects among the latent variables and observed factors. By incorporating all effects, we aim to gain a deeper understanding of the interrelationships and influences among the variables.
model <- "
## Latent variables
fc1 =~ Im3 + Im4 + Im5
fc2 =~ Im8 + Im10 + Im14
fc3 =~ Im20 + Im21 + Im22
fc4 =~ Im11 + Im12 + Im13
fc5 =~ Im1 + Im2
fc6 =~ Im17 + Im18
fc7 =~ Im16 + Im19
fc8 =~ Im6 + Im7+ Im9
AFC =~ COM_A1 + COM_A2 + COM_A3 + COM_A4
SAT =~ SAT_1 + SAT_2 + SAT_3
REP =~ C_REP1 + C_REP2 + C_REP3
COCR =~ C_CR1 + C_CR3 + C_CR4
## Structural model
COCR ~ a*SAT + b*AFC
REP ~ d*SAT + e*AFC
SAT ~ g*fc1 + h*fc2 + i*fc3+ j*fc4 + k*fc5 + l*fc6 + m*fc7 + n*fc8
AFC ~ o*fc1 + p*fc2 + q*fc3 + r*fc4 + s*fc5 + t*fc6 + u*fc7 + v*fc8
COCR ~ x*fc1 + y*fc2 + z*fc3 + aa*fc4 + bb*fc5 + cc*fc6 + dd*fc7 + ee*fc8
REP ~ ff*fc1 + gg*fc2 + hh*fc3 + ii*fc4 + jj*fc5 + kk*fc6 + ll*fc7 + mm*fc8
## Indirect effects
ag := a*g
ah := a*h
ai := a*i
aj := a*j
ak := a*k
al := a*l
am := a*m
an := a*n
bo := b*o
bp := b*p
bq := b*q
br := b*r
bs := b*s
bt := b*t
bu := b*u
bv := b*v
dg := d*g
dh := d*h
di := d*i
dj := d*j
dk := d*k
dl := d*l
dm := d*m
dn := d*n
eo := e*o
ep := e*p
eq := e*q
er := e*r
es := e*s
et := e*t
eu := e*u
ev := e*v
### Total effects
t1c := x + (a*g) + (b*o)
t2c := y + (a*h) + (b*p)
t3c := z + (a*i) + (b*q)
t4c := aa + (a*j) + (b*r)
t5c := bb + (a*k) + (b*s)
t6c := cc + (a*l) + (b*t)
t7c := dd + (a*m) + (b*u)
t8c := ee + (a*n) + (b*v)
t1r := ff + (d*g) + (e*o)
t2r := gg + (d*h) + (e*p)
t3r := hh + (d*i) + (e*q)
t4r := ii + (d*j) + (e*r)
t5r := jj + (d*k) + (e*s)
t6r := kk + (d*l) + (e*t)
t7r := ll + (d*m) + (e*u)
t8r := mm + (d*n) + (e*v)
## Indirect total effects
ti1c := (a*g)+(b*o)
ti2c := (a*h)+(b*p)
ti3c := (a*i)+(b*q)
ti4c := (a*j)+(b*r)
ti5c := (a*k)+(b*s)
ti6c := (a*l)+(b*t)
ti7c := (a*m)+(b*u)
ti8c := (a*n)+(b*v)
ti1r := (d*g)+(e*o)
ti2r := (d*h)+(e*p)
ti3r := (d*i)+(e*q)
ti4r := (d*j)+(e*r)
ti5r := (d*k)+(e*s)
ti6r := (d*l)+(e*t)
ti7r := (d*m)+(e*u)
ti8r := (d*n)+(e*v)
"
fit <- cfa(model, data = data_clean, missing = "ML")
summary(fit, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.6.17 ended normally after 88 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 167
##
## Number of observations 277
## Number of missing patterns 1
##
## Model Test User Model:
##
## Test statistic 888.845
## Degrees of freedom 462
## P-value (Chi-square) 0.000
##
## Model Test Baseline Model:
##
## Test statistic 7452.346
## Degrees of freedom 561
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.938
## Tucker-Lewis Index (TLI) 0.925
##
## Robust Comparative Fit Index (CFI) 0.938
## Robust Tucker-Lewis Index (TLI) 0.925
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -12204.116
## Loglikelihood unrestricted model (H1) -11759.694
##
## Akaike (AIC) 24742.233
## Bayesian (BIC) 25347.443
## Sample-size adjusted Bayesian (SABIC) 24817.910
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.058
## 90 Percent confidence interval - lower 0.052
## 90 Percent confidence interval - upper 0.063
## P-value H_0: RMSEA <= 0.050 0.014
## P-value H_0: RMSEA >= 0.080 0.000
##
## Robust RMSEA 0.058
## 90 Percent confidence interval - lower 0.052
## 90 Percent confidence interval - upper 0.063
## P-value H_0: Robust RMSEA <= 0.050 0.014
## P-value H_0: Robust RMSEA >= 0.080 0.000
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.060
##
## 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
## fc1 =~
## Im3 1.000 1.303 0.943
## Im4 1.043 0.033 31.149 0.000 1.359 0.962
## Im5 0.801 0.047 17.138 0.000 1.044 0.756
## fc2 =~
## Im8 1.000 0.803 0.772
## Im10 1.015 0.060 17.002 0.000 0.815 0.926
## Im14 1.015 0.060 17.007 0.000 0.815 0.932
## fc3 =~
## Im20 1.000 1.277 0.851
## Im21 0.941 0.054 17.403 0.000 1.202 0.841
## Im22 1.107 0.060 18.473 0.000 1.414 0.907
## fc4 =~
## Im11 1.000 0.754 0.653
## Im12 1.314 0.110 11.950 0.000 0.990 0.865
## Im13 1.518 0.135 11.224 0.000 1.145 0.886
## fc5 =~
## Im1 1.000 1.333 0.967
## Im2 0.889 0.043 20.813 0.000 1.186 0.913
## fc6 =~
## Im17 1.000 1.243 0.958
## Im18 0.995 0.051 19.519 0.000 1.236 0.886
## fc7 =~
## Im16 1.000 0.951 0.756
## Im19 1.095 0.085 12.954 0.000 1.042 0.863
## fc8 =~
## Im6 1.000 1.005 0.827
## Im7 1.094 0.069 15.764 0.000 1.099 0.933
## Im9 0.721 0.078 9.216 0.000 0.724 0.541
## AFC =~
## COM_A1 1.000 1.240 0.818
## COM_A2 1.099 0.069 15.946 0.000 1.363 0.828
## COM_A3 1.057 0.070 15.194 0.000 1.310 0.817
## COM_A4 1.198 0.075 16.032 0.000 1.485 0.858
## SAT =~
## SAT_1 1.000 0.882 0.860
## SAT_2 0.976 0.066 14.694 0.000 0.861 0.813
## SAT_3 0.898 0.066 13.520 0.000 0.792 0.740
## REP =~
## C_REP1 1.000 0.561 0.779
## C_REP2 1.005 0.065 15.477 0.000 0.564 0.929
## C_REP3 0.799 0.058 13.800 0.000 0.448 0.787
## COCR =~
## C_CR1 1.000 1.783 0.862
## C_CR3 1.049 0.063 16.570 0.000 1.870 0.873
## C_CR4 0.933 0.061 15.279 0.000 1.665 0.809
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## COCR ~
## SAT (a) -0.658 0.205 -3.207 0.001 -0.326 -0.326
## AFC (b) 0.502 0.126 3.975 0.000 0.349 0.349
## REP ~
## SAT (d) 0.280 0.063 4.444 0.000 0.441 0.441
## AFC (e) 0.137 0.036 3.810 0.000 0.303 0.303
## SAT ~
## fc1 (g) -0.160 0.062 -2.583 0.010 -0.237 -0.237
## fc2 (h) 0.211 0.095 2.213 0.027 0.192 0.192
## fc3 (i) 0.086 0.052 1.650 0.099 0.125 0.125
## fc4 (j) -0.058 0.102 -0.571 0.568 -0.050 -0.050
## fc5 (k) 0.121 0.055 2.218 0.027 0.183 0.183
## fc6 (l) 0.063 0.062 1.023 0.306 0.089 0.089
## fc7 (m) 0.470 0.121 3.873 0.000 0.507 0.507
## fc8 (n) -0.033 0.069 -0.481 0.630 -0.038 -0.038
## AFC ~
## fc1 (o) -0.007 0.085 -0.080 0.936 -0.007 -0.007
## fc2 (p) 0.119 0.130 0.911 0.362 0.077 0.077
## fc3 (q) 0.413 0.076 5.449 0.000 0.425 0.425
## fc4 (r) -0.354 0.146 -2.429 0.015 -0.215 -0.215
## fc5 (s) 0.063 0.075 0.842 0.400 0.067 0.067
## fc6 (t) 0.146 0.086 1.691 0.091 0.146 0.146
## fc7 (u) 0.143 0.158 0.903 0.366 0.109 0.109
## fc8 (v) 0.162 0.095 1.708 0.088 0.131 0.131
## COCR ~
## fc1 (x) -0.114 0.142 -0.803 0.422 -0.083 -0.083
## fc2 (y) -0.025 0.209 -0.122 0.903 -0.011 -0.011
## fc3 (z) 0.251 0.129 1.947 0.052 0.180 0.180
## fc4 (aa) 0.233 0.232 1.008 0.314 0.099 0.099
## fc5 (bb) -0.007 0.118 -0.056 0.955 -0.005 -0.005
## fc6 (cc) 0.045 0.137 0.326 0.744 0.031 0.031
## fc7 (dd) -0.140 0.272 -0.513 0.608 -0.075 -0.075
## fc8 (ee) -0.167 0.152 -1.096 0.273 -0.094 -0.094
## REP ~
## fc1 (ff) 0.018 0.040 0.457 0.647 0.042 0.042
## fc2 (gg) 0.024 0.059 0.401 0.688 0.034 0.034
## fc3 (hh) 0.010 0.037 0.281 0.779 0.023 0.023
## fc4 (ii) 0.073 0.065 1.119 0.263 0.098 0.098
## fc5 (jj) -0.028 0.033 -0.849 0.396 -0.067 -0.067
## fc6 (kk) 0.015 0.039 0.383 0.702 0.033 0.033
## fc7 (ll) -0.014 0.078 -0.177 0.860 -0.023 -0.023
## fc8 (mm) -0.070 0.043 -1.631 0.103 -0.126 -0.126
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## fc1 ~~
## fc2 0.441 0.075 5.842 0.000 0.421 0.421
## fc3 0.879 0.125 7.035 0.000 0.528 0.528
## fc4 0.540 0.083 6.520 0.000 0.549 0.549
## fc5 0.872 0.123 7.101 0.000 0.502 0.502
## fc6 0.916 0.119 7.691 0.000 0.565 0.565
## fc7 0.857 0.110 7.758 0.000 0.691 0.691
## fc8 0.432 0.093 4.638 0.000 0.330 0.330
## fc2 ~~
## fc3 0.289 0.072 4.047 0.000 0.282 0.282
## fc4 0.285 0.051 5.552 0.000 0.470 0.470
## fc5 0.308 0.073 4.239 0.000 0.287 0.287
## fc6 0.285 0.068 4.190 0.000 0.285 0.285
## fc7 0.380 0.064 5.924 0.000 0.498 0.498
## fc8 0.475 0.068 6.969 0.000 0.589 0.589
## fc3 ~~
## fc4 0.430 0.078 5.500 0.000 0.446 0.446
## fc5 0.851 0.126 6.776 0.000 0.500 0.500
## fc6 0.796 0.117 6.785 0.000 0.501 0.501
## fc7 0.584 0.099 5.906 0.000 0.481 0.481
## fc8 0.443 0.093 4.763 0.000 0.345 0.345
## fc4 ~~
## fc5 0.464 0.080 5.786 0.000 0.462 0.462
## fc6 0.571 0.082 6.995 0.000 0.609 0.609
## fc7 0.388 0.066 5.911 0.000 0.541 0.541
## fc8 0.297 0.061 4.901 0.000 0.392 0.392
## fc5 ~~
## fc6 0.823 0.118 6.993 0.000 0.497 0.497
## fc7 0.793 0.108 7.325 0.000 0.626 0.626
## fc8 0.320 0.091 3.515 0.000 0.239 0.239
## fc6 ~~
## fc7 0.688 0.098 6.989 0.000 0.582 0.582
## fc8 0.454 0.091 4.992 0.000 0.364 0.364
## fc7 ~~
## fc8 0.340 0.073 4.628 0.000 0.356 0.356
## .REP ~~
## .COCR 0.011 0.051 0.206 0.837 0.015 0.015
##
## Intercepts:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Im3 4.917 0.083 59.212 0.000 4.917 3.558
## .Im4 4.917 0.085 57.913 0.000 4.917 3.480
## .Im5 4.913 0.083 59.234 0.000 4.913 3.559
## .Im8 6.036 0.062 96.591 0.000 6.036 5.804
## .Im10 6.097 0.053 115.358 0.000 6.097 6.931
## .Im14 6.123 0.053 116.529 0.000 6.123 7.002
## .Im20 4.643 0.090 51.497 0.000 4.643 3.094
## .Im21 5.105 0.086 59.437 0.000 5.105 3.571
## .Im22 4.217 0.094 45.023 0.000 4.217 2.705
## .Im11 5.617 0.069 80.954 0.000 5.617 4.864
## .Im12 5.625 0.069 81.779 0.000 5.625 4.914
## .Im13 5.361 0.078 69.096 0.000 5.361 4.152
## .Im1 4.791 0.083 57.868 0.000 4.791 3.477
## .Im2 4.892 0.078 62.719 0.000 4.892 3.768
## .Im17 4.968 0.078 63.694 0.000 4.968 3.827
## .Im18 4.527 0.084 54.011 0.000 4.527 3.245
## .Im16 5.116 0.076 67.683 0.000 5.116 4.067
## .Im19 5.094 0.073 70.238 0.000 5.094 4.220
## .Im6 5.830 0.073 79.854 0.000 5.830 4.798
## .Im7 5.747 0.071 81.208 0.000 5.747 4.879
## .Im9 5.032 0.080 62.548 0.000 5.032 3.758
## .COM_A1 4.321 0.091 47.449 0.000 4.321 2.851
## .COM_A2 3.852 0.099 38.937 0.000 3.852 2.340
## .COM_A3 3.567 0.096 37.027 0.000 3.567 2.225
## .COM_A4 3.527 0.104 33.932 0.000 3.527 2.039
## .SAT_1 5.274 0.062 85.624 0.000 5.274 5.145
## .SAT_2 5.404 0.064 84.926 0.000 5.404 5.103
## .SAT_3 5.495 0.064 85.451 0.000 5.495 5.134
## .C_REP1 4.289 0.043 99.114 0.000 4.289 5.955
## .C_REP2 4.509 0.036 123.687 0.000 4.509 7.432
## .C_REP3 4.664 0.034 136.402 0.000 4.664 8.196
## .C_CR1 2.830 0.124 22.778 0.000 2.830 1.369
## .C_CR3 3.321 0.129 25.787 0.000 3.321 1.549
## .C_CR4 2.881 0.124 23.298 0.000 2.881 1.400
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Im3 0.211 0.036 5.928 0.000 0.211 0.110
## .Im4 0.149 0.036 4.176 0.000 0.149 0.075
## .Im5 0.815 0.074 11.051 0.000 0.815 0.428
## .Im8 0.437 0.042 10.382 0.000 0.437 0.404
## .Im10 0.110 0.017 6.475 0.000 0.110 0.143
## .Im14 0.101 0.017 6.031 0.000 0.101 0.132
## .Im20 0.619 0.074 8.327 0.000 0.619 0.275
## .Im21 0.599 0.071 8.499 0.000 0.599 0.293
## .Im22 0.431 0.074 5.818 0.000 0.431 0.178
## .Im11 0.766 0.074 10.410 0.000 0.766 0.574
## .Im12 0.329 0.050 6.525 0.000 0.329 0.251
## .Im13 0.358 0.064 5.594 0.000 0.358 0.214
## .Im1 0.122 0.067 1.816 0.069 0.122 0.064
## .Im2 0.280 0.058 4.859 0.000 0.280 0.166
## .Im17 0.140 0.059 2.368 0.018 0.140 0.083
## .Im18 0.417 0.067 6.203 0.000 0.417 0.214
## .Im16 0.678 0.076 8.937 0.000 0.678 0.428
## .Im19 0.372 0.069 5.408 0.000 0.372 0.255
## .Im6 0.467 0.060 7.799 0.000 0.467 0.316
## .Im7 0.179 0.059 3.031 0.002 0.179 0.129
## .Im9 1.268 0.116 10.917 0.000 1.268 0.707
## .COM_A1 0.760 0.084 9.006 0.000 0.760 0.331
## .COM_A2 0.854 0.096 8.914 0.000 0.854 0.315
## .COM_A3 0.853 0.093 9.170 0.000 0.853 0.332
## .COM_A4 0.787 0.097 8.135 0.000 0.787 0.263
## .SAT_1 0.273 0.042 6.582 0.000 0.273 0.260
## .SAT_2 0.380 0.047 8.074 0.000 0.380 0.339
## .SAT_3 0.518 0.054 9.666 0.000 0.518 0.452
## .C_REP1 0.204 0.022 9.087 0.000 0.204 0.393
## .C_REP2 0.050 0.013 3.805 0.000 0.050 0.137
## .C_REP3 0.123 0.013 9.715 0.000 0.123 0.380
## .C_CR1 1.097 0.155 7.074 0.000 1.097 0.257
## .C_CR3 1.097 0.165 6.640 0.000 1.097 0.239
## .C_CR4 1.464 0.168 8.742 0.000 1.464 0.346
## fc1 1.699 0.164 10.346 0.000 1.000 1.000
## fc2 0.645 0.086 7.463 0.000 1.000 1.000
## fc3 1.632 0.191 8.532 0.000 1.000 1.000
## fc4 0.568 0.099 5.743 0.000 1.000 1.000
## fc5 1.776 0.174 10.203 0.000 1.000 1.000
## fc6 1.545 0.154 10.033 0.000 1.000 1.000
## fc7 0.904 0.131 6.897 0.000 1.000 1.000
## fc8 1.010 0.127 7.936 0.000 1.000 1.000
## .AFC 0.962 0.130 7.423 0.000 0.626 0.626
## .SAT 0.419 0.062 6.795 0.000 0.539 0.539
## .REP 0.191 0.026 7.237 0.000 0.608 0.608
## .COCR 2.511 0.312 8.041 0.000 0.790 0.790
##
## Defined Parameters:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## ag 0.106 0.052 2.013 0.044 0.077 0.077
## ah -0.139 0.077 -1.810 0.070 -0.063 -0.063
## ai -0.057 0.039 -1.454 0.146 -0.041 -0.041
## aj 0.038 0.068 0.563 0.573 0.016 0.016
## ak -0.080 0.044 -1.823 0.068 -0.060 -0.060
## al -0.041 0.043 -0.974 0.330 -0.029 -0.029
## am -0.309 0.124 -2.500 0.012 -0.165 -0.165
## an 0.022 0.046 0.474 0.635 0.012 0.012
## bo -0.003 0.043 -0.080 0.936 -0.002 -0.002
## bp 0.060 0.067 0.892 0.373 0.027 0.027
## bq 0.207 0.063 3.290 0.001 0.148 0.148
## br -0.178 0.086 -2.070 0.038 -0.075 -0.075
## bs 0.031 0.038 0.826 0.409 0.024 0.024
## bt 0.073 0.047 1.564 0.118 0.051 0.051
## bu 0.072 0.082 0.876 0.381 0.038 0.038
## bv 0.081 0.052 1.566 0.117 0.046 0.046
## dg -0.045 0.020 -2.222 0.026 -0.104 -0.104
## dh 0.059 0.029 2.015 0.044 0.085 0.085
## di 0.024 0.015 1.563 0.118 0.055 0.055
## dj -0.016 0.029 -0.565 0.572 -0.022 -0.022
## dk 0.034 0.017 2.017 0.044 0.081 0.081
## dl 0.018 0.018 0.999 0.318 0.039 0.039
## dm 0.132 0.046 2.881 0.004 0.223 0.223
## dn -0.009 0.019 -0.480 0.631 -0.017 -0.017
## eo -0.001 0.012 -0.080 0.936 -0.002 -0.002
## ep 0.016 0.018 0.889 0.374 0.023 0.023
## eq 0.057 0.018 3.156 0.002 0.129 0.129
## er -0.049 0.024 -2.045 0.041 -0.065 -0.065
## es 0.009 0.010 0.821 0.411 0.020 0.020
## et 0.020 0.013 1.550 0.121 0.044 0.044
## eu 0.020 0.022 0.881 0.378 0.033 0.033
## ev 0.022 0.014 1.552 0.121 0.040 0.040
## t1c -0.012 0.142 -0.082 0.935 -0.008 -0.008
## t2c -0.105 0.217 -0.482 0.630 -0.047 -0.047
## t3c 0.401 0.124 3.241 0.001 0.288 0.288
## t4c 0.094 0.238 0.395 0.693 0.040 0.040
## t5c -0.055 0.124 -0.443 0.657 -0.041 -0.041
## t6c 0.076 0.143 0.533 0.594 0.053 0.053
## t7c -0.378 0.254 -1.489 0.137 -0.201 -0.201
## t8c -0.063 0.158 -0.400 0.689 -0.036 -0.036
## t1r -0.028 0.041 -0.668 0.504 -0.064 -0.064
## t2r 0.099 0.065 1.534 0.125 0.142 0.142
## t3r 0.091 0.037 2.488 0.013 0.207 0.207
## t4r 0.008 0.069 0.114 0.909 0.011 0.011
## t5r 0.014 0.036 0.398 0.691 0.034 0.034
## t6r 0.052 0.042 1.249 0.212 0.116 0.116
## t7r 0.138 0.077 1.798 0.072 0.233 0.233
## t8r -0.057 0.047 -1.229 0.219 -0.103 -0.103
## ti1c 0.102 0.064 1.597 0.110 0.075 0.075
## ti2c -0.079 0.094 -0.845 0.398 -0.036 -0.036
## ti3c 0.150 0.068 2.201 0.028 0.108 0.108
## ti4c -0.139 0.102 -1.364 0.173 -0.059 -0.059
## ti5c -0.048 0.054 -0.900 0.368 -0.036 -0.036
## ti6c 0.032 0.059 0.540 0.589 0.022 0.022
## ti7c -0.238 0.130 -1.825 0.068 -0.127 -0.127
## ti8c 0.103 0.066 1.558 0.119 0.058 0.058
## ti1r -0.046 0.025 -1.869 0.062 -0.107 -0.107
## ti2r 0.075 0.036 2.085 0.037 0.108 0.108
## ti3r 0.081 0.024 3.400 0.001 0.184 0.184
## ti4r -0.065 0.039 -1.664 0.096 -0.087 -0.087
## ti5r 0.043 0.021 2.060 0.039 0.101 0.101
## ti6r 0.038 0.023 1.653 0.098 0.083 0.083
## ti7r 0.151 0.055 2.747 0.006 0.256 0.256
## ti8r 0.013 0.025 0.506 0.613 0.023 0.023
The 90% confidence interval for RMSEA ranges from 0.052 (lower) to 0.063 (upper). These values suggest that the RMSEA estimate is reasonably low, indicating a good fit for the model. The RMSEA falls slightly above the conventional threshold of 0.050, which might indicate room for improvement in model fit.
A CFI and TLI close to 1 (ideally ≥ 0.95) indicate a good fit. Your values (0.938 for CFI and 0.925 for TLI) suggest a reasonably good fit but could potentially be improved.
Some improvements can be done when analyzing the regression p-values,
factor loadings and total and indirect effects signification as
follow:
Negative Impact of Satisfaction: A statistically
significant negative relationship (coefficient = -0.658, p = 0.01)
indicates that higher satisfaction may reduce the perceived need for
customer input in co-creation, suggesting contentment with current
offerings.
Positive Impact of Affective Commitment: A
significant positive coefficient (0.502, p < 0.001) demonstrates that
emotional attachment enhances the likelihood of customer participation
in co-creation activities.
COCR: Factors 3 and 7 are crucial, with strong
positive effects on co-creation intentions (p-values of 0.001 and 0.007,
respectively), underscoring their importance in fostering customer
engagement.
REP: Factors 3 and 7 also significantly impact
repurchase intentions, highlighting their role in customer loyalty,
although Factor 7’s influence is marginal (p = 0.072).
Focus on Critical Factors: Strengthening Factors
3 (Shopping Experience) and 7 (Professionalism and Service) should be
prioritized, as they significantly enhance both co-creation intent and
repurchase intentions.
Reevaluate Underperforming Factors: Factors with
non-significant impacts on key outcomes should be reassessed. This may
involve reviewing how these factors are defined and integrated into the
customer experience.
Are the mechanism driving satisfaction and affective commitment
similar? Are satisfaction and affective commitment mediating the impact
of image perceptions on outcomes?
Satisfaction (SAT) and affective commitment (AFC) are influenced by distinct factors, as revealed by the regression estimates in the CFA model:
SAT is significantly influenced by store professionalism and
service (fc7) (Std.all = 0.507) and has weaker relationships with other
factors such as store presentation and aesthetics (fc1), gourmet and
specialty offerings (fc2), and product diversity (fc5).
AFC, on the other hand, is primarily driven by shopping
experience (fc3) (Std.all = 0.425) and negatively affected by high-end
products (fc4) (Std.all = -0.215).
The distinct factors influencing SAT and AFC suggest that
satisfaction (SAT) is more related to perceived professionalism and
service quality, while affective commitment (AFC) is more influenced by
the overall shopping experience and perceptions of high-end
products.
Therefore, SAT and AFC, being influenced by different image perceptions, act as mediators between these perceptions and behavioral intentions (COCR and REP).
Moreover, AFC, influenced by shopping experience and high-end
products, also plays a role in shaping customer loyalty and intention to
engage in co-creation activities.
What is driving the two distinct outcomes (repurchase and co-creation
intention): Please rank the image dimensions with respect to the total
effect on each outcome?
For COCR (Co-Creation Intent): Affective commitment appears to be a
significant mediator, especially if image factors related to emotional
and value alignment (like “French Cultural Appeal”) enhance affective
commitment, which in turn promotes co-creation intent.
For REP (Repurchase Intention): Both satisfaction and affective
commitment likely mediate the impact of image perceptions. For instance,
high satisfaction with “Gourmet and Specialty Offerings” or
“Professionalism and Service” can lead to higher repurchase intentions,
directly and through enhanced affective commitment.
Significant Positive Effect:
t3c (fc3 - Shopping Experience): The factor “Shopping Experience”
(fc3) has a significant positive total effect on co-creation intention
(COCR) with a standardized coefficient (std.all) of 0.288 (p-value =
0.001). This suggests that a positive shopping experience strongly
influences customers’ intention to engage in co-creation activities…
ti7r (fc7 - Professionalism and Service): Similarly, this indirect effect is significant (std.all = 0.256, p-value = 0.006), indicating that the impact of “Professionalism and Service” (fc7) on COCR is mediated through SAT and/or AFC.
ti2r (fc2 - Gourmet and Specialty Offerings): has an indirect
effect and is marginally significant (std.all = 0.108, p-value
= 0.037), suggesting a partial mediation through SAT and/or AFC.
Significant Positive Effect:
t3r (fc3 - Shopping Experience): Similarly, “Shopping Experience”
(fc3) also shows a significant positive total effect on repurchase
intention (REP) with a std.all of 0.207 (p-value = 0.013). This suggests
that a positive shopping experience increases customers’ likelihood of
repurchasing from the store..
Marginally Significant Effect:
t7r (fc7 - Professionalism and Service): The factor “Professionalism and Service” (fc7) has a marginally significant positive total effect on REP (std.all = 0.233, p-value = 0.072), indicating that better professionalism and service might influence repurchase intention…
ti7r (fc7 - Professionalism and Service): Similarly, this indirect effect is significant (std.all = 0.256, p-value = 0.006), indicating mediation of the influence of “Professionalism and Service” (fc7) on REP through SAT and/or AFC.
ti5r (fc5 - Product Diversity): This indirect effect is marginally significant (std.all = 0.101, p-value = 0.039), suggesting partial mediation through SAT and/or AFC.
semPaths(fit, what = "path", whatLabels = "std", style = "mx",
rotation = 2, layout = "tree3", mar = c(1, 2, 1, 2),
nCharNodes = 7,shapeMan = "rectangle", sizeMan = 8, sizeMan2 = 5,
curvePivot=TRUE, edge.label.cex = 1.2, edge.color = "skyblue4")