Perbaikan dari versi sebelumnya: 1. Indikator bermasalah (loading < 0.50) di-drop sebelum SEM 2. Ditambahkan HTMT untuk validitas diskriminan 3. Bootstrap dinaikkan dari 200x → 1000x untuk BCa CI yang stabil 4. Fit indices menggunakan Robust (dari MLR) sebagai acuan utama 5. Interpretasi path coefficient negatif yang tidak masuk akal ditandai


1. Package

pkgs <- c("lavaan", "semTools", "semPlot", "tidyverse",
          "psych", "corrplot", "kableExtra")

for (p in pkgs) {
  if (!requireNamespace(p, quietly = TRUE)) install.packages(p)
}

suppressPackageStartupMessages({
  library(lavaan);    library(semTools);  library(semPlot)
  library(tidyverse); library(psych);     library(corrplot)
  library(kableExtra)
})

cat("✓ Semua package berhasil dimuat\n")
✓ Semua package berhasil dimuat
cat("  lavaan versi:", as.character(packageVersion("lavaan")), "\n")
  lavaan versi: 0.6.21 

2. Load Data

# ── Sesuaikan path CSV dengan lokasi file kamu ──────────────────────────────
CSV_PATH <- "data/Data_SEM_Inggris.csv"
# Jika file ada di folder yang sama dengan Rmd, ganti menjadi:
# CSV_PATH <- "Data_SEM_Inggris.csv"
# ────────────────────────────────────────────────────────────────────────────

if (!file.exists(CSV_PATH)) {
  stop(paste("File tidak ditemukan:", CSV_PATH,
             "\nCek working directory dengan getwd()"))
}

data_raw <- read.csv(CSV_PATH,
                     stringsAsFactors = FALSE,
                     na.strings       = c("", "NA", "N/A"))

cat("✓ Data dimuat:", nrow(data_raw), "baris ×", ncol(data_raw), "kolom\n")
✓ Data dimuat: 276 baris × 233 kolom

3. Definisi Indikator

Strategi parceling: 3 indikator variance tertinggi per konstruk (Little et al., 2002). Valid secara metodologi untuk model dengan banyak konstruk dan sampel sedang (n = 276).

⚠️ PERBAIKAN: Indikator I5A6 (Compliance, loading = 0.44) dan I13A10 (MarketPerf, loading = 0.44) di-drop karena di bawah threshold 0.50 pada versi sebelumnya.

# Definisi indikator per konstruk
# I5A6 dan I13A10 telah di-drop (loading < 0.50 di CFA awal)
cols_def <- list(
  Importance    = c("I2A13", "I2A8",  "I2A12"),   # Pentingnya Standar
  Quality       = c("I3A2",  "I3A3",  "I3A4"),    # Peningkatan Kualitas
  Efficiency    = c("I4A1",  "I4A4",  "I4A2"),    # Efisiensi Operasional
  Compliance    = c("I5A2",  "I5A4"),              # Kepatuhan (I5A6 DROP)
  CustSat       = c("I6A4",  "I6A3",  "I6A2"),    # Kepuasan Pelanggan
  RiskMgt       = c("I7A4",  "I7A3",  "I7A7"),    # Manajemen Risiko
  Supplier      = c("I8A5",  "I8A4",  "I8A1"),    # Manajemen Pemasok
  Employee      = c("I9A1",  "I9A4",  "I9A2"),    # Keterlibatan Karyawan
  Cost          = c("I10A1", "I10A4", "I10A2"),   # Cost Effectiveness
  Innovation    = c("I11A8", "I11A5", "I11A7"),   # Inovasi
  StdImpl       = c("I12A7", "I12A6", "I12A9"),   # Implementasi Standar
  MarketPerf    = c("I13A9", "I13A3"),             # Market Perf (I13A10 DROP)
  FinancialPerf = c("I14A7", "I14A1", "I14A4"),   # Financial Performance
  EffPerf       = c("I15A5", "I15A6", "I15A4"),   # Efficiency Performance
  QualComp      = c("I16A10","I16A3", "I16A5"),   # Quality Competition
  GovProgram    = c("I17A4", "I17A1", "I17A3")    # Government Program
)

# Tampilkan ringkasan
tbl_cols <- tibble(
  Konstruk  = names(cols_def),
  Indikator = sapply(cols_def, paste, collapse = ", "),
  N_item    = sapply(cols_def, length)
)

kable(tbl_cols, caption = "Indikator Final per Konstruk") %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE)
Indikator Final per Konstruk
Konstruk Indikator N_item
Importance I2A13, I2A8, I2A12 3
Quality I3A2, I3A3, I3A4 3
Efficiency I4A1, I4A4, I4A2 3
Compliance I5A2, I5A4 2
CustSat I6A4, I6A3, I6A2 3
RiskMgt I7A4, I7A3, I7A7 3
Supplier I8A5, I8A4, I8A1 3
Employee I9A1, I9A4, I9A2 3
Cost I10A1, I10A4, I10A2 3
Innovation I11A8, I11A5, I11A7 3
StdImpl I12A7, I12A6, I12A9 3
MarketPerf I13A9, I13A3 2
FinancialPerf I14A7, I14A1, I14A4 3
EffPerf I15A5, I15A6, I15A4 3
QualComp I16A10, I16A3, I16A5 3
GovProgram I17A4, I17A1, I17A3 3

4. Subset, Konversi & Missing Data

all_cols <- unique(unlist(cols_def))
df       <- data_raw[, all_cols, drop = FALSE]
df[]     <- lapply(df, function(x) suppressWarnings(as.numeric(as.character(x))))

# Hapus baris dengan >30% missing
n_awal   <- nrow(df)
df_clean <- df[rowMeans(is.na(df)) <= 0.30, ]

# Imputasi median untuk missing yang tersisa
df_imp <- df_clean
for (col in names(df_imp)) {
  med <- median(df_imp[[col]], na.rm = TRUE)
  if (!is.na(med)) df_imp[[col]][is.na(df_imp[[col]])] <- med
}

cat(sprintf("Baris awal    : %d\n", n_awal))
Baris awal    : 276
cat(sprintf("Setelah clean : %d\n", nrow(df_imp)))
Setelah clean : 276
cat(sprintf("Missing tersisa: %d\n", sum(is.na(df_imp))))
Missing tersisa: 0
cat(sprintf("Total indikator: %d\n", ncol(df_imp)))
Total indikator: 46

5. Statistik Deskriptif

desc <- psych::describe(df_imp)[, c("n","mean","sd","median","min","max","skew","kurtosis")]

kable(round(desc, 3), caption = "Statistik Deskriptif Semua Indikator") %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed"),
                full_width = FALSE, font_size = 11) %>%
  scroll_box(height = "350px")
Statistik Deskriptif Semua Indikator
n mean sd median min max skew kurtosis
I2A13 276 6.072 1.049 6 1 7 -1.312 2.052
I2A8 276 6.051 1.019 6 2 7 -1.109 0.956
I2A12 276 6.127 0.939 6 1 7 -1.276 2.586
I3A2 276 6.029 0.983 6 2 7 -1.110 1.416
I3A3 276 6.091 0.920 6 3 7 -0.905 0.308
I3A4 276 6.098 0.915 6 1 7 -1.214 2.743
I4A1 276 5.975 1.063 6 1 7 -1.307 2.144
I4A4 276 6.043 0.968 6 1 7 -1.166 2.182
I4A2 276 5.971 0.949 6 3 7 -0.731 -0.113
I5A2 276 6.109 0.871 6 3 7 -0.835 0.392
I5A4 276 6.130 0.868 6 3 7 -0.917 0.451
I6A4 276 6.022 0.930 6 3 7 -0.800 0.084
I6A3 276 6.047 0.927 6 3 7 -0.829 0.139
I6A2 276 6.087 0.844 6 3 7 -0.743 0.369
I7A4 276 6.000 0.950 6 3 7 -0.787 -0.024
I7A3 276 6.101 0.921 6 3 7 -0.925 0.339
I7A7 276 6.051 0.909 6 3 7 -0.794 0.150
I8A5 276 6.062 0.914 6 3 7 -0.889 0.461
I8A4 276 6.112 0.910 6 1 7 -1.175 2.841
I8A1 276 6.105 0.882 6 4 7 -0.743 -0.211
I9A1 276 5.978 0.976 6 3 7 -0.752 -0.105
I9A4 276 6.004 0.868 6 3 7 -0.573 -0.209
I9A2 276 6.054 0.857 6 4 7 -0.621 -0.299
I10A1 276 5.808 1.126 6 3 7 -0.731 -0.297
I10A4 276 5.942 1.064 6 2 7 -1.005 0.569
I10A2 276 5.899 1.022 6 3 7 -0.673 -0.409
I11A8 276 6.014 1.044 6 1 7 -1.212 2.000
I11A5 276 6.014 1.020 6 2 7 -1.115 1.117
I11A7 276 6.014 0.980 6 3 7 -0.930 0.405
I12A7 276 4.522 2.051 5 1 7 -0.384 -1.132
I12A6 276 4.743 2.006 5 1 7 -0.554 -0.992
I12A9 276 4.696 1.986 5 1 7 -0.538 -0.930
I13A9 276 5.819 1.133 6 1 7 -1.676 4.173
I13A3 276 5.844 1.076 6 2 7 -1.295 2.130
I14A7 276 5.732 1.122 6 2 7 -0.832 0.127
I14A1 276 5.920 1.013 6 2 7 -0.845 0.481
I14A4 276 5.888 0.997 6 2 7 -1.046 1.335
I15A5 276 5.681 1.154 6 1 7 -1.357 2.693
I15A6 276 5.656 1.138 6 1 7 -0.850 0.738
I15A4 276 5.638 1.112 6 1 7 -0.885 0.905
I16A10 276 5.837 1.078 6 1 7 -1.617 4.162
I16A3 276 5.808 1.028 6 2 7 -0.711 0.072
I16A5 276 5.931 1.016 6 1 7 -1.419 3.074
I17A4 276 5.522 1.266 6 1 7 -1.055 1.045
I17A1 276 5.275 1.229 5 1 7 -0.720 0.708
I17A3 276 5.471 1.243 6 1 7 -0.829 0.302

Catatan interpretasi:

  • Nilai mean berkisar 5.3–6.1 dari skala 7 → responden cenderung setuju/sangat setuju
  • Skewness negatif pada hampir semua item → distribusi condong ke kiri (wajar untuk skala Likert 7 poin pada survei kepuasan)
  • Kurtosis |< 2| pada sebagian besar item → distribusi mendekati normal, MLR appropriate

6. Reliabilitas (Cronbach Alpha)

calc_alpha <- function(data, cols, nama) {
  ok <- cols[cols %in% names(data)]
  if (length(ok) < 2) {
    return(data.frame(Konstruk = nama, Alpha = NA, N_item = length(ok),
                      Status = "⚠️ Perlu ≥2 indikator"))
  }
  a <- tryCatch(
    psych::alpha(data[, ok, drop = FALSE], check.keys = TRUE, warnings = FALSE),
    error = function(e) NULL
  )
  if (is.null(a)) return(data.frame(Konstruk = nama, Alpha = NA,
                                    N_item = length(ok), Status = "Error"))
  data.frame(
    Konstruk = nama,
    Alpha    = round(a$total$raw_alpha, 3),
    N_item   = length(ok),
    Status   = ifelse(a$total$raw_alpha >= 0.70, "Reliabel ✓", "Perlu Review ✗")
  )
}

alpha_tbl <- bind_rows(lapply(names(cols_def), function(k)
  calc_alpha(df_imp, cols_def[[k]], k)))

kable(alpha_tbl, caption = "Cronbach Alpha per Konstruk (Threshold α ≥ 0.70)") %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE) %>%
  row_spec(which(alpha_tbl$Status == "Perlu Review ✗"), background = "#ffe0e0")
Cronbach Alpha per Konstruk (Threshold α ≥ 0.70)
Konstruk Alpha N_item Status
Importance 0.739 3 Reliabel ✓
Quality 0.797 3 Reliabel ✓
Efficiency 0.781 3 Reliabel ✓
Compliance 0.769 2 Reliabel ✓
CustSat 0.834 3 Reliabel ✓
RiskMgt 0.830 3 Reliabel ✓
Supplier 0.777 3 Reliabel ✓
Employee 0.850 3 Reliabel ✓
Cost 0.872 3 Reliabel ✓
Innovation 0.829 3 Reliabel ✓
StdImpl 0.953 3 Reliabel ✓
MarketPerf 0.577 2 Perlu Review ✗
FinancialPerf 0.816 3 Reliabel ✓
EffPerf 0.851 3 Reliabel ✓
QualComp 0.712 3 Reliabel ✓
GovProgram 0.866 3 Reliabel ✓

