Introduction

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.

$$$$

The Label of the 22 images

  • Im1, Large Assortment
  • Im2, Assortment Variety
  • Im3, Artistic Decoration of Sales Area
  • Im4, Creative Decoration of Sales Area
  • Im5, Appealing Arrangement of Shop Windows
  • Im6, France
  • Im7, French Savoir-vivre
  • Im8, Expertise in French Traditional Cuisine
  • Im9, French Fashion
  • Im10, Gourmet Food
  • Im11, High-quality Cosmetics
  • Im12, Luxury brands
  • Im13, Up tp date Designer Brands
  • Im14, Gourmet specialities
  • Im15, Professional Selection of Brands
  • Im16, Professional Appearance Towards Customers
  • Im17, Are Trendy
  • Im18, Are Hip
  • Im19, Professional Organization
  • Im20, Relaxing Shopping
  • Im21, A Great Place to Stroll
  • Im22, Intimate Shop Atmosphere

$$$$

Load and explore the data

Add libraries

# 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 Data

# Load the dataset
myData <- read_csv("Case Study III_Structural Equation Modeling.csv")

Inspect the Data

# 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.

Creating a Subdata with the 22 images

# 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.

$$$$

Factor Analysis

Step 1. Calculate correlation matrix

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.

$$$$

Step 2. Check adequacy of correlation matrix


#### 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.

Kaiser-Meyer-Olkin Criterion

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.

$$$$

Step 3. Choose factor extraction method

Principal axes factoring with Varimax rotation

$$$$

Step 4. Factor extraction (determine the number of factors)

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.

Factor analysis on 22 images

# 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%.

Scree plot

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.

$$$$

Question 1

What are the dimensions by which Galeries Lafayette is perceived? Please explain your findings and rational for your final result.

Step 5. Factor rotation and factor interpretation

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.

Factor analysis with 6 factors

# 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
Key Findings:

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.

$$$$

Factor analysis with 7 factors

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
Key Findings:

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.

$$$$

Factor analysis with 8 factors

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
Key Findings:

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.

$$$$

Factor analysis with 8 factors (without Im15)

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.

Im15 Removal

# Remove the columns Im15
data_image_clean_2 <- data_image_clean[, !colnames(data_image_clean) %in% c("Im15")]


Running 8 Factor Analysis Without 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
Key Findings:

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.

Observations on Specific Items:

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.

Conclusion and Next Steps:

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?”

$$$$

Factors interpretation

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.

Scree plot with all Variables

# 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.

New PCA with 8 factors (data_clean)

# 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
Key Findings:

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.

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 :

  • AFC (Affective Commitment): This variable captures the emotional attachment and loyalty a customer feels toward Galeries Lafayette.

  • SAT (Customer Satisfaction): This variable represents the overall contentment of customers with their shopping experience at the store.

  • REP (Repurchase Intention): This variable gauges the likelihood that a customer will return to make future purchases.

  • COCR (Co-Creation Intention): This variable reflects the customer’s willingness to engage in collaborative activities with the brand, such as participating in product design or feedback initiatives.

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")

Confirmatory Factor Analysis with regression

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

Summary of CFA Model Results

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:

Co-Creation Intent (COCR)

  • 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.

Repurchase Intention (REP)

  • Influences of Satisfaction and Commitment: Both satisfaction (0.280, p < 0.001) and affective commitment (0.137, p < 0.001) positively influence repurchase intentions, indicating that both contentment and emotional connection drive repeat purchasing behaviors.

Customer Satisfaction (SAT)

  • Mixed Factor Influences: Various factors influence satisfaction differently; notably, Factor 7 (Professionalism and Service) has a strong positive effect (0.470, p < 0.001), enhancing satisfaction significantly, whereas Factor 4 shows no significant impact.

Affective Commitment (AFC)

  • Diverse Influences: Factor 3 (Shopping Experience) positively affects affective commitment (0.413, p < 0.001), strengthening emotional bonds. In contrast, Factor 4 negatively impacts commitment (-0.354, p = 0.015), suggesting some elements may detract from emotional engagement.

Summary of Total Effects

Significant Findings:

  • 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).

Strategic Implications

  • 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.

Question 2

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.

Question 3

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.

Co-Creation Intention (COCR) Total Effects:

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.

Repurchase Intention (REP) Total Effects:

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")