Chương này tập trung vào mô hình đường dẫn (Path Model) và mô hình cấu trúc đầy đủ (Full Structural Model). Mô hình đường dẫn tập trung vào việc mô tả và ước lượng các mối quan hệ nhân quả trực tiếp và gián tiếp giữa các biến tiềm ẩn, phản ánh logic lý thuyết và các giả thuyết nghiên cứu được đề xuất. Trong khi đó, mô hình cấu trúc đầy đủ mở rộng mô hình đường dẫn bằng cách tích hợp đồng thời cả mô hình đo lường và mô hình cấu trúc, cho phép đánh giá toàn diện mối quan hệ giữa các khái niệm tiềm ẩn và các chỉ báo quan sát. Điểm khác biệt cốt lõi giữa các mô hình này với mô hình CFA nằm ở mục tiêu phân tích. CFA chỉ tập trung kiểm định cấu trúc đo lường, tức là mức độ các biến quan sát đại diện cho các khái niệm tiềm ẩn, mà không xem xét các quan hệ nhân quả giữa các khái niệm đó. Ngược lại, mô hình đường dẫn và mô hình cấu trúc đầy đủ cho phép kiểm định trực tiếp các giả thuyết nhân quả, qua đó cung cấp bằng chứng thực nghiệm sâu hơn về cơ chế tác động giữa các biến trong nghiên cứu.
Giả sử chúng ta xây dựng một mô hình đơn giản nhằm kiểm định liệu “Adaptive Behavior” và một cấu trúc (còn gọi là thang đo) khác gọi là “Servicescape” có tác động trực tiếp đến nhận thức của khách hàng về Customer Delight hay không. Nói rõ hơn, Servicescape được hiểu là nhận thức của khách hàng về môi trường vật chất nơi dịch vụ diễn ra. Khái niệm này có thể bao gồm bầu không khí chung, cách bài trí không gian, nội thất, cũng như các yếu tố thuộc về môi trường như cách trưng bày, màu sắc và các đặc điểm thẩm mỹ khác. Từ cấu trúc Customer Delight, chúng ta tiếp tục xem xét liệu nó có mối quan hệ với Positive Word of Mouth (WOM) hay không, đồng thời khảo sát thêm một cấu trúc khác gọi là “Tolerance to Future Failures”. Khái niệm Tolerance to Future Failures phản ánh mức độ khách hàng sẵn sàng khoan dung nếu trong tương lai xảy ra một sự cố hoặc thất bại dịch vụ. Nói cách khác, đây là khả năng khách hàng chấp nhận và bỏ qua các lỗi dịch vụ về sau, thay vì phản ứng tiêu cực hoặc rời bỏ nhà cung cấp. Nhà nghiên cứu mô hình hóa ý tưởng nghiên cứu của mình bằng diagram kiểu dưới đây:
Mô hình này được gọi là phân tích đường dẫn (Path Analysis - PA). Dưới đây là R codes để thực hiện mô hình PA trên:
library(lavaan) # Gói lavaan cho phân tích CFA, EFA, SEM.
library(lavaanPlot) # Để vẽ các sơ đồ CFA, SEM nếu cần.
library(haven) # Sử dụng để load dữ liệu định dạng .sav của phần mềm SPSS-AMOS.
library(dplyr) # Dùng cho xử lí dữ liệu.
library(readr) # Package cho đọc file csv.
library(kableExtra) # Package trình bày bảng - biểu.
rm(list = ls()) # Làm sạch môi trường R trước khi thực hiện phân tích.
read_sav("E:\\Project_PLS_SEM\\CustomerDelightData_Student.sav") -> customerDat
# Xác định mô hình PA:
path_model <- "
# Regressions (structural paths):
comp_delight ~ comp_adapt + comp_servicescape
comp_WOM ~ comp_delight
comp_ToleranceFail ~ comp_delight
# Covariance among exogenous predictors:
comp_adapt ~~ comp_servicescape"
# Chạy mô hình:
fit_path <- sem(
model = path_model,
data = customerDat,
meanstructure = TRUE
)
# Xem kết quả:
summary(fit_path,
fit.measures = TRUE,
standardized = TRUE,
rsquare = TRUE) -> resultsPAĐể xem kết quả, gõ resultsPA. Tuy nhiên chúng ta không
cần phải trình bày tất cả các kết quả này mà sẽ chỉ tập trung vào một số
kết quả chính dưới đây. Trước hết là ảnh hưởng giữa các nhân tố:
# Extract hệ số hồi quy (cả chuẩn hóa lẫn không chuẩn hóa):
resultsPA$pe -> hoiquyPA
# Show các hệ số hồi quy và làm tròn 3 chữ số sau dấu phẩy:
hoiquyPA %>%
filter(op == "~") %>%
select(-op, -exo) %>%
mutate_if(is.numeric, function(x) {round(x, 3)}) %>%
kbl(caption = "Bảng 1: Các hệ số hồi quy từ mô hình PA") %>%
kable_classic(full_width = FALSE, html_font = "Cambria")| lhs | rhs | est | se | z | pvalue | std.lv | std.all |
|---|---|---|---|---|---|---|---|
| comp_delight | comp_adapt | 0.513 | 0.033 | 15.382 | 0 | 0.513 | 0.568 |
| comp_delight | comp_servicescape | 0.191 | 0.038 | 5.059 | 0 | 0.191 | 0.187 |
| comp_WOM | comp_delight | 0.648 | 0.059 | 11.076 | 0 | 0.648 | 0.444 |
| comp_ToleranceFail | comp_delight | 0.630 | 0.046 | 13.743 | 0 | 0.630 | 0.524 |
Kết quả cho thấy rằng cả hai cấu trúc Adaptive Behavior và Servicescape đều có mối quan hệ với Customer Delight. Còn các hệ số hồi quy chuẩn hóa cho thấy Adaptive Behavior có mức độ tác động tương đối mạnh hơn đến Customer Delight (0.568) so với Servicescape (0.187). Ảnh hưởng của Customer Delight đối với Positive Word of Mouth và Tolerance to Future Failures đều đạt ý nghĩa thống kê. Khi tiếp tục xem xét các hệ số hồi quy chuẩn hóa, có thể thấy rằng Customer Delight có tác động tương đối mạnh hơn đến Tolerance to Future Failures (0.524) so với Positive Word of Mouth (0.444) và cả hai mối quan hệ này đều có ý nghĩa thống kê.
Trong ví dụ này, tất cả các mối quan hệ đều có hệ số dương, điều đó cho thấy các cấu trúc phụ thuộc đều chịu tác động tích cực từ các cấu trúc độc lập tương ứng. Cụ thể, dựa trên kết quả nghiên cứu, khi mức độ Customer Delight tăng lên thì đồng thời đánh giá về Positive Word of Mouth cũng như Tolerance to Future Failures cũng gia tăng. Ngược lại, nếu một hệ số hồi quy mang giá trị âm, điều này hàm ý rằng cấu trúc phụ thuộc đang bị suy giảm khi cấu trúc độc lập tăng lên. Chẳng hạn, nếu mối quan hệ từ Customer Delight đến Positive Word of Mouth có hệ số âm, thì điều đó có nghĩa là khi mức độ Customer Delight tăng, đánh giá về Positive Word of Mouth lại có xu hướng giảm.
Tóm lại, tác động dương phản ánh việc hai cấu trúc trong mối quan hệ cùng biến động theo một chiều, trong khi tác động âm cho thấy các cấu trúc đó biến động theo hai chiều ngược nhau. Đây là nguyên tắc cơ bản nhưng rất quan trọng để hiểu đúng bản chất các mối quan hệ nhân quả trong mô hình.
Bên cạnh đó, hệ số R² của Customer Delight đạt 0.450, cho thấy mô hình giải thích được 45.0% phương sai của cấu trúc này. Trong khi đó, hai biến phụ thuộc còn lại là Tolerance to Failure (R² = 0.274) và Positive Word of Mouth (R² = 0.197) cũng thể hiện mức độ phương sai được giải thích ở mức chấp nhận được. R codes dưới đây chỉ ra kết quả này:
# R2 của các cấu trúc (hay thang đo):
hoiquyPA %>%
filter(op == "r2") %>%
select(lhs, est) %>%
mutate(est = round(est, 3))## lhs est
## 1 comp_delight 0.450
## 2 comp_WOM 0.197
## 3 comp_ToleranceFail 0.274
Không giống như CFA, trong PA/SEM không tồn tại một ngưỡng cố định hay tiêu chí chuẩn hóa bắt buộc đối với các giá trị squared multiple correlation (R²) của các cấu trúc trong mô hình. Các giá trị R² này được hình thành từ các mối quan hệ cấu trúc và phản ánh mức độ phương sai của biến phụ thuộc được giải thích bởi các mối quan hệ tiền đề (antecedent relationships) từ các biến khác trong mô hình. Do đó, giá trị R² của một biến phụ thuộc chịu ảnh hưởng trực tiếp bởi số lượng và cường độ các mối quan hệ tiền đề mà biến đó nhận được.
Trong ví dụ này, Positive Word of Mouth chỉ chịu tác động từ Customer Delight, vì vậy giá trị R² của Positive Word of Mouth phản ánh chính xác mức độ phương sai được giải thích duy nhất bởi Customer Delight. Điều này cho thấy R² cần được diễn giải trong bối cảnh cấu trúc cụ thể của mô hình, thay vì so sánh một cách cơ học với một ngưỡng chung.
Hơn nữa, mức độ “tốt” hay “chưa đủ” của R² còn phụ thuộc vào bản chất của khái niệm được đo lường. Đối với các khái niệm mới, trừu tượng hoặc khó nắm bắt, một giá trị R² khoảng 30% có thể được xem là rất đáng khích lệ. Ngược lại, cùng mức R² này có thể bị đánh giá là chưa thỏa đáng đối với những khái niệm đã được nghiên cứu rộng rãi và có nhiều biến tiền đề mạnh được đưa vào mô hình. Vì vậy, việc diễn giải R² trong SEM cần gắn chặt với bối cảnh lý thuyết và cấu trúc mô hình, thay vì áp dụng một tiêu chuẩn cứng nhắc.
Một số thống kê đánh giá độ phù hợp của mô hình như CFI, IFI, NFI, TLI, RMSEA, DF:
fitStatistics <- c("chisq", "df", "cfi", "tli", "nfi", "ifi", "rfi", "rmsea", "srmr")
fitINDEX <- fitMeasures(object = fit_path, fit.measures = fitStatistics) %>% as.vector()
data.frame(
FitIndex = fitStatistics,
Value = round(fitINDEX, 3)) -> dfFitIndex
dfFitIndex %>%
kbl(caption = "Bảng 2: Các thống kê đánh giá độ phù hợp của mô hình") %>%
kable_classic(full_width = FALSE, html_font = "Cambria")| FitIndex | Value |
|---|---|
| chisq | 19.914 |
| df | 4.000 |
| cfi | 0.977 |
| tli | 0.943 |
| nfi | 0.972 |
| ifi | 0.978 |
| rfi | 0.930 |
| rmsea | 0.089 |
| srmr | 0.038 |
Kết quả tổng thể về độ phù hợp của mô hình đối với mô hình đường dẫn cho thấy một số điểm đáng quan ngại. Một trong những hạn chế lớn nhất của việc sử dụng mô hình đường dẫn là không tính đến sai số đo lường, trong khi sai số này có thể giải thích một phần đáng kể phương sai trong mô hình. Khi các biến tổng hợp (composite variables) được hình thành, toàn bộ phần sai số chưa được giải thích của các biến quan sát sẽ bị gộp chung, khiến việc lý giải phương sai trong mô hình trở nên khó khăn hơn và hệ quả là độ phù hợp của mô hình thường yếu hơn. Ngoài ra, trong bối cảnh số bậc tự do thấp, một số chỉ số đánh giá độ phù hợp của mô hình có thể bị thổi phồng, trong khi các chỉ số như RMSEA và tỷ lệ chi-square/df lại phản ánh trung thực hơn mức độ phù hợp giữa mô hình và dữ liệu. Mặc dù mô hình đường dẫn có ưu điểm là đơn giản và hiệu quả trong triển khai, nhưng nó tồn tại những hạn chế rõ rệt trong việc đánh giá độ phù hợp của mô hình.
Việc sử dụng mô hình đường dẫn có nhiều điểm tương đồng với các kỹ thuật thống kê khác vốn dựa trên các biến tổng hợp; tuy nhiên, nhiều kỹ thuật trong số đó thậm chí không đánh giá độ phù hợp của mô hình. Theo Collier (2020), nếu đã sử dụng SEM cho nghiên cứu, thì việc áp dụng mô hình cấu trúc đầy đủ—bao gồm cả mô hình đo lường và các mối quan hệ cấu trúc—luôn là lựa chọn ưu việt hơn so với mô hình đường dẫn đơn thuần.
Mô hình cấu trúc đầy đủ (Full Structural Model - FSM) không chỉ đánh giá các mối quan hệ giữa các cấu trúc (constructs) mà còn bao gồm toàn bộ các biến quan sát (measurement indicators) của từng cấu trúc. Nhờ đó, mô hình này cho phép tính đến sai số đo lường của các chỉ báo trong mỗi cấu trúc, đồng thời vẫn kiểm định các mối quan hệ nhân quả giữa các cấu trúc tiềm ẩn. Về mặt triển khai, ban đầu nhà nghiên cứu sẽ vẽ đầy đủ các cấu trúc và các chỉ báo tương ứng, tương tự như khi xây dựng mô hình CFA. Sau đó, các đường dẫn trực tiếp giữa các cấu trúc sẽ được đưa vào theo các giả thuyết nghiên cứu. Cách tiếp cận này tạo ra một mô hình vững chắc hơn, bởi nó xem xét từng chỉ báo một cách riêng lẻ, thay vì gộp chúng lại thành biến tổng hợp.
Khác với mô hình PA chỉ sử dụng biến tổng hợp (composite variable path model), trong mô hình cấu trúc đầy đủ mỗi chỉ báo của một cấu trúc đều được đưa vào mô hình, cùng với ảnh hưởng của cấu trúc đó lên các cấu trúc khác. Điều này giúp mô hình phản ánh chính xác hơn bản chất đo lường của các khái niệm và nâng cao độ tin cậy của các ước lượng cấu trúc. Mô hình FSM thay thế cho mô hình PA có sơ đồ dưới đây:
Dưới đây là R codes để thực hiện FSM:
# Xác định mô hình FSM:
model_full <- "
# Measurement model:
Adaptive_Behavior =~ adapt1 + adapt2 + adapt3 + adapt4 + adapt5
Servicescape =~ servicape1 + servicape2 + servicape3
Customer_Delight =~ delight1 + delight2 + delight3
Word_of_Mouth =~ WOM1 + WOM2 + WOM3
Tolerance_to_failure =~ tolfail1 + tolfail2 + tolfail3 + tolfail4
# Structural model:
Customer_Delight ~ Adaptive_Behavior + Servicescape
Word_of_Mouth ~ Customer_Delight
Tolerance_to_failure ~ Customer_Delight
# Covariance among exogenous constructs:
Adaptive_Behavior ~~ Servicescape
Word_of_Mouth ~~ 0*Tolerance_to_failure
"
# Chạy mô hình:
fit_FSM <- sem(
model = model_full,
data = customerDat,
meanstructure = TRUE
)
summary(fit_FSM,
fit.measures = TRUE,
standardized = TRUE,
rsquare = TRUE) -> resultsFSM
# Extract hệ số hồi quy (cả chuẩn hóa lẫn không chuẩn hóa):
resultsFSM$pe -> hoiquyFSM
# Show các hệ số hồi quy và làm tròn 3 chữ số sau dấu phẩy:
hoiquyFSM %>%
filter(op == "~") %>%
select(-op, -exo, -std.all) %>%
mutate_if(is.numeric, function(x) {round(x, 3)}) %>%
kbl(caption = "Bảng 3: Các hệ số hồi quy từ mô hình FSM") %>%
kable_classic(full_width = FALSE, html_font = "Cambria")| lhs | rhs | est | se | z | pvalue | std.lv |
|---|---|---|---|---|---|---|
| Customer_Delight | Adaptive_Behavior | 0.451 | 0.035 | 12.849 | 0 | 0.592 |
| Customer_Delight | Servicescape | 0.197 | 0.040 | 4.866 | 0 | 0.219 |
| Word_of_Mouth | Customer_Delight | 0.797 | 0.074 | 10.810 | 0 | 0.504 |
| Tolerance_to_failure | Customer_Delight | 0.795 | 0.060 | 13.179 | 0 | 0.582 |
Các thống kê đánh giá độ phù hợp của mô hình:
fitStatistics <- c("chisq", "df", "cfi", "tli", "nfi", "ifi", "rfi", "rmsea", "srmr")
fitINDEX <- fitMeasures(object = fit_FSM, fit.measures = fitStatistics) %>% as.vector()
data.frame(
FitIndex = fitStatistics,
Value = round(fitINDEX, 3)) -> dfFitIndex
dfFitIndex %>%
kbl(caption = "Bảng 4: Các thống kê đánh giá độ phù hợp của mô hình FSM") %>%
kable_classic(full_width = FALSE, html_font = "Cambria")| FitIndex | Value |
|---|---|
| chisq | 225.793 |
| df | 130.000 |
| cfi | 0.988 |
| tli | 0.985 |
| nfi | 0.971 |
| ifi | 0.988 |
| rfi | 0.966 |
| rmsea | 0.038 |
| srmr | 0.039 |
Kết quả cho các Squared Multiple Correlations:
hoiquyFSM %>%
filter(op == "r2") %>%
select(lhs, est) %>%
mutate(est = round(est, 3)) %>%
filter(lhs %in% c("Customer_Delight", "Word_of_Mouth", "Tolerance_to_failure")) %>%
kbl(caption = "Bảng 5: Squared Multiple Correlation") %>%
kable_classic(full_width = FALSE, html_font = "Cambria")| lhs | est |
|---|---|
| Customer_Delight | 0.525 |
| Word_of_Mouth | 0.254 |
| Tolerance_to_failure | 0.339 |
Các kết quả chính ở trên có thể được trình bày trong một bảng duy nhất theo mẫu sau:
(Đang được viết)
(Đang được viết)