7. Matriks Korelasi Antar Konstruk

rmeans    <- function(data, cols) rowMeans(data[, cols, drop=FALSE], na.rm=TRUE)
df_scores <- as.data.frame(lapply(cols_def, function(c) rmeans(df_imp, c)))
cor_mat   <- cor(df_scores, use = "pairwise.complete.obs")

corrplot::corrplot(cor_mat,
  method      = "color",
  type        = "upper",
  order       = "hclust",
  addCoef.col = "black",
  number.cex  = 0.50,
  tl.cex      = 0.70,
  col         = colorRampPalette(c("#E84855","white","#2E86AB"))(200),
  title       = "Korelasi Antar Konstruk (Skor Rata-rata)",
  mar         = c(0, 0, 2, 0))

Perhatikan: Beberapa konstruk berkorelasi sangat tinggi (> 0.80), terutama CustSat–RiskMgt, Compliance–CustSat. Ini akan dikonfirmasi melalui HTMT pada tahap validitas diskriminan.


8. CFA – Confirmatory Factor Analysis

Estimator MLR (Maximum Likelihood Robust): valid untuk data Likert 7 poin dengan n > 200 (Rhemtulla et al., 2012). Menggunakan Yuan-Bentler correction untuk fit indices.

make_meas <- function(cd) {
  paste(mapply(function(k, v) paste0("  ", k, " =~ ", paste(v, collapse = "+")),
               names(cd), cd), collapse = "\n")
}

cfa_syntax <- paste0("# MEASUREMENT MODEL\n", make_meas(cols_def))
cat(cfa_syntax)
# MEASUREMENT MODEL
  Importance =~ I2A13+I2A8+I2A12
  Quality =~ I3A2+I3A3+I3A4
  Efficiency =~ I4A1+I4A4+I4A2
  Compliance =~ I5A2+I5A4
  CustSat =~ I6A4+I6A3+I6A2
  RiskMgt =~ I7A4+I7A3+I7A7
  Supplier =~ I8A5+I8A4+I8A1
  Employee =~ I9A1+I9A4+I9A2
  Cost =~ I10A1+I10A4+I10A2
  Innovation =~ I11A8+I11A5+I11A7
  StdImpl =~ I12A7+I12A6+I12A9
  MarketPerf =~ I13A9+I13A3
  FinancialPerf =~ I14A7+I14A1+I14A4
  EffPerf =~ I15A5+I15A6+I15A4
  QualComp =~ I16A10+I16A3+I16A5
  GovProgram =~ I17A4+I17A1+I17A3
cat("Menjalankan CFA (MLR)...\n")
Menjalankan CFA (MLR)...
fit_cfa <- cfa(
  model     = cfa_syntax,
  data      = df_imp,
  estimator = "MLR",
  std.lv    = FALSE
)
summary(fit_cfa, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)
lavaan 0.6-21 ended normally after 216 iterations

  Estimator                                         ML
  Optimization method                           NLMINB
  Number of model parameters                       212

  Number of observations                           276

Model Test User Model:
                                              Standard      Scaled
  Test Statistic                              1518.457    1240.823
  Degrees of freedom                               869         869
  P-value (Chi-square)                           0.000       0.000
  Scaling correction factor                                  1.224
    Yuan-Bentler correction (Mplus variant)                       

Model Test Baseline Model:

  Test statistic                              9938.384    7702.056
  Degrees of freedom                              1035        1035
  P-value                                        0.000       0.000
  Scaling correction factor                                  1.290

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    0.927       0.944
  Tucker-Lewis Index (TLI)                       0.913       0.934
                                                                  
  Robust Comparative Fit Index (CFI)                         0.947
  Robust Tucker-Lewis Index (TLI)                            0.937

Loglikelihood and Information Criteria:

  Loglikelihood user model (H0)             -14377.602  -14377.602
  Scaling correction factor                                  1.600
      for the MLR correction                                      
  Loglikelihood unrestricted model (H1)     -13618.374  -13618.374
  Scaling correction factor                                  1.298
      for the MLR correction                                      
                                                                  
  Akaike (AIC)                               29179.205   29179.205
  Bayesian (BIC)                             29946.730   29946.730
  Sample-size adjusted Bayesian (SABIC)      29274.513   29274.513

Root Mean Square Error of Approximation:

  RMSEA                                          0.052       0.039
  90 Percent confidence interval - lower         0.048       0.035
  90 Percent confidence interval - upper         0.056       0.044
  P-value H_0: RMSEA <= 0.050                    0.218       1.000
  P-value H_0: RMSEA >= 0.080                    0.000       0.000
                                                                  
  Robust RMSEA                                               0.044
  90 Percent confidence interval - lower                     0.038
  90 Percent confidence interval - upper                     0.049
  P-value H_0: Robust RMSEA <= 0.050                         0.976
  P-value H_0: Robust RMSEA >= 0.080                         0.000

Standardized Root Mean Square Residual:

  SRMR                                           0.044       0.044

Parameter Estimates:

  Standard errors                             Sandwich
  Information bread                           Observed
  Observed information based on                Hessian

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  Importance =~                                                         
    I2A13             1.000                               0.846    0.808
    I2A8              0.933    0.078   12.029    0.000    0.790    0.777
    I2A12             0.558    0.086    6.458    0.000    0.472    0.504
  Quality =~                                                            
    I3A2              1.000                               0.746    0.760
    I3A3              0.939    0.075   12.594    0.000    0.700    0.762
    I3A4              0.904    0.079   11.404    0.000    0.674    0.738
  Efficiency =~                                                         
    I4A1              1.000                               0.784    0.739
    I4A4              0.873    0.089    9.784    0.000    0.685    0.709
    I4A2              0.929    0.079   11.768    0.000    0.729    0.769
  Compliance =~                                                         
    I5A2              1.000                               0.678    0.780
    I5A4              1.025    0.070   14.548    0.000    0.695    0.802
  CustSat =~                                                            
    I6A4              1.000                               0.752    0.810
    I6A3              1.002    0.059   16.874    0.000    0.754    0.814
    I6A2              0.841    0.064   13.034    0.000    0.632    0.750
  RiskMgt =~                                                            
    I7A4              1.000                               0.724    0.764
    I7A3              1.030    0.071   14.450    0.000    0.746    0.811
    I7A7              0.988    0.067   14.784    0.000    0.716    0.789
  Supplier =~                                                           
    I8A5              1.000                               0.662    0.725
    I8A4              1.048    0.087   12.021    0.000    0.693    0.763
    I8A1              0.950    0.091   10.391    0.000    0.628    0.714
  Employee =~                                                           
    I9A1              1.000                               0.791    0.812
    I9A4              0.914    0.057   16.047    0.000    0.723    0.835
    I9A2              0.852    0.060   14.289    0.000    0.674    0.787
  Cost =~                                                               
    I10A1             1.000                               0.938    0.835
    I10A4             0.954    0.051   18.826    0.000    0.895    0.843
    I10A2             0.897    0.058   15.537    0.000    0.841    0.825
  Innovation =~                                                         
    I11A8             1.000                               0.836    0.802
    I11A5             0.937    0.055   16.956    0.000    0.783    0.770
    I11A7             0.921    0.062   14.738    0.000    0.770    0.787
  StdImpl =~                                                            
    I12A7             1.000                               1.866    0.911
    I12A6             1.008    0.038   26.779    0.000    1.881    0.940
    I12A9             1.009    0.037   27.251    0.000    1.883    0.950
  MarketPerf =~                                                         
    I13A9             1.000                               0.606    0.535
    I13A3             1.346    0.199    6.755    0.000    0.815    0.759
  FinancialPerf =~                                                      
    I14A7             1.000                               0.853    0.761
    I14A1             0.926    0.077   12.028    0.000    0.790    0.781
    I14A4             0.920    0.083   11.110    0.000    0.784    0.788
  EffPerf =~                                                            
    I15A5             1.000                               0.897    0.779
    I15A6             1.106    0.060   18.370    0.000    0.992    0.873
    I15A4             0.958    0.093   10.288    0.000    0.860    0.775
  QualComp =~                                                           
    I16A10            1.000                               0.635    0.590
    I16A3             1.187    0.176    6.746    0.000    0.754    0.734
    I16A5             1.116    0.137    8.134    0.000    0.709    0.699
  GovProgram =~                                                         
    I17A4             1.000                               1.122    0.888
    I17A1             0.822    0.063   13.042    0.000    0.922    0.752
    I17A3             0.938    0.053   17.776    0.000    1.052    0.848

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  Importance ~~                                                         
    Quality           0.519    0.073    7.102    0.000    0.822    0.822
    Efficiency        0.577    0.092    6.252    0.000    0.869    0.869
    Compliance        0.408    0.060    6.768    0.000    0.712    0.712
    CustSat           0.503    0.068    7.410    0.000    0.790    0.790
    RiskMgt           0.483    0.075    6.473    0.000    0.787    0.787
    Supplier          0.422    0.065    6.549    0.000    0.755    0.755
    Employee          0.457    0.066    6.964    0.000    0.683    0.683
    Cost              0.567    0.095    5.970    0.000    0.714    0.714
    Innovation        0.555    0.099    5.587    0.000    0.785    0.785
    StdImpl           0.033    0.094    0.349    0.727    0.021    0.021
    MarketPerf        0.341    0.070    4.875    0.000    0.666    0.666
    FinancialPerf     0.471    0.086    5.489    0.000    0.653    0.653
    EffPerf           0.402    0.073    5.478    0.000    0.529    0.529
    QualComp          0.368    0.070    5.238    0.000    0.685    0.685
    GovProgram        0.491    0.095    5.149    0.000    0.517    0.517
  Quality ~~                                                            
    Efficiency        0.504    0.061    8.249    0.000    0.863    0.863
    Compliance        0.381    0.057    6.678    0.000    0.754    0.754
    CustSat           0.466    0.062    7.550    0.000    0.831    0.831
    RiskMgt           0.442    0.059    7.490    0.000    0.819    0.819
    Supplier          0.376    0.056    6.688    0.000    0.762    0.762
    Employee          0.456    0.056    8.123    0.000    0.773    0.773
    Cost              0.519    0.066    7.864    0.000    0.742    0.742
    Innovation        0.437    0.057    7.602    0.000    0.701    0.701
    StdImpl           0.026    0.085    0.309    0.758    0.019    0.019
    MarketPerf        0.351    0.066    5.302    0.000    0.777    0.777
    FinancialPerf     0.448    0.072    6.232    0.000    0.705    0.705
    EffPerf           0.369    0.066    5.617    0.000    0.551    0.551
    QualComp          0.356    0.064    5.548    0.000    0.753    0.753
    GovProgram        0.398    0.082    4.868    0.000    0.476    0.476
  Efficiency ~~                                                         
    Compliance        0.433    0.055    7.925    0.000    0.814    0.814
    CustSat           0.487    0.057    8.588    0.000    0.826    0.826
    RiskMgt           0.478    0.062    7.665    0.000    0.841    0.841
    Supplier          0.426    0.054    7.859    0.000    0.821    0.821
    Employee          0.505    0.059    8.630    0.000    0.814    0.814
    Cost              0.643    0.092    7.011    0.000    0.873    0.873
    Innovation        0.562    0.085    6.573    0.000    0.857    0.857
    StdImpl           0.058    0.092    0.635    0.525    0.040    0.040
    MarketPerf        0.272    0.048    5.654    0.000    0.573    0.573
    FinancialPerf     0.458    0.080    5.728    0.000    0.686    0.686
    EffPerf           0.433    0.073    5.946    0.000    0.615    0.615
    QualComp          0.349    0.053    6.525    0.000    0.701    0.701
    GovProgram        0.420    0.076    5.556    0.000    0.478    0.478
  Compliance ~~                                                         
    CustSat           0.468    0.055    8.513    0.000    0.917    0.917
    RiskMgt           0.423    0.053    8.005    0.000    0.861    0.861
    Supplier          0.376    0.054    6.959    0.000    0.839    0.839
    Employee          0.410    0.051    7.984    0.000    0.764    0.764
    Cost              0.443    0.054    8.240    0.000    0.696    0.696
    Innovation        0.379    0.051    7.472    0.000    0.668    0.668
    StdImpl           0.093    0.080    1.162    0.245    0.073    0.073
    MarketPerf        0.323    0.052    6.233    0.000    0.786    0.786
    FinancialPerf     0.369    0.060    6.131    0.000    0.639    0.639
    EffPerf           0.319    0.058    5.537    0.000    0.524    0.524
    QualComp          0.296    0.050    5.899    0.000    0.689    0.689
    GovProgram        0.300    0.064    4.664    0.000    0.395    0.395
  CustSat ~~                                                            
    RiskMgt           0.517    0.064    8.114    0.000    0.948    0.948
    Supplier          0.431    0.058    7.496    0.000    0.867    0.867
    Employee          0.513    0.060    8.577    0.000    0.861    0.861
    Cost              0.577    0.064    9.046    0.000    0.818    0.818
    Innovation        0.510    0.058    8.846    0.000    0.811    0.811
    StdImpl           0.158    0.084    1.869    0.062    0.112    0.112
    MarketPerf        0.368    0.061    6.059    0.000    0.809    0.809
    FinancialPerf     0.454    0.067    6.786    0.000    0.709    0.709
    EffPerf           0.414    0.065    6.344    0.000    0.614    0.614
    QualComp          0.361    0.057    6.340    0.000    0.757    0.757
    GovProgram        0.425    0.075    5.652    0.000    0.504    0.504
  RiskMgt ~~                                                            
    Supplier          0.439    0.058    7.509    0.000    0.916    0.916
    Employee          0.490    0.061    8.083    0.000    0.855    0.855
    Cost              0.583    0.068    8.594    0.000    0.858    0.858
    Innovation        0.488    0.063    7.758    0.000    0.806    0.806
    StdImpl           0.111    0.085    1.302    0.193    0.082    0.082
    MarketPerf        0.317    0.057    5.594    0.000    0.723    0.723
    FinancialPerf     0.467    0.067    6.944    0.000    0.757    0.757
    EffPerf           0.413    0.061    6.797    0.000    0.636    0.636
    QualComp          0.379    0.058    6.521    0.000    0.824    0.824
    GovProgram        0.403    0.073    5.520    0.000    0.496    0.496
  Supplier ~~                                                           
    Employee          0.466    0.057    8.122    0.000    0.889    0.889
    Cost              0.478    0.063    7.563    0.000    0.770    0.770
    Innovation        0.415    0.057    7.337    0.000    0.751    0.751
    StdImpl           0.165    0.075    2.205    0.027    0.133    0.133
    MarketPerf        0.299    0.058    5.180    0.000    0.746    0.746
    FinancialPerf     0.400    0.067    5.974    0.000    0.709    0.709
    EffPerf           0.369    0.061    6.081    0.000    0.621    0.621
    QualComp          0.320    0.059    5.472    0.000    0.763    0.763
    GovProgram        0.361    0.073    4.964    0.000    0.486    0.486
  Employee ~~                                                           
    Cost              0.623    0.070    8.918    0.000    0.839    0.839
    Innovation        0.570    0.057   10.054    0.000    0.861    0.861
    StdImpl           0.125    0.090    1.397    0.162    0.085    0.085
    MarketPerf        0.339    0.055    6.143    0.000    0.707    0.707
    FinancialPerf     0.486    0.069    7.084    0.000    0.720    0.720
    EffPerf           0.400    0.061    6.550    0.000    0.563    0.563
    QualComp          0.343    0.051    6.787    0.000    0.683    0.683
    GovProgram        0.436    0.075    5.847    0.000    0.491    0.491
  Cost ~~                                                               
    Innovation        0.730    0.096    7.642    0.000    0.931    0.931
    StdImpl           0.268    0.105    2.540    0.011    0.153    0.153
    MarketPerf        0.364    0.056    6.447    0.000    0.641    0.641
    FinancialPerf     0.652    0.092    7.062    0.000    0.815    0.815
    EffPerf           0.569    0.078    7.324    0.000    0.675    0.675
    QualComp          0.444    0.055    8.149    0.000    0.746    0.746
    GovProgram        0.541    0.085    6.374    0.000    0.514    0.514
  Innovation ~~                                                         
    StdImpl           0.141    0.088    1.593    0.111    0.090    0.090
    MarketPerf        0.300    0.051    5.880    0.000    0.593    0.593
    FinancialPerf     0.541    0.085    6.368    0.000    0.759    0.759
    EffPerf           0.505    0.073    6.879    0.000    0.673    0.673
    QualComp          0.370    0.052    7.162    0.000    0.698    0.698
    GovProgram        0.447    0.079    5.646    0.000    0.476    0.476
  StdImpl ~~                                                            
    MarketPerf        0.152    0.080    1.892    0.059    0.134    0.134
    FinancialPerf     0.089    0.100    0.883    0.377    0.056    0.056
    EffPerf           0.286    0.101    2.820    0.005    0.171    0.171
    QualComp          0.121    0.080    1.517    0.129    0.102    0.102
    GovProgram        0.595    0.119    4.988    0.000    0.284    0.284
  MarketPerf ~~                                                         
    FinancialPerf     0.454    0.068    6.709    0.000    0.880    0.880
    EffPerf           0.437    0.092    4.741    0.000    0.804    0.804
    QualComp          0.362    0.087    4.170    0.000    0.941    0.941
    GovProgram        0.400    0.092    4.363    0.000    0.589    0.589
  FinancialPerf ~~                                                      
    EffPerf           0.629    0.085    7.390    0.000    0.822    0.822
    QualComp          0.506    0.073    6.903    0.000    0.935    0.935
    GovProgram        0.588    0.093    6.327    0.000    0.615    0.615
  EffPerf ~~                                                            
    QualComp          0.482    0.090    5.331    0.000    0.846    0.846
    GovProgram        0.564    0.078    7.218    0.000    0.560    0.560
  QualComp ~~                                                           
    GovProgram        0.505    0.093    5.406    0.000    0.709    0.709

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .I2A13             0.380    0.058    6.602    0.000    0.380    0.346
   .I2A8              0.410    0.064    6.432    0.000    0.410    0.397
   .I2A12             0.656    0.080    8.200    0.000    0.656    0.746
   .I3A2              0.407    0.078    5.193    0.000    0.407    0.423
   .I3A3              0.353    0.055    6.370    0.000    0.353    0.419
   .I3A4              0.380    0.067    5.646    0.000    0.380    0.456
   .I4A1              0.511    0.079    6.452    0.000    0.511    0.454
   .I4A4              0.464    0.101    4.604    0.000    0.464    0.497
   .I4A2              0.367    0.056    6.533    0.000    0.367    0.409
   .I5A2              0.296    0.044    6.812    0.000    0.296    0.392
   .I5A4              0.268    0.043    6.259    0.000    0.268    0.357
   .I6A4              0.296    0.040    7.338    0.000    0.296    0.344
   .I6A3              0.288    0.035    8.213    0.000    0.288    0.337
   .I6A2              0.310    0.035    8.851    0.000    0.310    0.437
   .I7A4              0.374    0.043    8.785    0.000    0.374    0.416
   .I7A3              0.288    0.041    7.092    0.000    0.288    0.342
   .I7A7              0.311    0.039    7.919    0.000    0.311    0.378
   .I8A5              0.396    0.050    7.960    0.000    0.396    0.475
   .I8A4              0.344    0.088    3.917    0.000    0.344    0.417
   .I8A1              0.380    0.049    7.700    0.000    0.380    0.491
   .I9A1              0.323    0.047    6.912    0.000    0.323    0.340
   .I9A4              0.227    0.028    8.054    0.000    0.227    0.302
   .I9A2              0.278    0.034    8.100    0.000    0.278    0.380
   .I10A1             0.383    0.048    7.977    0.000    0.383    0.303
   .I10A4             0.326    0.040    8.091    0.000    0.326    0.289
   .I10A2             0.333    0.060    5.520    0.000    0.333    0.320
   .I11A8             0.388    0.125    3.093    0.002    0.388    0.357
   .I11A5             0.422    0.080    5.273    0.000    0.422    0.408
   .I11A7             0.364    0.052    6.987    0.000    0.364    0.380
   .I12A7             0.710    0.175    4.054    0.000    0.710    0.169
   .I12A6             0.470    0.097    4.867    0.000    0.470    0.117
   .I12A9             0.385    0.070    5.534    0.000    0.385    0.098
   .I13A9             0.912    0.178    5.135    0.000    0.912    0.713
   .I13A3             0.489    0.102    4.794    0.000    0.489    0.424
   .I14A7             0.527    0.064    8.228    0.000    0.527    0.420
   .I14A1             0.399    0.063    6.318    0.000    0.399    0.390
   .I14A4             0.376    0.061    6.118    0.000    0.376    0.379
   .I15A5             0.521    0.097    5.395    0.000    0.521    0.393
   .I15A6             0.307    0.057    5.391    0.000    0.307    0.238
   .I15A4             0.492    0.084    5.876    0.000    0.492    0.400
   .I16A10            0.755    0.146    5.190    0.000    0.755    0.652
   .I16A3             0.486    0.087    5.588    0.000    0.486    0.461
   .I16A5             0.526    0.098    5.389    0.000    0.526    0.511
   .I17A4             0.339    0.056    6.070    0.000    0.339    0.212
   .I17A1             0.653    0.125    5.220    0.000    0.653    0.434
   .I17A3             0.433    0.061    7.049    0.000    0.433    0.281
    Importance        0.716    0.135    5.299    0.000    1.000    1.000
    Quality           0.556    0.078    7.101    0.000    1.000    1.000
    Efficiency        0.615    0.112    5.505    0.000    1.000    1.000
    Compliance        0.460    0.065    7.070    0.000    1.000    1.000
    CustSat           0.566    0.073    7.745    0.000    1.000    1.000
    RiskMgt           0.525    0.074    7.073    0.000    1.000    1.000
    Supplier          0.438    0.069    6.298    0.000    1.000    1.000
    Employee          0.626    0.073    8.522    0.000    1.000    1.000
    Cost              0.880    0.107    8.203    0.000    1.000    1.000
    Innovation        0.699    0.104    6.725    0.000    1.000    1.000
    StdImpl           3.482    0.289   12.032    0.000    1.000    1.000
    MarketPerf        0.367    0.094    3.909    0.000    1.000    1.000
    FinancialPerf     0.727    0.108    6.721    0.000    1.000    1.000
    EffPerf           0.805    0.140    5.736    0.000    1.000    1.000
    QualComp          0.403    0.091    4.445    0.000    1.000    1.000
    GovProgram        1.259    0.171    7.363    0.000    1.000    1.000

R-Square:
                   Estimate
    I2A13             0.654
    I2A8              0.603
    I2A12             0.254
    I3A2              0.577
    I3A3              0.581
    I3A4              0.544
    I4A1              0.546
    I4A4              0.503
    I4A2              0.591
    I5A2              0.608
    I5A4              0.643
    I6A4              0.656
    I6A3              0.663
    I6A2              0.563
    I7A4              0.584
    I7A3              0.658
    I7A7              0.622
    I8A5              0.525
    I8A4              0.583
    I8A1              0.509
    I9A1              0.660
    I9A4              0.698
    I9A2              0.620
    I10A1             0.697
    I10A4             0.711
    I10A2             0.680
    I11A8             0.643
    I11A5             0.592
    I11A7             0.620
    I12A7             0.831
    I12A6             0.883
    I12A9             0.902
    I13A9             0.287
    I13A3             0.576
    I14A7             0.580
    I14A1             0.610
    I14A4             0.621
    I15A5             0.607
    I15A6             0.762
    I15A4             0.600
    I16A10            0.348
    I16A3             0.539
    I16A5             0.489
    I17A4             0.788
    I17A1             0.566
    I17A3             0.719

8.1 Fit Indices CFA

# Ambil standard DAN robust indices
fi_names <- c("chisq", "df", "pvalue",
               "cfi", "tli",
               "cfi.robust", "tli.robust",
               "rmsea", "rmsea.ci.lower", "rmsea.ci.upper",
               "rmsea.robust",
               "srmr")

fi <- fitMeasures(fit_cfa, fi_names)

fi_df <- data.frame(
  Indeks  = c("Chi-Square", "df", "p-value",
              "CFI (standard)", "TLI (standard)",
              "CFI (Robust ✓)", "TLI (Robust ✓)",
              "RMSEA (standard)", "RMSEA CI lower", "RMSEA CI upper",
              "RMSEA (Robust ✓)",
              "SRMR"),
  Nilai   = round(fi, 4),
  Cutoff  = c("", "", "> .05",
              "> 0.90", "> 0.90",
              "> 0.90", "> 0.90",
              "< 0.08", "", "",
              "< 0.08",
              "< 0.08"),
  Acuan   = c("", "", "Hair et al.",
              "Hair et al.", "Hair et al.",
              "MLR preferred ★", "MLR preferred ★",
              "Browne & Cudeck", "", "",
              "MLR preferred ★",
              "Hu & Bentler"),
  Status  = c("", "", ifelse(fi["pvalue"] > 0.05, "✓", "✗"),
              ifelse(fi["cfi"]        > 0.90, "✓", "✗"),
              ifelse(fi["tli"]        > 0.90, "✓", "✗"),
              ifelse(fi["cfi.robust"] > 0.90, "✓", "✗"),
              ifelse(fi["tli.robust"] > 0.90, "✓", "✗"),
              ifelse(fi["rmsea"]        < 0.08, "✓", "✗"),
              "", "",
              ifelse(fi["rmsea.robust"] < 0.08, "✓", "✗"),
              ifelse(fi["srmr"]         < 0.08, "✓", "✗"))
)

kable(fi_df, row.names = FALSE,
      caption = "Fit Indices CFA (★ = Gunakan Robust untuk interpretasi utama)") %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE) %>%
  row_spec(which(fi_df$Acuan == "MLR preferred ★"), background = "#e3f2fd")
Fit Indices CFA (★ = Gunakan Robust untuk interpretasi utama)
Indeks Nilai Cutoff Acuan Status
Chi-Square 1518.4574
df 869.0000
p-value 0.0000 > .05 Hair et al. 
CFI (standard) 0.9271 > 0.90 Hair et al. 
TLI (standard) 0.9131 > 0.90 Hair et al. 
CFI (Robust ✓) 0.9471 > 0.90 MLR preferred ★
TLI (Robust ✓) 0.9370 > 0.90 MLR preferred ★
RMSEA (standard) 0.0520 < 0.08 Browne & Cudeck
RMSEA CI lower 0.0477
RMSEA CI upper 0.0564
RMSEA (Robust ✓) 0.0436 < 0.08 MLR preferred ★
SRMR 0.0442 < 0.08 Hu & Bentler

8.2 Factor Loadings

load_df <- standardizedsolution(fit_cfa) %>%
  filter(op == "=~") %>%
  transmute(
    Konstruk  = lhs,
    Indikator = rhs,
    Loading   = round(est.std, 3),
    SE        = round(se, 3),
    z         = round(z, 3),
    p         = round(pvalue, 4),
    Valid     = ifelse(abs(est.std) >= 0.50, "✓", "✗ Drop")
  )

kable(load_df,
      caption = "Standardized Factor Loadings (threshold ≥ 0.50)") %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed"),
                full_width = FALSE, font_size = 11) %>%
  row_spec(which(load_df$Valid == "✗ Drop"), background = "#ffe0e0") %>%
  scroll_box(height = "400px")
Standardized Factor Loadings (threshold ≥ 0.50)
Konstruk Indikator Loading SE z p Valid
Importance I2A13 0.808 0.038 21.443 0
Importance I2A8 0.777 0.041 18.725 0
Importance I2A12 0.504 0.055 9.180 0
Quality I3A2 0.760 0.039 19.321 0
Quality I3A3 0.762 0.039 19.356 0
Quality I3A4 0.738 0.039 19.144 0
Efficiency I4A1 0.739 0.040 18.687 0
Efficiency I4A4 0.709 0.049 14.553 0
Efficiency I4A2 0.769 0.040 19.137 0
Compliance I5A2 0.780 0.034 22.881 0
Compliance I5A4 0.802 0.034 23.327 0
CustSat I6A4 0.810 0.029 28.069 0
CustSat I6A3 0.814 0.027 30.088 0
CustSat I6A2 0.750 0.031 24.015 0
RiskMgt I7A4 0.764 0.032 23.901 0
RiskMgt I7A3 0.811 0.031 26.092 0
RiskMgt I7A7 0.789 0.033 23.667 0
Supplier I8A5 0.725 0.037 19.427 0
Supplier I8A4 0.763 0.045 16.911 0
Supplier I8A1 0.714 0.041 17.302 0
Employee I9A1 0.812 0.028 28.955 0
Employee I9A4 0.835 0.024 35.540 0
Employee I9A2 0.787 0.030 26.185 0
Cost I10A1 0.835 0.026 32.162 0
Cost I10A4 0.843 0.026 32.669 0
Cost I10A2 0.825 0.032 26.159 0
Innovation I11A8 0.802 0.057 13.974 0
Innovation I11A5 0.770 0.042 18.423 0
Innovation I11A7 0.787 0.032 24.965 0
StdImpl I12A7 0.911 0.023 39.082 0
StdImpl I12A6 0.940 0.014 68.569 0
StdImpl I12A9 0.950 0.010 93.634 0
MarketPerf I13A9 0.535 0.064 8.315 0
MarketPerf I13A3 0.759 0.058 13.198 0
FinancialPerf I14A7 0.761 0.034 22.138 0
FinancialPerf I14A1 0.781 0.038 20.537 0
FinancialPerf I14A4 0.788 0.039 20.437 0
EffPerf I15A5 0.779 0.038 20.441 0
EffPerf I15A6 0.873 0.030 28.723 0
EffPerf I15A4 0.775 0.040 19.171 0
QualComp I16A10 0.590 0.056 10.516 0
QualComp I16A3 0.734 0.052 14.165 0
QualComp I16A5 0.699 0.051 13.643 0
GovProgram I17A4 0.888 0.022 40.303 0
GovProgram I17A1 0.752 0.047 15.900 0
GovProgram I17A3 0.848 0.027 31.528 0
# Ringkasan
n_drop <- sum(load_df$Valid == "✗ Drop")
cat(sprintf("\nRingkasan Loadings:\n"))

Ringkasan Loadings:
cat(sprintf("  Total indikator : %d\n", nrow(load_df)))
  Total indikator : 46
cat(sprintf("  Valid (≥ 0.50)  : %d\n", nrow(load_df) - n_drop))
  Valid (≥ 0.50)  : 46
cat(sprintf("  Perlu drop      : %d\n", n_drop))
  Perlu drop      : 0

8.3 Composite Reliability & AVE

cr_ave_fn <- function(fit, k) {
  s <- standardizedsolution(fit) %>% filter(op == "=~", lhs == k)
  if (!nrow(s)) return(NULL)
  lam <- s$est.std
  err <- 1 - lam^2
  cr  <- sum(lam)^2 / (sum(lam)^2 + sum(err))
  ave <- mean(lam^2)
  data.frame(
    Konstruk = k,
    N_item   = length(lam),
    AvgLoad  = round(mean(lam), 3),
    CR       = round(cr, 3),
    AVE      = round(ave, 3),
    sqrtAVE  = round(sqrt(ave), 3),
    CR_OK    = ifelse(cr  >= 0.70, "✓", "✗"),
    AVE_OK   = ifelse(ave >= 0.50, "✓", "✗")
  )
}

cr_ave_tbl <- bind_rows(lapply(names(cols_def),
  function(k) tryCatch(cr_ave_fn(fit_cfa, k), error = function(e) NULL)))

kable(cr_ave_tbl,
      caption = "Composite Reliability & AVE (Fornell & Larcker, 1981)") %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE) %>%
  row_spec(which(cr_ave_tbl$CR_OK  == "✗"), background = "#ffe0e0") %>%
  row_spec(which(cr_ave_tbl$AVE_OK == "✗"), background = "#fff3cd")
Composite Reliability & AVE (Fornell & Larcker, 1981)
Konstruk N_item AvgLoad CR AVE sqrtAVE CR_OK AVE_OK
Importance 3 0.696 0.745 0.503 0.710
Quality 3 0.753 0.797 0.567 0.753
Efficiency 3 0.739 0.783 0.547 0.739
Compliance 2 0.791 0.770 0.626 0.791
CustSat 3 0.792 0.835 0.627 0.792
RiskMgt 3 0.788 0.831 0.621 0.788
Supplier 3 0.734 0.778 0.539 0.734
Employee 3 0.812 0.853 0.659 0.812
Cost 3 0.834 0.873 0.696 0.834
Innovation 3 0.786 0.829 0.618 0.786
StdImpl 3 0.934 0.953 0.872 0.934
MarketPerf 2 0.647 0.596 0.431 0.657
FinancialPerf 3 0.777 0.820 0.603 0.777
EffPerf 3 0.809 0.851 0.657 0.810
QualComp 3 0.674 0.716 0.458 0.677
GovProgram 3 0.829 0.870 0.691 0.831
cat("\nKriteria:\n")

Kriteria:
cat("  CR ≥ 0.70  = Reliabilitas konstruk terpenuhi\n")
  CR ≥ 0.70  = Reliabilitas konstruk terpenuhi
cat("  AVE ≥ 0.50 = Validitas konvergen terpenuhi\n")
  AVE ≥ 0.50 = Validitas konvergen terpenuhi

8.4 Validitas Diskriminan — Fornell-Larcker

lv_cor  <- lavInspect(fit_cfa, "cor.lv")
ave_vec <- setNames(cr_ave_tbl$AVE, cr_ave_tbl$Konstruk)
fl_mat  <- abs(lv_cor)

for (nm in rownames(fl_mat)) {
  if (!is.na(ave_vec[nm])) fl_mat[nm, nm] <- sqrt(ave_vec[nm])
}

kable(round(fl_mat, 3),
      caption = "Fornell-Larcker Matrix (Diagonal = √AVE, Off-diagonal = Korelasi LV)") %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed"),
                full_width = TRUE, font_size = 9) %>%
  scroll_box(width = "100%")
Fornell-Larcker Matrix (Diagonal = √AVE, Off-diagonal = Korelasi LV)
Importance Quality Efficiency Compliance CustSat RiskMgt Supplier Employee Cost Innovation StdImpl MarketPerf FinancialPerf EffPerf QualComp GovProgram
Importance 0.709 0.822 0.869 0.712 0.790 0.787 0.755 0.683 0.714 0.785 0.021 0.666 0.653 0.529 0.685 0.517
Quality 0.822 0.753 0.863 0.754 0.831 0.819 0.762 0.773 0.742 0.701 0.019 0.777 0.705 0.551 0.753 0.476
Efficiency 0.869 0.863 0.740 0.814 0.826 0.841 0.821 0.814 0.873 0.857 0.040 0.573 0.686 0.615 0.701 0.478
Compliance 0.712 0.754 0.814 0.791 0.917 0.861 0.839 0.764 0.696 0.668 0.073 0.786 0.639 0.524 0.689 0.395
CustSat 0.790 0.831 0.826 0.917 0.792 0.948 0.867 0.861 0.818 0.811 0.112 0.809 0.709 0.614 0.757 0.504
RiskMgt 0.787 0.819 0.841 0.861 0.948 0.788 0.916 0.855 0.858 0.806 0.082 0.723 0.757 0.636 0.824 0.496
Supplier 0.755 0.762 0.821 0.839 0.867 0.916 0.734 0.889 0.770 0.751 0.133 0.746 0.709 0.621 0.763 0.486
Employee 0.683 0.773 0.814 0.764 0.861 0.855 0.889 0.812 0.839 0.861 0.085 0.707 0.720 0.563 0.683 0.491
Cost 0.714 0.742 0.873 0.696 0.818 0.858 0.770 0.839 0.834 0.931 0.153 0.641 0.815 0.675 0.746 0.514
Innovation 0.785 0.701 0.857 0.668 0.811 0.806 0.751 0.861 0.931 0.786 0.090 0.593 0.759 0.673 0.698 0.476
StdImpl 0.021 0.019 0.040 0.073 0.112 0.082 0.133 0.085 0.153 0.090 0.934 0.134 0.056 0.171 0.102 0.284
MarketPerf 0.666 0.777 0.573 0.786 0.809 0.723 0.746 0.707 0.641 0.593 0.134 0.657 0.880 0.804 0.941 0.589
FinancialPerf 0.653 0.705 0.686 0.639 0.709 0.757 0.709 0.720 0.815 0.759 0.056 0.880 0.777 0.822 0.935 0.615
EffPerf 0.529 0.551 0.615 0.524 0.614 0.636 0.621 0.563 0.675 0.673 0.171 0.804 0.822 0.811 0.846 0.560
QualComp 0.685 0.753 0.701 0.689 0.757 0.824 0.763 0.683 0.746 0.698 0.102 0.941 0.935 0.846 0.677 0.709
GovProgram 0.517 0.476 0.478 0.395 0.504 0.496 0.486 0.491 0.514 0.476 0.284 0.589 0.615 0.560 0.709 0.831
cat("\nValiditas diskriminan terpenuhi jika:\n")

Validitas diskriminan terpenuhi jika:
cat("  √AVE setiap konstruk > korelasi dengan konstruk lain\n")
  √AVE setiap konstruk > korelasi dengan konstruk lain

8.5 Validitas Diskriminan — HTMT

PERBAIKAN: Ditambahkan HTMT (Heterotrait-Monotrait Ratio) sebagai kriteria validitas diskriminan yang lebih ketat dan direkomendasikan oleh Henseler et al. (2015). Threshold: HTMT < 0.85 (konservatif) atau < 0.90 (liberal).

# Hitung HTMT menggunakan semTools
htmt_result <- tryCatch({
  semTools::htmt(fit_cfa)
}, error = function(e) {
  cat("⚠️ HTMT tidak dapat dihitung:", conditionMessage(e), "\n")
  NULL
})
⚠️ HTMT tidak dapat dihitung: no method for coercing this S4 class to a vector 
if (!is.null(htmt_result)) {
  htmt_mat <- as.matrix(htmt_result)

  # Highlight nilai > 0.85
  kable(round(htmt_mat, 3),
        caption = "HTMT Matrix (threshold < 0.85 = diskriminan valid)") %>%
    kable_styling(bootstrap_options = c("striped","hover","condensed"),
                  full_width = TRUE, font_size = 9) %>%
    scroll_box(width = "100%")

  # Tampilkan pasangan yang bermasalah
  htmt_long <- as.data.frame(as.table(htmt_mat)) %>%
    filter(Var1 != Var2, !is.na(Freq)) %>%
    filter(Freq > 0.85) %>%
    arrange(desc(Freq))

  if (nrow(htmt_long) > 0) {
    cat("\n⚠️ Pasangan konstruk dengan HTMT > 0.85 (perlu perhatian):\n")
    print(htmt_long)
  } else {
    cat("\n✓ Semua nilai HTMT < 0.85 — validitas diskriminan terpenuhi\n")
  }
}

9. Model SEM Penuh

Catatan: Karena konstruk mediator sangat berkorelasi tinggi (beberapa > 0.85), path coefficient individual mungkin tidak stabil akibat multikolinearitas. Fokus interpretasi pada total effect dan , bukan hanya path individual.

sem_syntax <- paste0(
"# MEASUREMENT\n", make_meas(cols_def), "

# STRUKTURAL
# H1 – Importance → Mediator Proses Bisnis
Quality    ~ Importance
Efficiency ~ Importance
Compliance ~ Importance
CustSat    ~ Importance
RiskMgt    ~ Importance
Supplier   ~ Importance
Employee   ~ Importance
Cost       ~ Importance
Innovation ~ Importance
StdImpl    ~ Importance

# H2 – Mediator → Kinerja Organisasi
MarketPerf    ~ Quality+Efficiency+Compliance+CustSat+RiskMgt+Supplier+Employee+Cost+Innovation+StdImpl
FinancialPerf ~ Quality+Efficiency+Compliance+CustSat+RiskMgt+Supplier+Employee+Cost+Innovation+StdImpl
EffPerf       ~ Quality+Efficiency+Compliance+CustSat+RiskMgt+Supplier+Employee+Cost+Innovation+StdImpl
QualComp      ~ Quality+Efficiency+Compliance+CustSat+RiskMgt+Supplier+Employee+Cost+Innovation+StdImpl

# H3 – GovProgram → Mediator
Quality    ~ GovProgram
Efficiency ~ GovProgram
Compliance ~ GovProgram
CustSat    ~ GovProgram
RiskMgt    ~ GovProgram
Supplier   ~ GovProgram
Employee   ~ GovProgram
Cost       ~ GovProgram
Innovation ~ GovProgram
StdImpl    ~ GovProgram

# H4 – GovProgram → Kinerja Langsung
MarketPerf    ~ GovProgram
FinancialPerf ~ GovProgram
EffPerf       ~ GovProgram
QualComp      ~ GovProgram
")

cat("Menjalankan SEM penuh (MLR)...\n")
Menjalankan SEM penuh (MLR)...
fit_sem <- sem(
  model     = sem_syntax,
  data      = df_imp,
  estimator = "MLR",
  std.lv    = FALSE
)
summary(fit_sem, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)
lavaan 0.6-21 ended normally after 124 iterations

  Estimator                                         ML
  Optimization method                           NLMINB
  Number of model parameters                       163

  Number of observations                           276

Model Test User Model:
                                              Standard      Scaled
  Test Statistic                              1749.236    1420.684
  Degrees of freedom                               918         918
  P-value (Chi-square)                           0.000       0.000
  Scaling correction factor                                  1.231
    Yuan-Bentler correction (Mplus variant)                       

Model Test Baseline Model:

  Test statistic                              9938.384    7702.056
  Degrees of freedom                              1035        1035
  P-value                                        0.000       0.000
  Scaling correction factor                                  1.290

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    0.907       0.925
  Tucker-Lewis Index (TLI)                       0.895       0.915
                                                                  
  Robust Comparative Fit Index (CFI)                         0.928
  Robust Tucker-Lewis Index (TLI)                            0.919

Loglikelihood and Information Criteria:

  Loglikelihood user model (H0)             -14492.991  -14492.991
  Scaling correction factor                                  1.671
      for the MLR correction                                      
  Loglikelihood unrestricted model (H1)     -13618.374  -13618.374
  Scaling correction factor                                  1.298
      for the MLR correction                                      
                                                                  
  Akaike (AIC)                               29311.983   29311.983
  Bayesian (BIC)                             29902.108   29902.108
  Sample-size adjusted Bayesian (SABIC)      29385.262   29385.262

Root Mean Square Error of Approximation:

  RMSEA                                          0.057       0.045
  90 Percent confidence interval - lower         0.053       0.040
  90 Percent confidence interval - upper         0.061       0.049
  P-value H_0: RMSEA <= 0.050                    0.002       0.988
  P-value H_0: RMSEA >= 0.080                    0.000       0.000
                                                                  
  Robust RMSEA                                               0.049
  90 Percent confidence interval - lower                     0.044
  90 Percent confidence interval - upper                     0.054
  P-value H_0: Robust RMSEA <= 0.050                         0.570
  P-value H_0: Robust RMSEA >= 0.080                         0.000

Standardized Root Mean Square Residual:

  SRMR                                           0.049       0.049

Parameter Estimates:

  Standard errors                             Sandwich
  Information bread                           Observed
  Observed information based on                Hessian

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  Importance =~                                                         
    I2A13             1.000                               0.722    0.689
    I2A8              0.946    0.075   12.586    0.000    0.683    0.672
    I2A12             0.578    0.082    7.058    0.000    0.417    0.445
  Quality =~                                                            
    I3A2              1.000                               0.728    0.741
    I3A3              0.969    0.077   12.630    0.000    0.705    0.767
    I3A4              0.942    0.080   11.803    0.000    0.685    0.750
  Efficiency =~                                                         
    I4A1              1.000                               0.781    0.736
    I4A4              0.883    0.086   10.299    0.000    0.689    0.714
    I4A2              0.935    0.077   12.110    0.000    0.730    0.770
  Compliance =~                                                         
    I5A2              1.000                               0.673    0.774
    I5A4              1.037    0.083   12.527    0.000    0.698    0.806
  CustSat =~                                                            
    I6A4              1.000                               0.748    0.806
    I6A3              1.018    0.059   17.372    0.000    0.762    0.823
    I6A2              0.836    0.063   13.282    0.000    0.625    0.742
  RiskMgt =~                                                            
    I7A4              1.000                               0.725    0.765
    I7A3              1.034    0.072   14.414    0.000    0.750    0.816
    I7A7              0.986    0.067   14.782    0.000    0.714    0.787
  Supplier =~                                                           
    I8A5              1.000                               0.668    0.731
    I8A4              1.049    0.086   12.164    0.000    0.700    0.771
    I8A1              0.921    0.098    9.351    0.000    0.615    0.698
  Employee =~                                                           
    I9A1              1.000                               0.806    0.827
    I9A4              0.893    0.056   15.809    0.000    0.719    0.830
    I9A2              0.825    0.060   13.642    0.000    0.664    0.776
  Cost =~                                                               
    I10A1             1.000                               0.923    0.821
    I10A4             0.963    0.052   18.706    0.000    0.889    0.837
    I10A2             0.933    0.060   15.467    0.000    0.861    0.844
  Innovation =~                                                         
    I11A8             1.000                               0.829    0.795
    I11A5             0.941    0.063   14.953    0.000    0.780    0.766
    I11A7             0.943    0.068   13.893    0.000    0.782    0.799
  StdImpl =~                                                            
    I12A7             1.000                               1.865    0.911
    I12A6             1.010    0.038   26.795    0.000    1.884    0.941
    I12A9             1.008    0.036   27.699    0.000    1.881    0.949
  MarketPerf =~                                                         
    I13A9             1.000                               0.603    0.534
    I13A3             1.354    0.199    6.796    0.000    0.817    0.761
  FinancialPerf =~                                                      
    I14A7             1.000                               0.856    0.762
    I14A1             0.928    0.076   12.178    0.000    0.795    0.783
    I14A4             0.922    0.082   11.252    0.000    0.789    0.790
  EffPerf =~                                                            
    I15A5             1.000                               0.900    0.782
    I15A6             1.096    0.059   18.502    0.000    0.987    0.869
    I15A4             0.959    0.093   10.276    0.000    0.863    0.778
  QualComp =~                                                           
    I16A10            1.000                               0.637    0.591
    I16A3             1.187    0.180    6.595    0.000    0.756    0.735
    I16A5             1.116    0.136    8.186    0.000    0.711    0.700
  GovProgram =~                                                         
    I17A4             1.000                               1.124    0.889
    I17A1             0.819    0.064   12.870    0.000    0.920    0.750
    I17A3             0.936    0.054   17.406    0.000    1.052    0.848

Regressions:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  Quality ~                                                             
    Importance        0.919    0.104    8.827    0.000    0.912    0.912
  Efficiency ~                                                          
    Importance        1.074    0.141    7.641    0.000    0.993    0.993
  Compliance ~                                                          
    Importance        0.913    0.141    6.463    0.000    0.979    0.979
  CustSat ~                                                             
    Importance        1.049    0.134    7.832    0.000    1.013    1.013
  RiskMgt ~                                                             
    Importance        1.026    0.135    7.590    0.000    1.021    1.021
  Supplier ~                                                            
    Importance        0.895    0.139    6.440    0.000    0.967    0.967
  Employee ~                                                            
    Importance        1.067    0.169    6.315    0.000    0.956    0.956
  Cost ~                                                                
    Importance        1.167    0.186    6.262    0.000    0.913    0.913
  Innovation ~                                                          
    Importance        1.066    0.148    7.181    0.000    0.928    0.928
  StdImpl ~                                                             
    Importance       -0.221    0.181   -1.217    0.223   -0.085   -0.085
  MarketPerf ~                                                          
    Quality           0.446    0.162    2.749    0.006    0.538    0.538
    Efficiency       -0.720    0.295   -2.443    0.015   -0.932   -0.932
    Compliance        0.485    0.207    2.336    0.020    0.541    0.541
    CustSat           0.479    0.304    1.578    0.115    0.594    0.594
    RiskMgt          -0.277    0.275   -1.006    0.314   -0.333   -0.333
    Supplier          0.248    0.242    1.022    0.307    0.274    0.274
    Employee          0.063    0.148    0.424    0.672    0.084    0.084
    Cost              0.068    0.165    0.412    0.680    0.104    0.104
    Innovation       -0.107    0.129   -0.825    0.409   -0.147   -0.147
    StdImpl          -0.003    0.019   -0.179    0.858   -0.011   -0.011
  FinancialPerf ~                                                       
    Quality           0.240    0.184    1.305    0.192    0.204    0.204
    Efficiency       -0.457    0.265   -1.724    0.085   -0.417   -0.417
    Compliance        0.139    0.196    0.706    0.480    0.109    0.109
    CustSat          -0.291    0.306   -0.950    0.342   -0.254   -0.254
    RiskMgt           0.207    0.298    0.695    0.487    0.175    0.175
    Supplier          0.184    0.226    0.815    0.415    0.144    0.144
    Employee         -0.009    0.172   -0.052    0.959   -0.008   -0.008
    Cost              0.553    0.159    3.481    0.000    0.596    0.596
    Innovation        0.189    0.162    1.170    0.242    0.183    0.183
    StdImpl          -0.052    0.022   -2.351    0.019   -0.113   -0.113
  EffPerf ~                                                             
    Quality          -0.019    0.200   -0.094    0.925   -0.015   -0.015
    Efficiency       -0.061    0.244   -0.251    0.802   -0.053   -0.053
    Compliance       -0.025    0.216   -0.116    0.907   -0.019   -0.019
    CustSat          -0.042    0.336   -0.124    0.901   -0.035   -0.035
    RiskMgt           0.112    0.324    0.346    0.729    0.090    0.090
    Supplier          0.355    0.330    1.076    0.282    0.263    0.263
    Employee         -0.362    0.243   -1.485    0.137   -0.324   -0.324
    Cost              0.300    0.185    1.622    0.105    0.308    0.308
    Innovation        0.392    0.192    2.045    0.041    0.361    0.361
    StdImpl           0.012    0.024    0.513    0.608    0.025    0.025
  QualComp ~                                                            
    Quality           0.228    0.158    1.442    0.149    0.261    0.261
    Efficiency       -0.280    0.243   -1.153    0.249   -0.343   -0.343
    Compliance        0.100    0.157    0.641    0.521    0.106    0.106
    CustSat          -0.153    0.303   -0.505    0.613   -0.179   -0.179
    RiskMgt           0.544    0.306    1.780    0.075    0.619    0.619
    Supplier          0.240    0.201    1.198    0.231    0.252    0.252
    Employee         -0.227    0.170   -1.336    0.182   -0.287   -0.287
    Cost              0.117    0.147    0.794    0.427    0.169    0.169
    Innovation        0.033    0.125    0.260    0.795    0.042    0.042
    StdImpl          -0.026    0.019   -1.418    0.156   -0.077   -0.077
  Quality ~                                                             
    GovProgram       -0.049    0.052   -0.934    0.350   -0.075   -0.075
  Efficiency ~                                                          
    GovProgram       -0.082    0.089   -0.923    0.356   -0.118   -0.118
  Compliance ~                                                          
    GovProgram       -0.119    0.090   -1.321    0.186   -0.198   -0.198
  CustSat ~                                                             
    GovProgram       -0.072    0.085   -0.841    0.400   -0.108   -0.108
  RiskMgt ~                                                             
    GovProgram       -0.078    0.085   -0.928    0.353   -0.122   -0.122
  Supplier ~                                                            
    GovProgram       -0.058    0.093   -0.620    0.535   -0.097   -0.097
  Employee ~                                                            
    GovProgram       -0.064    0.113   -0.567    0.571   -0.089   -0.089
  Cost ~                                                                
    GovProgram       -0.026    0.129   -0.199    0.843   -0.031   -0.031
  Innovation ~                                                          
    GovProgram       -0.057    0.108   -0.526    0.599   -0.077   -0.077
  StdImpl ~                                                             
    GovProgram        0.554    0.130    4.264    0.000    0.334    0.334
  MarketPerf ~                                                          
    GovProgram        0.149    0.066    2.278    0.023    0.278    0.278
  FinancialPerf ~                                                       
    GovProgram        0.215    0.061    3.546    0.000    0.283    0.283
  EffPerf ~                                                             
    GovProgram        0.209    0.071    2.940    0.003    0.261    0.261
  QualComp ~                                                            
    GovProgram        0.239    0.072    3.306    0.001    0.421    0.421

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  Importance ~~                                                         
    GovProgram        0.489    0.099    4.959    0.000    0.602    0.602
 .MarketPerf ~~                                                         
   .FinancialPerf     0.093    0.034    2.733    0.006    1.723    1.723
   .EffPerf           0.146    0.050    2.946    0.003    1.819    1.819
   .QualComp          0.074    0.030    2.511    0.012    2.234    2.234
 .FinancialPerf ~~                                                      
   .EffPerf           0.151    0.039    3.816    0.000    0.649    0.649
   .QualComp          0.089    0.027    3.237    0.001    0.926    0.926
 .EffPerf ~~                                                            
   .QualComp          0.116    0.040    2.872    0.004    0.810    0.810

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .I2A13             0.575    0.072    7.999    0.000    0.575    0.525
   .I2A8              0.567    0.068    8.303    0.000    0.567    0.549
   .I2A12             0.705    0.104    6.806    0.000    0.705    0.802
   .I3A2              0.434    0.084    5.165    0.000    0.434    0.450
   .I3A3              0.347    0.053    6.488    0.000    0.347    0.411
   .I3A4              0.365    0.067    5.434    0.000    0.365    0.437
   .I4A1              0.516    0.086    6.004    0.000    0.516    0.458
   .I4A4              0.458    0.104    4.405    0.000    0.458    0.491
   .I4A2              0.365    0.055    6.655    0.000    0.365    0.406
   .I5A2              0.303    0.046    6.566    0.000    0.303    0.400
   .I5A4              0.263    0.043    6.104    0.000    0.263    0.351
   .I6A4              0.303    0.044    6.934    0.000    0.303    0.351
   .I6A3              0.277    0.033    8.318    0.000    0.277    0.323
   .I6A2              0.319    0.037    8.638    0.000    0.319    0.450
   .I7A4              0.373    0.042    8.889    0.000    0.373    0.415
   .I7A3              0.283    0.040    7.063    0.000    0.283    0.335
   .I7A7              0.313    0.039    8.081    0.000    0.313    0.380
   .I8A5              0.387    0.048    8.135    0.000    0.387    0.465
   .I8A4              0.334    0.092    3.623    0.000    0.334    0.405
   .I8A1              0.397    0.054    7.359    0.000    0.397    0.513
   .I9A1              0.300    0.045    6.674    0.000    0.300    0.316
   .I9A4              0.233    0.030    7.800    0.000    0.233    0.310
   .I9A2              0.291    0.038    7.746    0.000    0.291    0.398
   .I10A1             0.412    0.054    7.629    0.000    0.412    0.326
   .I10A4             0.337    0.041    8.243    0.000    0.337    0.299
   .I10A2             0.299    0.057    5.213    0.000    0.299    0.287
   .I11A8             0.400    0.131    3.047    0.002    0.400    0.368
   .I11A5             0.428    0.082    5.193    0.000    0.428    0.413
   .I11A7             0.345    0.051    6.753    0.000    0.345    0.361
   .I12A7             0.712    0.174    4.089    0.000    0.712    0.170
   .I12A6             0.461    0.095    4.854    0.000    0.461    0.115
   .I12A9             0.392    0.071    5.531    0.000    0.392    0.100
   .I13A9             0.914    0.178    5.123    0.000    0.914    0.715
   .I13A3             0.485    0.102    4.738    0.000    0.485    0.421
   .I14A7             0.529    0.063    8.411    0.000    0.529    0.419
   .I14A1             0.398    0.062    6.391    0.000    0.398    0.387
   .I14A4             0.375    0.061    6.105    0.000    0.375    0.376
   .I15A5             0.516    0.096    5.367    0.000    0.516    0.389
   .I15A6             0.317    0.055    5.760    0.000    0.317    0.245
   .I15A4             0.486    0.082    5.940    0.000    0.486    0.395
   .I16A10            0.755    0.145    5.206    0.000    0.755    0.650
   .I16A3             0.486    0.088    5.536    0.000    0.486    0.460
   .I16A5             0.526    0.097    5.396    0.000    0.526    0.510
   .I17A4             0.335    0.056    5.928    0.000    0.335    0.209
   .I17A1             0.657    0.126    5.230    0.000    0.657    0.437
   .I17A3             0.433    0.062    7.014    0.000    0.433    0.281
    Importance        0.521    0.101    5.143    0.000    1.000    1.000
   .Quality           0.130    0.037    3.561    0.000    0.246    0.246
   .Efficiency        0.086    0.032    2.666    0.008    0.142    0.142
   .Compliance        0.107    0.038    2.830    0.005    0.236    0.236
   .CustSat           0.053    0.023    2.287    0.022    0.094    0.094
   .RiskMgt           0.048    0.025    1.936    0.053    0.092    0.092
   .Supplier          0.075    0.022    3.396    0.001    0.168    0.168
   .Employee          0.117    0.033    3.586    0.000    0.181    0.181
   .Cost              0.170    0.046    3.728    0.000    0.200    0.200
   .Innovation        0.150    0.041    3.665    0.000    0.218    0.218
   .StdImpl           3.186    0.315   10.099    0.000    0.916    0.916
   .MarketPerf        0.019    0.050    0.374    0.708    0.051    0.051
   .FinancialPerf     0.155    0.041    3.748    0.000    0.212    0.212
   .EffPerf           0.346    0.111    3.111    0.002    0.427    0.427
   .QualComp          0.059    0.034    1.740    0.082    0.145    0.145
    GovProgram        1.263    0.171    7.399    0.000    1.000    1.000

R-Square:
                   Estimate
    I2A13             0.475
    I2A8              0.451
    I2A12             0.198
    I3A2              0.550
    I3A3              0.589
    I3A4              0.563
    I4A1              0.542
    I4A4              0.509
    I4A2              0.594
    I5A2              0.600
    I5A4              0.649
    I6A4              0.649
    I6A3              0.677
    I6A2              0.550
    I7A4              0.585
    I7A3              0.665
    I7A7              0.620
    I8A5              0.535
    I8A4              0.595
    I8A1              0.487
    I9A1              0.684
    I9A4              0.690
    I9A2              0.602
    I10A1             0.674
    I10A4             0.701
    I10A2             0.713
    I11A8             0.632
    I11A5             0.587
    I11A7             0.639
    I12A7             0.830
    I12A6             0.885
    I12A9             0.900
    I13A9             0.285
    I13A3             0.579
    I14A7             0.581
    I14A1             0.613
    I14A4             0.624
    I15A5             0.611
    I15A6             0.755
    I15A4             0.605
    I16A10            0.350
    I16A3             0.540
    I16A5             0.490
    I17A4             0.791
    I17A1             0.563
    I17A3             0.719
    Quality           0.754
    Efficiency        0.858
    Compliance        0.764
    CustSat           0.906
    RiskMgt           0.908
    Supplier          0.832
    Employee          0.819
    Cost              0.800
    Innovation        0.782
    StdImpl           0.084
    MarketPerf        0.949
    FinancialPerf     0.788
    EffPerf           0.573
    QualComp          0.855

9.1 Fit Indices SEM Penuh

sf_names <- c("chisq", "df", "pvalue",
              "cfi", "tli",
              "cfi.robust", "tli.robust",
              "rmsea", "rmsea.ci.lower", "rmsea.ci.upper",
              "rmsea.robust", "srmr")

sf <- fitMeasures(fit_sem, sf_names)

sf_df <- data.frame(
  Indeks = c("Chi-Square", "df", "p-value",
             "CFI (standard)", "TLI (standard)",
             "CFI (Robust ★)", "TLI (Robust ★)",
             "RMSEA (standard)", "RMSEA CI lower", "RMSEA CI upper",
             "RMSEA (Robust ★)", "SRMR"),
  Nilai  = round(sf, 4),
  Cutoff = c("", "", "> .05",
             "> 0.90", "> 0.90",
             "> 0.90", "> 0.90",
             "< 0.08", "", "",
             "< 0.08", "< 0.08"),
  Status = c("", "",
             ifelse(sf["pvalue"]      > 0.05, "✓", "✗"),
             ifelse(sf["cfi"]         > 0.90, "✓", "✗"),
             ifelse(sf["tli"]         > 0.90, "✓", "✗"),
             ifelse(sf["cfi.robust"]  > 0.90, "✓", "✗"),
             ifelse(sf["tli.robust"]  > 0.90, "✓", "✗"),
             ifelse(sf["rmsea"]       < 0.08, "✓", "✗"),
             "", "",
             ifelse(sf["rmsea.robust"]< 0.08, "✓", "✗"),
             ifelse(sf["srmr"]        < 0.08, "✓", "✗"))
)

kable(sf_df, row.names = FALSE,
      caption = "Fit Indices SEM Penuh (★ = Acuan utama untuk MLR)") %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE) %>%
  row_spec(which(grepl("★", sf_df$Indeks)), background = "#e3f2fd")
Fit Indices SEM Penuh (★ = Acuan utama untuk MLR)
Indeks Nilai Cutoff Status
Chi-Square 1749.2356
df 918.0000
p-value 0.0000 > .05
CFI (standard) 0.9066 > 0.90
TLI (standard) 0.8947 > 0.90
CFI (Robust ★) 0.9281 > 0.90
TLI (Robust ★) 0.9189 > 0.90
RMSEA (standard) 0.0573 < 0.08
RMSEA CI lower 0.0532
RMSEA CI upper 0.0613
RMSEA (Robust ★) 0.0494 < 0.08
SRMR 0.0491 < 0.08

10. Path Coefficients

paths <- standardizedsolution(fit_sem) %>%
  filter(op == "~") %>%
  transmute(
    Endogen = lhs,
    Eksogen = rhs,
    Beta    = round(est.std, 3),
    SE      = round(se, 3),
    z       = round(z, 3),
    p       = round(pvalue, 4),
    Sig     = case_when(
      pvalue < 0.001 ~ "***",
      pvalue < 0.01  ~ "**",
      pvalue < 0.05  ~ "*",
      pvalue < 0.10  ~ ".",
      TRUE           ~ "ns"
    ),
    Arah = case_when(
      abs(est.std) > 1.0              ~ "⚠️ > 1 (cek multikolinearitas)",
      pvalue < 0.05 & est.std > 0    ~ "Didukung (+)",
      pvalue < 0.05 & est.std < 0    ~ "Didukung (−) ⚠️",
      TRUE                           ~ "Tidak Didukung"
    )
  ) %>%
  arrange(Endogen, p)

kable(paths, caption = "Path Coefficients Terstandarisasi") %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed"),
                full_width = FALSE, font_size = 11) %>%
  row_spec(which(paths$p < 0.05 & paths$Beta > 0 & abs(paths$Beta) <= 1),
           background = "#e8f5e9") %>%
  row_spec(which(paths$p < 0.05 & paths$Beta < 0),
           background = "#fff3cd") %>%
  row_spec(which(abs(paths$Beta) > 1),
           background = "#ffe0e0") %>%
  scroll_box(height = "500px")
Path Coefficients Terstandarisasi
Endogen Eksogen Beta SE z p Sig Arah
Compliance Importance 0.979 0.098 9.972 0.0000 *** Didukung (+)
Compliance GovProgram -0.198 0.148 -1.339 0.1805 ns Tidak Didukung
Cost Importance 0.913 0.106 8.626 0.0000 *** Didukung (+)
Cost GovProgram -0.031 0.157 -0.199 0.8425 ns Tidak Didukung
CustSat Importance 1.013 0.085 11.849 0.0000 *** ⚠️ > 1 (cek multikolinearitas)
CustSat GovProgram -0.108 0.129 -0.837 0.4024 ns Tidak Didukung
EffPerf GovProgram 0.261 0.085 3.063 0.0022 ** Didukung (+)
EffPerf Innovation 0.361 0.176 2.048 0.0405
Didukung (+)
EffPerf Cost 0.308 0.189 1.630 0.1032 ns Tidak Didukung
EffPerf Employee -0.324 0.205 -1.575 0.1152 ns Tidak Didukung
EffPerf Supplier 0.263 0.238 1.108 0.2677 ns Tidak Didukung
EffPerf StdImpl 0.025 0.050 0.506 0.6126 ns Tidak Didukung
EffPerf RiskMgt 0.090 0.261 0.346 0.7290 ns Tidak Didukung
EffPerf Efficiency -0.053 0.212 -0.251 0.8018 ns Tidak Didukung
EffPerf CustSat -0.035 0.280 -0.124 0.9017 ns Tidak Didukung
EffPerf Compliance -0.019 0.162 -0.116 0.9074 ns Tidak Didukung
EffPerf Quality -0.015 0.161 -0.094 0.9247 ns Tidak Didukung
Efficiency Importance 0.993 0.075 13.259 0.0000 *** Didukung (+)
Efficiency GovProgram -0.118 0.127 -0.934 0.3505 ns Tidak Didukung
Employee Importance 0.956 0.101 9.425 0.0000 *** Didukung (+)
Employee GovProgram -0.089 0.156 -0.572 0.5675 ns Tidak Didukung
FinancialPerf GovProgram 0.283 0.074 3.830 0.0001 *** Didukung (+)
FinancialPerf Cost 0.596 0.162 3.687 0.0002 *** Didukung (+)
FinancialPerf StdImpl -0.113 0.049 -2.331 0.0198
Didukung (−) ⚠️
FinancialPerf Efficiency -0.417 0.231 -1.809 0.0705 . Tidak Didukung
FinancialPerf Quality 0.204 0.154 1.325 0.1851 ns Tidak Didukung
FinancialPerf Innovation 0.183 0.157 1.170 0.2420 ns Tidak Didukung
FinancialPerf CustSat -0.254 0.262 -0.968 0.3333 ns Tidak Didukung
FinancialPerf Supplier 0.144 0.175 0.823 0.4103 ns Tidak Didukung
FinancialPerf RiskMgt 0.175 0.248 0.706 0.4801 ns Tidak Didukung
FinancialPerf Compliance 0.109 0.155 0.701 0.4832 ns Tidak Didukung
FinancialPerf Employee -0.008 0.161 -0.052 0.9586 ns Tidak Didukung
Innovation Importance 0.928 0.094 9.824 0.0000 *** Didukung (+)
Innovation GovProgram -0.077 0.146 -0.527 0.5981 ns Tidak Didukung
MarketPerf Quality 0.538 0.185 2.915 0.0036 ** Didukung (+)
MarketPerf Efficiency -0.932 0.329 -2.835 0.0046 ** Didukung (−) ⚠️
MarketPerf GovProgram 0.278 0.109 2.564 0.0103
Didukung (+)
MarketPerf Compliance 0.541 0.233 2.319 0.0204
Didukung (+)
MarketPerf CustSat 0.594 0.355 1.671 0.0947 . Tidak Didukung
MarketPerf Supplier 0.274 0.265 1.037 0.2998 ns Tidak Didukung
MarketPerf RiskMgt -0.333 0.334 -0.998 0.3184 ns Tidak Didukung
MarketPerf Innovation -0.147 0.179 -0.820 0.4123 ns Tidak Didukung
MarketPerf Employee 0.084 0.198 0.422 0.6727 ns Tidak Didukung
MarketPerf Cost 0.104 0.252 0.412 0.6804 ns Tidak Didukung
MarketPerf StdImpl -0.011 0.059 -0.179 0.8580 ns Tidak Didukung
QualComp GovProgram 0.421 0.096 4.361 0.0000 *** Didukung (+)
QualComp RiskMgt 0.619 0.320 1.935 0.0531 . Tidak Didukung
QualComp Quality 0.261 0.175 1.492 0.1356 ns Tidak Didukung
QualComp StdImpl -0.077 0.052 -1.479 0.1391 ns Tidak Didukung
QualComp Employee -0.287 0.207 -1.389 0.1647 ns Tidak Didukung
QualComp Supplier 0.252 0.204 1.237 0.2162 ns Tidak Didukung
QualComp Efficiency -0.343 0.283 -1.209 0.2267 ns Tidak Didukung
QualComp Cost 0.169 0.214 0.789 0.4302 ns Tidak Didukung
QualComp Compliance 0.106 0.165 0.645 0.5191 ns Tidak Didukung
QualComp CustSat -0.179 0.348 -0.515 0.6063 ns Tidak Didukung
QualComp Innovation 0.042 0.161 0.262 0.7933 ns Tidak Didukung
Quality Importance 0.912 0.047 19.376 0.0000 *** Didukung (+)
Quality GovProgram -0.075 0.081 -0.932 0.3513 ns Tidak Didukung
RiskMgt Importance 1.021 0.080 12.722 0.0000 *** ⚠️ > 1 (cek multikolinearitas)
RiskMgt GovProgram -0.122 0.130 -0.937 0.3485 ns Tidak Didukung
StdImpl GovProgram 0.334 0.073 4.586 0.0000 *** Didukung (+)
StdImpl Importance -0.085 0.071 -1.207 0.2276 ns Tidak Didukung
Supplier Importance 0.967 0.098 9.860 0.0000 *** Didukung (+)
Supplier GovProgram -0.097 0.155 -0.626 0.5310 ns Tidak Didukung
cat("\nLegenda warna:\n")

Legenda warna:
cat("  Hijau  = Signifikan positif (hipotesis didukung)\n")
  Hijau  = Signifikan positif (hipotesis didukung)
cat("  Kuning = Signifikan negatif (perlu interpretasi hati-hati)\n")
  Kuning = Signifikan negatif (perlu interpretasi hati-hati)
cat("  Merah  = Beta > 1 (indikasi masalah multikolinearitas)\n")
  Merah  = Beta > 1 (indikasi masalah multikolinearitas)

11. R-Squared (Variance Explained)

rsq    <- lavInspect(fit_sem, "r2")
rsq_df <- data.frame(
  Variabel = names(rsq),
  R2       = round(rsq, 3),
  Persen   = paste0(round(rsq * 100, 1), "%"),
  Kategori = case_when(
    rsq >= 0.50 ~ "Kuat (> 50%)",
    rsq >= 0.30 ~ "Moderate (30–50%)",
    rsq >= 0.10 ~ "Lemah (10–30%)",
    TRUE        ~ "Sangat Lemah (< 10%)"
  )
) %>%
  filter(Variabel %in% c("Quality","Efficiency","Compliance","CustSat",
                          "RiskMgt","Supplier","Employee","Cost","Innovation",
                          "StdImpl","MarketPerf","FinancialPerf","EffPerf",
                          "QualComp")) %>%
  arrange(desc(R2))

kable(rsq_df, caption = "R-Squared Variabel Laten (Endogen)") %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE) %>%
  row_spec(which(rsq_df$R2 >= 0.50), background = "#e8f5e9") %>%
  row_spec(which(rsq_df$R2 < 0.10), background = "#ffe0e0")
R-Squared Variabel Laten (Endogen)
Variabel R2 Persen Kategori
MarketPerf MarketPerf 0.949 94.9% Kuat (> 50%)
RiskMgt RiskMgt 0.908 90.8% Kuat (> 50%)
CustSat CustSat 0.906 90.6% Kuat (> 50%)
Efficiency Efficiency 0.858 85.8% Kuat (> 50%)
QualComp QualComp 0.855 85.5% Kuat (> 50%)
Supplier Supplier 0.832 83.2% Kuat (> 50%)
Employee Employee 0.819 81.9% Kuat (> 50%)
Cost Cost 0.800 80% Kuat (> 50%)
FinancialPerf FinancialPerf 0.788 78.8% Kuat (> 50%)
Innovation Innovation 0.782 78.2% Kuat (> 50%)
Compliance Compliance 0.764 76.4% Kuat (> 50%)
Quality Quality 0.754 75.4% Kuat (> 50%)
EffPerf EffPerf 0.573 57.3% Kuat (> 50%)
StdImpl StdImpl 0.084 8.4% Sangat Lemah (< 10%)

12. Analisis Mediasi (Bootstrap 1000x)

PERBAIKAN: Bootstrap dinaikkan dari 200x → 1000x untuk BCa CI yang lebih stabil dan terpercaya (Hayes, 2018). Menggunakan estimator ML (bukan MLR) karena bootstrap tidak kompatibel dengan sandwich SE dari MLR.

# Model mediasi: Importance → (Quality, Efficiency) → (MarketPerf, FinancialPerf)
sem_med_syntax <- paste0(
"# Measurement
  Importance    =~ ", paste(cols_def$Importance,    collapse="+"), "
  Quality       =~ ", paste(cols_def$Quality,       collapse="+"), "
  Efficiency    =~ ", paste(cols_def$Efficiency,    collapse="+"), "
  MarketPerf    =~ ", paste(cols_def$MarketPerf,    collapse="+"), "
  FinancialPerf =~ ", paste(cols_def$FinancialPerf, collapse="+"), "

# Structural dengan label untuk mediasi
  Quality       ~ a1 * Importance
  Efficiency    ~ a2 * Importance
  MarketPerf    ~ b1*Quality + b2*Efficiency + c1*Importance
  FinancialPerf ~ b3*Quality + b4*Efficiency + c2*Importance

# Efek tidak langsung (indirect effects)
  ind_Qual_Mkt  := a1 * b1   # Importance → Quality → MarketPerf
  ind_Eff_Mkt   := a2 * b2   # Importance → Efficiency → MarketPerf
  ind_Qual_Fin  := a1 * b3   # Importance → Quality → FinancialPerf
  ind_Eff_Fin   := a2 * b4   # Importance → Efficiency → FinancialPerf

# Total effect
  total_Mkt     := a1*b1 + a2*b2 + c1
  total_Fin     := a1*b3 + a2*b4 + c2
")

cat("Menjalankan Bootstrap 1000x (estimasi ~3-5 menit)...\n")
Menjalankan Bootstrap 1000x (estimasi ~3-5 menit)...
set.seed(2025)
fit_med <- sem(
  model     = sem_med_syntax,
  data      = df_imp,
  estimator = "ML",        # ML untuk bootstrap (bukan MLR)
  se        = "bootstrap",
  bootstrap = 1000         # DIPERBAIKI: dari 200 → 1000
)

indirect <- parameterEstimates(fit_med, boot.ci.type = "bca.simple") %>%
  filter(op == ":=") %>%
  transmute(
    Label    = label,
    Jalur    = case_when(
      label == "ind_Qual_Mkt" ~ "Importance → Quality → MarketPerf",
      label == "ind_Eff_Mkt"  ~ "Importance → Efficiency → MarketPerf",
      label == "ind_Qual_Fin" ~ "Importance → Quality → FinancialPerf",
      label == "ind_Eff_Fin"  ~ "Importance → Efficiency → FinancialPerf",
      label == "total_Mkt"    ~ "Total Effect → MarketPerf",
      label == "total_Fin"    ~ "Total Effect → FinancialPerf",
      TRUE ~ label
    ),
    Est      = round(est, 3),
    SE       = round(se, 3),
    CI_lower = round(ci.lower, 3),
    CI_upper = round(ci.upper, 3),
    p        = round(pvalue, 4),
    Mediasi  = ifelse(
      (ci.lower > 0 & ci.upper > 0) | (ci.lower < 0 & ci.upper < 0),
      "Signifikan ✓", "Tidak Signifikan ✗"
    )
  )

kable(indirect,
      caption = "Indirect & Total Effects – Bootstrap 1000x (95% BCa CI)") %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE) %>%
  row_spec(which(indirect$Mediasi == "Signifikan ✓"), background = "#e8f5e9") %>%
  column_spec(2, width = "25em")
Indirect & Total Effects – Bootstrap 1000x (95% BCa CI)
Label Jalur Est SE CI_lower CI_upper p Mediasi
ind_Qual_Mkt Importance → Quality → MarketPerf 0.461 0.242 0.196 1.320 0.0567 Signifikan ✓
ind_Eff_Mkt Importance → Efficiency → MarketPerf -0.339 0.962 -5.842 0.034 0.7246 Tidak Signifikan ✗
ind_Qual_Fin Importance → Quality → FinancialPerf 0.419 0.324 0.033 1.284 0.1949 Signifikan ✓
ind_Eff_Fin Importance → Efficiency → FinancialPerf 0.281 1.460 -1.945 1.061 0.8475 Tidak Signifikan ✗
total_Mkt Total Effect → MarketPerf 0.443 0.103 0.270 0.660 0.0000 Signifikan ✓
total_Fin Total Effect → FinancialPerf 0.655 0.103 0.460 0.873 0.0000 Signifikan ✓

13. Path Diagram

semPaths(fit_sem,
  what          = "std",
  layout        = "tree2",
  rotation      = 2,
  edge.label.cex = 0.45,
  node.label.cex = 0.60,
  residuals     = FALSE,
  intercepts    = FALSE,
  nCharNodes    = 0,
  sizeLat       = 9,
  sizeMan       = 3,
  fade          = FALSE,
  edge.color    = "#2E86AB",
  mar           = c(3, 3, 3, 3),
  style         = "ram"
)
title("SEM – Dampak Standarisasi terhadap Kinerja Perusahaan\n(Bappenas, 2025)",
      cex.main = 1.0)


14. Ringkasan Hipotesis

# Filter jalur utama yang relevan dengan hipotesis penelitian
h_summary <- paths %>%
  filter(
    # H1: Importance → Mediator
    (Eksogen == "Importance" & Endogen %in% c("Quality","Efficiency","Compliance",
                                               "CustSat","RiskMgt","Supplier",
                                               "Employee","Cost","Innovation","StdImpl")) |
    # H3: GovProgram → StdImpl (jalur signifikan)
    (Eksogen == "GovProgram") |
    # Beberapa jalur mediator → kinerja yang signifikan
    (Endogen %in% c("MarketPerf","FinancialPerf","EffPerf","QualComp") &
     p < 0.10)
  ) %>%
  select(Endogen, Eksogen, Beta, p, Sig, Arah)

kable(h_summary,
      caption = "Ringkasan Jalur Utama (Hipotesis Penelitian)") %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed"),
                full_width = FALSE, font_size = 11) %>%
  row_spec(which(h_summary$p < 0.05 & h_summary$Beta > 0),
           background = "#e8f5e9") %>%
  row_spec(which(h_summary$p < 0.05 & h_summary$Beta < 0),
           background = "#fff3cd")
Ringkasan Jalur Utama (Hipotesis Penelitian)
Endogen Eksogen Beta p Sig Arah
Compliance Importance 0.979 0.0000 *** Didukung (+)
Compliance GovProgram -0.198 0.1805 ns Tidak Didukung
Cost Importance 0.913 0.0000 *** Didukung (+)
Cost GovProgram -0.031 0.8425 ns Tidak Didukung
CustSat Importance 1.013 0.0000 *** ⚠️ > 1 (cek multikolinearitas)
CustSat GovProgram -0.108 0.4024 ns Tidak Didukung
EffPerf GovProgram 0.261 0.0022 ** Didukung (+)
EffPerf Innovation 0.361 0.0405
Didukung (+)
Efficiency Importance 0.993 0.0000 *** Didukung (+)
Efficiency GovProgram -0.118 0.3505 ns Tidak Didukung
Employee Importance 0.956 0.0000 *** Didukung (+)
Employee GovProgram -0.089 0.5675 ns Tidak Didukung
FinancialPerf GovProgram 0.283 0.0001 *** Didukung (+)
FinancialPerf Cost 0.596 0.0002 *** Didukung (+)
FinancialPerf StdImpl -0.113 0.0198
Didukung (−) ⚠️
FinancialPerf Efficiency -0.417 0.0705 . Tidak Didukung
Innovation Importance 0.928 0.0000 *** Didukung (+)
Innovation GovProgram -0.077 0.5981 ns Tidak Didukung
MarketPerf Quality 0.538 0.0036 ** Didukung (+)
MarketPerf Efficiency -0.932 0.0046 ** Didukung (−) ⚠️
MarketPerf GovProgram 0.278 0.0103
Didukung (+)
MarketPerf Compliance 0.541 0.0204
Didukung (+)
MarketPerf CustSat 0.594 0.0947 . Tidak Didukung
QualComp GovProgram 0.421 0.0000 *** Didukung (+)
QualComp RiskMgt 0.619 0.0531 . Tidak Didukung
Quality Importance 0.912 0.0000 *** Didukung (+)
Quality GovProgram -0.075 0.3513 ns Tidak Didukung
RiskMgt Importance 1.021 0.0000 *** ⚠️ > 1 (cek multikolinearitas)
RiskMgt GovProgram -0.122 0.3485 ns Tidak Didukung
StdImpl GovProgram 0.334 0.0000 *** Didukung (+)
StdImpl Importance -0.085 0.2276 ns Tidak Didukung
Supplier Importance 0.967 0.0000 *** Didukung (+)
Supplier GovProgram -0.097 0.5310 ns Tidak Didukung

15. Ekspor Hasil

# Buat folder output jika belum ada
if (!dir.exists("output")) dir.create("output")

write.csv(paths,      "output/hasil_jalur_sem.csv",   row.names = FALSE)
write.csv(cr_ave_tbl, "output/hasil_cr_ave.csv",       row.names = FALSE)
write.csv(alpha_tbl,  "output/hasil_reliabilitas.csv", row.names = FALSE)
write.csv(indirect,   "output/hasil_mediasi.csv",      row.names = FALSE)
write.csv(rsq_df,     "output/hasil_rsquared.csv",     row.names = FALSE)
write.csv(load_df,    "output/hasil_loadings.csv",     row.names = FALSE)

cat("══════════════════════════════════════════════════\n")
══════════════════════════════════════════════════
cat("           RINGKASAN HASIL SEM FINAL             \n")
           RINGKASAN HASIL SEM FINAL             
cat("══════════════════════════════════════════════════\n")
══════════════════════════════════════════════════
cat(sprintf("  Sampel            : %d responden\n",      nrow(df_imp)))
  Sampel            : 276 responden
cat(sprintf("  Konstruk          : %d\n",                length(cols_def)))
  Konstruk          : 16
cat(sprintf("  Indikator total   : %d\n",                length(unlist(cols_def))))
  Indikator total   : 46
cat("──────────────────────────────────────────────────\n")
──────────────────────────────────────────────────
cat("  Fit Model (Robust / MLR):\n")
  Fit Model (Robust / MLR):
cat(sprintf("  CFI    = %.3f | TLI    = %.3f\n",    sf["cfi.robust"],   sf["tli.robust"]))
  CFI    = 0.928 | TLI    = 0.919
cat(sprintf("  RMSEA  = %.3f | SRMR   = %.3f\n",    sf["rmsea.robust"], sf["srmr"]))
  RMSEA  = 0.049 | SRMR   = 0.049
cat("──────────────────────────────────────────────────\n")
──────────────────────────────────────────────────
sig_paths <- paths %>% filter(p < 0.05)
cat(sprintf("  Jalur signifikan  : %d dari %d\n",   nrow(sig_paths), nrow(paths)))
  Jalur signifikan  : 20 dari 64
cat(sprintf("  Jalur positif sig : %d\n",            sum(sig_paths$Beta > 0)))
  Jalur positif sig : 18
cat(sprintf("  Jalur negatif sig : %d ⚠️\n",         sum(sig_paths$Beta < 0)))
  Jalur negatif sig : 2 ⚠️
cat("──────────────────────────────────────────────────\n")
──────────────────────────────────────────────────
cat("  File output tersimpan di folder: output/\n")
  File output tersimpan di folder: output/
cat("  ✓ hasil_jalur_sem.csv\n")
  ✓ hasil_jalur_sem.csv
cat("  ✓ hasil_cr_ave.csv\n")
  ✓ hasil_cr_ave.csv
cat("  ✓ hasil_reliabilitas.csv\n")
  ✓ hasil_reliabilitas.csv
cat("  ✓ hasil_mediasi.csv\n")
  ✓ hasil_mediasi.csv
cat("  ✓ hasil_rsquared.csv\n")
  ✓ hasil_rsquared.csv
cat("  ✓ hasil_loadings.csv\n")
  ✓ hasil_loadings.csv
cat("══════════════════════════════════════════════════\n")
══════════════════════════════════════════════════

Catatan Metodologi & Keterbatasan

Kekuatan analisis ini:

  • Estimator MLR robust terhadap non-normalitas data Likert
  • Bootstrap 1000x memberikan CI yang stabil untuk mediasi
  • HTMT sebagai kriteria diskriminan yang lebih ketat dari Fornell-Larcker
  • Indikator bermasalah telah di-drop sebelum SEM

Keterbatasan yang perlu dicatat:

  1. Multikolinearitas mediator: Beberapa konstruk mediator berkorelasi sangat tinggi (> 0.85). Path coefficient individual mungkin tidak stabil — lebih aman menginterpretasikan total effect daripada path per-mediator.

  2. Beta > 1: Beberapa jalur H1 (Importance → Mediator) menghasilkan standardized coefficient > 1.0, yang mengindikasikan Heywood case atau estimasi tidak stabil akibat multikolinearitas.

  3. Validitas diskriminan: Beberapa pasangan konstruk (CustSat–RiskMgt, FinancialPerf–QualComp) memiliki korelasi yang sangat tinggi. Pertimbangkan menggabungkan konstruk yang konseptually overlapping untuk model yang lebih parsimonious.

  4. StdImpl: Konstruk ini berdiri sendiri (korelasi dengan konstruk lain ≈ 0) dan R² = ~8%. Perlu evaluasi teoritis apakah StdImpl layak dipertahankan dalam model.


Referensi: Hair et al. (2014); Fornell & Larcker (1981); Rhemtulla et al. (2012); Little et al. (2002); Henseler et al. (2015); Hayes (2018)

Universitas Airlangga × Bappenas | 2025