1. Import Data

library(lavaan)
library(semPlot)
library(psych)
library(car)

url <- "https://raw.githubusercontent.com/WalidKW/Divorce-Predictors-Dataset/master/divorce.csv"
data <- read.csv(url, sep = ";", header = TRUE)
cat("Dimensi data:", nrow(data), "baris x", ncol(data), "kolom\n")
## Dimensi data: 170 baris x 55 kolom

2. Visualisasi Data Per-Kolom

par(mfrow = c(2, 4), mar = c(4, 4, 2, 1))
for (col in colnames(data)[1:8]) {
  hist(data[[col]], main = paste("Histogram of", col), xlab = col, col = "lightblue", border = "black")
}

par(mfrow = c(1, 1))

3. Pre-Processing

Missing Value

cat("Total missing values:", sum(is.na(data)), "\n")
## Total missing values: 0

Data Duplikat

cat("Jumlah baris duplikat:", sum(duplicated(data)), "\n")
## Jumlah baris duplikat: 20

Ubah ke Numerik

data_numeric <- data
for (col in colnames(data_numeric)) {
  if (!is.numeric(data_numeric[[col]])) {
    data_numeric[[col]] <- as.numeric(as.factor(data_numeric[[col]]))
  }
}

4. Normalisasi Z-Score

data_z <- as.data.frame(lapply(data_numeric, function(x) {
  if (is.numeric(x)) (x - mean(x)) / sd(x) else x
}))
head(data_z[, 1:10])
##         Atr1       Atr2       Atr3       Atr4       Atr5       Atr6       Atr7
## 1  0.1373658  0.2363108  1.5792180 -0.3206436 -0.9442507 -0.8263505 -0.5498152
## 2  1.3664283  1.5981022  1.5792180  1.6736034  1.5064763 -0.8263505 -0.5498152
## 3  0.1373658  0.2363108  0.1662335  0.3441054 -0.3315689  2.4920650  1.6756273
## 4  0.7518971  0.2363108  0.8727258  0.3441054  0.8937945  2.4920650  2.7883486
## 5  0.1373658  0.2363108 -0.5402588 -0.3206436 -0.3315689  0.2797880 -0.5498152
## 6 -1.0916967 -1.1254805 -0.5402588 -0.9853926 -0.9442507  1.3859265 -0.5498152
##         Atr8       Atr9      Atr10
## 1 -0.9395812 -0.9363583 -1.1089964
## 2  1.6471201  1.6310757  1.7048750
## 3 -0.2929059 -0.2944998  0.2979393
## 4  1.0004448  0.9892172  1.0014072
## 5 -0.9395812 -0.9363583 -1.1089964
## 6 -0.9395812 -0.9363583 -0.4055285

5. Statistika Deskriptif

describe(data_numeric)
##       vars   n mean   sd median trimmed  mad min max range  skew kurtosis   se
## Atr1     1 170 1.78 1.63    2.0    1.72 2.97   0   4     4  0.05    -1.70 0.12
## Atr2     2 170 1.65 1.47    2.0    1.57 1.48   0   4     4  0.20    -1.44 0.11
## Atr3     3 170 1.76 1.42    2.0    1.71 1.48   0   4     4 -0.01    -1.46 0.11
## Atr4     4 170 1.48 1.50    1.0    1.35 1.48   0   4     4  0.36    -1.42 0.12
## Atr5     5 170 1.54 1.63    1.0    1.43 1.48   0   4     4  0.30    -1.66 0.13
## Atr6     6 170 0.75 0.90    0.0    0.62 0.00   0   4     4  1.09     0.75 0.07
## Atr7     7 170 0.49 0.90    0.0    0.29 0.00   0   4     4  2.33     5.55 0.07
## Atr8     8 170 1.45 1.55    1.0    1.32 1.48   0   4     4  0.38    -1.50 0.12
## Atr9     9 170 1.46 1.56    1.0    1.32 1.48   0   4     4  0.31    -1.63 0.12
## Atr10   10 170 1.58 1.42    2.0    1.47 1.48   0   4     4  0.23    -1.35 0.11
## Atr11   11 170 1.69 1.65    1.0    1.61 1.48   0   4     4  0.19    -1.70 0.13
## Atr12   12 170 1.65 1.47    1.5    1.57 2.22   0   4     4  0.20    -1.47 0.11
## Atr13   13 170 1.84 1.48    2.0    1.79 1.48   0   4     4  0.06    -1.49 0.11
## Atr14   14 170 1.57 1.50    1.0    1.46 1.48   0   4     4  0.29    -1.47 0.12
## Atr15   15 170 1.57 1.51    1.0    1.46 1.48   0   4     4  0.21    -1.60 0.12
## Atr16   16 170 1.48 1.50    1.0    1.35 1.48   0   4     4  0.36    -1.44 0.12
## Atr17   17 170 1.65 1.61    1.0    1.57 1.48   0   4     4  0.17    -1.70 0.12
## Atr18   18 170 1.52 1.57    1.0    1.40 1.48   0   4     4  0.29    -1.60 0.12
## Atr19   19 170 1.64 1.64    1.0    1.55 1.48   0   4     4  0.18    -1.73 0.13
## Atr20   20 170 1.46 1.55    1.0    1.32 1.48   0   4     4  0.38    -1.50 0.12
## Atr21   21 170 1.39 1.45    1.0    1.28 1.48   0   4     4  0.36    -1.52 0.11
## Atr22   22 170 1.25 1.45    0.0    1.07 0.00   0   4     4  0.61    -1.18 0.11
## Atr23   23 170 1.41 1.61    0.0    1.26 0.00   0   4     4  0.42    -1.59 0.12
## Atr24   24 170 1.51 1.50    1.0    1.39 1.48   0   4     4  0.33    -1.44 0.12
## Atr25   25 170 1.63 1.53    1.0    1.54 1.48   0   4     4  0.25    -1.54 0.12
## Atr26   26 170 1.49 1.50    1.0    1.36 1.48   0   4     4  0.36    -1.44 0.12
## Atr27   27 170 1.40 1.46    1.0    1.29 1.48   0   4     4  0.36    -1.50 0.11
## Atr28   28 170 1.31 1.47    0.5    1.13 0.74   0   4     4  0.54    -1.25 0.11
## Atr29   29 170 1.49 1.59    1.0    1.37 1.48   0   4     4  0.35    -1.60 0.12
## Atr30   30 170 1.49 1.50    1.0    1.37 1.48   0   4     4  0.36    -1.43 0.12
## Atr31   31 170 2.12 1.65    2.0    2.15 2.97   0   4     4 -0.07    -1.65 0.13
## Atr32   32 170 2.06 1.62    2.0    2.07 2.97   0   4     4 -0.06    -1.65 0.12
## Atr33   33 170 1.81 1.79    1.0    1.76 1.48   0   4     4  0.20    -1.79 0.14
## Atr34   34 170 1.90 1.63    1.0    1.88 1.48   0   4     4  0.14    -1.65 0.13
## Atr35   35 170 1.67 1.84    0.5    1.59 0.74   0   4     4  0.32    -1.79 0.14
## Atr36   36 170 1.61 1.80    0.0    1.51 0.00   0   4     4  0.35    -1.75 0.14
## Atr37   37 170 2.09 1.72    2.0    2.11 2.97   0   4     4 -0.03    -1.75 0.13
## Atr38   38 170 1.86 1.73    1.0    1.82 1.48   0   4     4  0.14    -1.76 0.13
## Atr39   39 170 2.09 1.72    2.0    2.11 2.97   0   4     4 -0.03    -1.74 0.13
## Atr40   40 170 1.87 1.80    1.5    1.84 2.22   0   4     4  0.10    -1.83 0.14
## Atr41   41 170 1.99 1.72    2.0    1.99 2.97   0   4     4  0.04    -1.74 0.13
## Atr42   42 170 2.16 1.57    2.0    2.20 2.97   0   4     4 -0.22    -1.50 0.12
## Atr43   43 170 2.71 1.35    3.0    2.88 1.48   0   4     4 -0.65    -0.83 0.10
## Atr44   44 170 1.94 1.68    2.0    1.93 2.97   0   4     4  0.01    -1.70 0.13
## Atr45   45 170 2.46 1.50    3.0    2.57 1.48   0   4     4 -0.46    -1.28 0.12
## Atr46   46 170 2.55 1.37    3.0    2.69 1.48   0   4     4 -0.62    -0.87 0.11
## Atr47   47 170 2.27 1.59    2.0    2.34 2.97   0   4     4 -0.18    -1.58 0.12
## Atr48   48 170 2.74 1.14    3.0    2.88 1.48   0   4     4 -0.68    -0.17 0.09
## Atr49   49 170 2.38 1.51    3.0    2.48 1.48   0   4     4 -0.32    -1.39 0.12
## Atr50   50 170 2.43 1.41    2.0    2.54 1.48   0   4     4 -0.29    -1.27 0.11
## Atr51   51 170 2.48 1.26    3.0    2.56 1.48   0   4     4 -0.31    -1.01 0.10
## Atr52   52 170 2.52 1.48    3.0    2.65 1.48   0   4     4 -0.46    -1.27 0.11
## Atr53   53 170 2.24 1.51    2.0    2.30 1.48   0   4     4 -0.19    -1.44 0.12
## Atr54   54 170 2.01 1.67    2.0    2.01 2.97   0   4     4  0.03    -1.67 0.13
## Class   55 170 0.49 0.50    0.0    0.49 0.00   0   1     1  0.02    -2.01 0.04

6. Uji Asumsi

Uji Normal Multivariat (Mardia)

mardia(data_z)

## Call: mardia(x = data_z)
## 
## Mardia tests of multivariate skew and kurtosis
## Use describe(x) the to get univariate tests
## n.obs = 170   num.vars =  55 
## b1p =  2418.18   skew =  68515.13  with probability  <=  0
##  small sample skew =  69767.93  with probability <=  0
## b2p =  4348.72   kurtosis =  99.93  with probability <=  0

Uji Multikolinearitas

Determinan Matriks Kovarians

data_manifest <- data_z[, paste0("Atr", 1:30)]
data_manifest[] <- lapply(data_manifest, function(x) as.numeric(as.character(x)))
cov_matrix <- cov(data_manifest, use = "complete.obs")
det_cov <- det(cov_matrix)
cat("Determinan matriks kovarians:", det_cov, "\n")
## Determinan matriks kovarians: 7.212014e-30

VIF

data_manifest_clean <- na.omit(data_manifest)
model_vif <- lm(Atr21 ~ Atr1 + Atr2 + Atr3 + Atr4 + Atr5 + Atr6 + Atr7 + Atr8 + Atr9 + Atr10 +
                  Atr11 + Atr12 + Atr13 + Atr14 + Atr15 + Atr16 + Atr17 + Atr18 + Atr19 + Atr20,
                data = data_manifest_clean)
vif_values <- vif(model_vif)
print(vif_values)
##      Atr1      Atr2      Atr3      Atr4      Atr5      Atr6      Atr7      Atr8 
##  9.033473  7.300298  5.431756  9.161967 18.519142  1.925889  2.818800 14.924296 
##      Atr9     Atr10     Atr11     Atr12     Atr13     Atr14     Atr15     Atr16 
## 23.571981  9.229343 17.275935 16.027903  9.942210 11.855038 19.867236 14.430559 
##     Atr17     Atr18     Atr19     Atr20 
## 28.603210 34.728098 24.410071 26.908480

Uji Kecukupan Sampel (KMO)

r <- cor(data_z)
KMO(r)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = r)
## Overall MSA =  0.96
## MSA for each item = 
##  Atr1  Atr2  Atr3  Atr4  Atr5  Atr6  Atr7  Atr8  Atr9 Atr10 Atr11 Atr12 Atr13 
##  0.97  0.97  0.96  0.95  0.98  0.77  0.90  0.97  0.96  0.97  0.97  0.96  0.98 
## Atr14 Atr15 Atr16 Atr17 Atr18 Atr19 Atr20 Atr21 Atr22 Atr23 Atr24 Atr25 Atr26 
##  0.97  0.96  0.97  0.96  0.98  0.97  0.96  0.96  0.96  0.97  0.98  0.96  0.97 
## Atr27 Atr28 Atr29 Atr30 Atr31 Atr32 Atr33 Atr34 Atr35 Atr36 Atr37 Atr38 Atr39 
##  0.97  0.95  0.97  0.96  0.96  0.98  0.98  0.97  0.97  0.97  0.98  0.97  0.97 
## Atr40 Atr41 Atr42 Atr43 Atr44 Atr45 Atr46 Atr47 Atr48 Atr49 Atr50 Atr51 Atr52 
##  0.97  0.98  0.96  0.94  0.97  0.93  0.93  0.95  0.96  0.96  0.96  0.96  0.93 
## Atr53 Atr54 Class 
##  0.95  0.97  0.97

7. CFA (Confirmatory Factor Analysis)

CFA Konstruk Konflik (X1)

model_cfa_x1 <- '
  Konflik =~ Atr1 + Atr2 + Atr3 + Atr4 + Atr5 + Atr6 + Atr7 + Atr8 + Atr9 + Atr10
'
fit_x1 <- cfa(model_cfa_x1, data = data_z, std.lv = TRUE)
summary(fit_x1, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.6-21 ended normally after 31 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        20
## 
##   Number of observations                           170
## 
## Model Test User Model:
##                                                       
##   Test statistic                               231.139
##   Degrees of freedom                                35
##   P-value (Chi-square)                           0.000
## 
## Model Test Baseline Model:
## 
##   Test statistic                              2098.068
##   Degrees of freedom                                45
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.904
##   Tucker-Lewis Index (TLI)                       0.877
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -1473.716
##   Loglikelihood unrestricted model (H1)      -1358.147
##                                                       
##   Akaike (AIC)                                2987.432
##   Bayesian (BIC)                              3050.148
##   Sample-size adjusted Bayesian (SABIC)       2986.821
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.182
##   90 Percent confidence interval - lower         0.160
##   90 Percent confidence interval - upper         0.204
##   P-value H_0: RMSEA <= 0.050                    0.000
##   P-value H_0: RMSEA >= 0.080                    1.000
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.054
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   Konflik =~                                                            
##     Atr1              0.902    0.059   15.291    0.000    0.902    0.905
##     Atr2              0.885    0.060   14.793    0.000    0.885    0.887
##     Atr3              0.861    0.061   14.156    0.000    0.861    0.864
##     Atr4              0.887    0.060   14.842    0.000    0.887    0.889
##     Atr5              0.940    0.057   16.431    0.000    0.940    0.942
##     Atr6              0.274    0.076    3.618    0.000    0.274    0.275
##     Atr7              0.491    0.072    6.783    0.000    0.491    0.492
##     Atr8              0.925    0.058   15.977    0.000    0.925    0.928
##     Atr9              0.955    0.056   16.918    0.000    0.955    0.958
##     Atr10             0.890    0.060   14.950    0.000    0.890    0.893
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Atr1              0.180    0.022    8.272    0.000    0.180    0.181
##    .Atr2              0.211    0.025    8.444    0.000    0.211    0.213
##    .Atr3              0.252    0.029    8.605    0.000    0.252    0.254
##    .Atr4              0.208    0.025    8.430    0.000    0.208    0.209
##    .Atr5              0.111    0.015    7.541    0.000    0.111    0.112
##    .Atr6              0.919    0.100    9.203    0.000    0.919    0.924
##    .Atr7              0.753    0.082    9.153    0.000    0.753    0.758
##    .Atr8              0.138    0.017    7.916    0.000    0.138    0.139
##    .Atr9              0.083    0.012    6.893    0.000    0.083    0.083
##    .Atr10             0.201    0.024    8.395    0.000    0.201    0.203
##     Konflik           1.000                               1.000    1.000
semPaths(fit_x1, what = "path", whatLabels = "std", style = "ram", layout = "tree",
         rotation = 2, sizeMan = 6, sizeLat = 7, edge.label.cex = 1.2, label.cex = 1.3,
         color = list(lat = "lightblue", man = "lightgreen"))

CFA Konstruk Koneksi (X2)

model_cfa_x2 <- '
  Koneksi =~ Atr11 + Atr12 + Atr13 + Atr14 + Atr15 + Atr16 + Atr17 + Atr18 + Atr19 + Atr20
'
fit_x2 <- cfa(model_cfa_x2, data = data_z, std.lv = TRUE)
summary(fit_x2, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.6-21 ended normally after 48 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        20
## 
##   Number of observations                           170
## 
## Model Test User Model:
##                                                       
##   Test statistic                               368.042
##   Degrees of freedom                                35
##   P-value (Chi-square)                           0.000
## 
## Model Test Baseline Model:
## 
##   Test statistic                              3515.359
##   Degrees of freedom                                45
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.904
##   Tucker-Lewis Index (TLI)                       0.877
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)               -833.522
##   Loglikelihood unrestricted model (H1)       -649.501
##                                                       
##   Akaike (AIC)                                1707.045
##   Bayesian (BIC)                              1769.761
##   Sample-size adjusted Bayesian (SABIC)       1706.434
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.237
##   90 Percent confidence interval - lower         0.215
##   90 Percent confidence interval - upper         0.259
##   P-value H_0: RMSEA <= 0.050                    0.000
##   P-value H_0: RMSEA >= 0.080                    1.000
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.022
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   Koneksi =~                                                            
##     Atr11             0.951    0.057   16.812    0.000    0.951    0.953
##     Atr12             0.939    0.057   16.435    0.000    0.939    0.942
##     Atr13             0.914    0.058   15.659    0.000    0.914    0.916
##     Atr14             0.921    0.058   15.870    0.000    0.921    0.923
##     Atr15             0.936    0.057   16.358    0.000    0.936    0.939
##     Atr16             0.923    0.058   15.940    0.000    0.923    0.926
##     Atr17             0.961    0.056   17.152    0.000    0.961    0.964
##     Atr18             0.969    0.056   17.445    0.000    0.969    0.972
##     Atr19             0.960    0.056   17.120    0.000    0.960    0.963
##     Atr20             0.957    0.056   17.020    0.000    0.957    0.960
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Atr11             0.091    0.011    8.264    0.000    0.091    0.091
##    .Atr12             0.113    0.013    8.471    0.000    0.113    0.113
##    .Atr13             0.160    0.018    8.720    0.000    0.160    0.160
##    .Atr14             0.147    0.017    8.667    0.000    0.147    0.148
##    .Atr15             0.117    0.014    8.504    0.000    0.117    0.118
##    .Atr16             0.142    0.016    8.648    0.000    0.142    0.143
##    .Atr17             0.071    0.009    7.970    0.000    0.071    0.071
##    .Atr18             0.054    0.007    7.556    0.000    0.054    0.055
##    .Atr19             0.073    0.009    8.004    0.000    0.073    0.073
##    .Atr20             0.079    0.010    8.101    0.000    0.079    0.079
##     Koneksi           1.000                               1.000    1.000
semPaths(fit_x2, what = "path", whatLabels = "std", style = "ram", layout = "tree",
         rotation = 2, sizeMan = 6, sizeLat = 7, edge.label.cex = 1.2, label.cex = 1.3,
         color = list(lat = "lightcoral", man = "lightyellow"))

CFA Konstruk Makna (Y)

model_cfa_y <- '
  Makna =~ Atr21 + Atr22 + Atr23 + Atr24 + Atr25 + Atr26 + Atr27 + Atr28 + Atr29 + Atr30
'
fit_y <- cfa(model_cfa_y, data = data_z, std.lv = TRUE)
summary(fit_y, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.6-21 ended normally after 39 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        20
## 
##   Number of observations                           170
## 
## Model Test User Model:
##                                                       
##   Test statistic                               415.852
##   Degrees of freedom                                35
##   P-value (Chi-square)                           0.000
## 
## Model Test Baseline Model:
## 
##   Test statistic                              3301.868
##   Degrees of freedom                                45
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.883
##   Tucker-Lewis Index (TLI)                       0.850
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)               -964.173
##   Loglikelihood unrestricted model (H1)       -756.247
##                                                       
##   Akaike (AIC)                                1968.345
##   Bayesian (BIC)                              2031.061
##   Sample-size adjusted Bayesian (SABIC)       1967.734
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.253
##   90 Percent confidence interval - lower         0.232
##   90 Percent confidence interval - upper         0.275
##   P-value H_0: RMSEA <= 0.050                    0.000
##   P-value H_0: RMSEA >= 0.080                    1.000
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.025
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   Makna =~                                                              
##     Atr21             0.948    0.057   16.725    0.000    0.948    0.951
##     Atr22             0.925    0.058   15.987    0.000    0.925    0.927
##     Atr23             0.935    0.057   16.318    0.000    0.935    0.938
##     Atr24             0.917    0.058   15.748    0.000    0.917    0.919
##     Atr25             0.928    0.058   16.088    0.000    0.928    0.931
##     Atr26             0.938    0.057   16.399    0.000    0.938    0.941
##     Atr27             0.945    0.057   16.619    0.000    0.945    0.948
##     Atr28             0.920    0.058   15.844    0.000    0.920    0.923
##     Atr29             0.964    0.056   17.238    0.000    0.964    0.966
##     Atr30             0.924    0.058   15.979    0.000    0.924    0.927
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Atr21             0.095    0.012    8.086    0.000    0.095    0.096
##    .Atr22             0.139    0.016    8.483    0.000    0.139    0.140
##    .Atr23             0.119    0.014    8.339    0.000    0.119    0.120
##    .Atr24             0.154    0.018    8.564    0.000    0.154    0.155
##    .Atr25             0.133    0.016    8.443    0.000    0.133    0.134
##    .Atr26             0.114    0.014    8.297    0.000    0.114    0.115
##    .Atr27             0.102    0.012    8.163    0.000    0.102    0.102
##    .Atr28             0.148    0.017    8.533    0.000    0.148    0.149
##    .Atr29             0.066    0.009    7.519    0.000    0.066    0.066
##    .Atr30             0.140    0.016    8.486    0.000    0.140    0.140
##     Makna             1.000                               1.000    1.000
semPaths(fit_y, what = "path", whatLabels = "std", style = "ram", layout = "tree",
         rotation = 2, sizeMan = 6, sizeLat = 7, edge.label.cex = 1.2, label.cex = 1.3,
         color = list(lat = "lightpink", man = "lightcyan"))

Ringkasan Fit Indeks CFA

cfa_fits <- data.frame(
  Konstruk = c("Konflik", "Koneksi", "Makna"),
  CFI = c(fitMeasures(fit_x1, "cfi"), fitMeasures(fit_x2, "cfi"), fitMeasures(fit_y, "cfi")),
  RMSEA = c(fitMeasures(fit_x1, "rmsea"), fitMeasures(fit_x2, "rmsea"), fitMeasures(fit_y, "rmsea")),
  SRMR = c(fitMeasures(fit_x1, "srmr"), fitMeasures(fit_x2, "srmr"), fitMeasures(fit_y, "srmr")),
  TLI = c(fitMeasures(fit_x1, "tli"), fitMeasures(fit_x2, "tli"), fitMeasures(fit_y, "tli"))
)
print(cfa_fits)
##   Konstruk       CFI     RMSEA       SRMR       TLI
## 1  Konflik 0.9044653 0.1815615 0.05372031 0.8771697
## 2  Koneksi 0.9040323 0.2365872 0.02166788 0.8766130
## 3    Makna 0.8830620 0.2529993 0.02462423 0.8496512

8. Composite Reliability (CR)

hitung_CR <- function(fit) {
  std <- standardizedSolution(fit)
  lambda <- std$est.std[std$op == "=~"]
  theta <- 1 - lambda^2
  CR <- sum(lambda)^2 / (sum(lambda)^2 + sum(theta))
  return(CR)
}

cr_df <- data.frame(
  Konstruk = c("Konflik", "Koneksi", "Makna"),
  CR = c(hitung_CR(fit_x1), hitung_CR(fit_x2), hitung_CR(fit_y))
)
print(cr_df)
##   Konstruk        CR
## 1  Konflik 0.9545285
## 2  Koneksi 0.9883778
## 3    Makna 0.9863319

9. Structural Equation Modeling (SEM)

model_sem <- '
  Konflik =~ Atr1 + Atr2 + Atr3 + Atr4 + Atr5 + Atr6 + Atr7 + Atr8 + Atr9 + Atr10
  Koneksi =~ Atr11 + Atr12 + Atr13 + Atr14 + Atr15 + Atr16 + Atr17 + Atr18 + Atr19 + Atr20
  Makna =~ Atr21 + Atr22 + Atr23 + Atr24 + Atr25 + Atr26 + Atr27 + Atr28 + Atr29 + Atr30
  Makna ~ Konflik + Koneksi
'

fit_sem <- sem(model_sem, data = data_z, std.lv = TRUE)
summary(fit_sem, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.6-21 ended normally after 170 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        63
## 
##   Number of observations                           170
## 
## Model Test User Model:
##                                                       
##   Test statistic                              2534.276
##   Degrees of freedom                               402
##   P-value (Chi-square)                           0.000
## 
## Model Test Baseline Model:
## 
##   Test statistic                             11407.307
##   Degrees of freedom                               435
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.806
##   Tucker-Lewis Index (TLI)                       0.790
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -2785.027
##   Loglikelihood unrestricted model (H1)      -1517.889
##                                                       
##   Akaike (AIC)                                5696.054
##   Bayesian (BIC)                              5893.609
##   Sample-size adjusted Bayesian (SABIC)       5694.129
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.177
##   90 Percent confidence interval - lower         0.170
##   90 Percent confidence interval - upper         0.183
##   P-value H_0: RMSEA <= 0.050                    0.000
##   P-value H_0: RMSEA >= 0.080                    1.000
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.037
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   Konflik =~                                                            
##     Atr1              0.902    0.059   15.321    0.000    0.902    0.905
##     Atr2              0.884    0.060   14.819    0.000    0.884    0.887
##     Atr3              0.843    0.061   13.712    0.000    0.843    0.845
##     Atr4              0.865    0.061   14.298    0.000    0.865    0.868
##     Atr5              0.947    0.057   16.700    0.000    0.947    0.950
##     Atr6              0.298    0.075    3.968    0.000    0.298    0.299
##     Atr7              0.500    0.072    6.964    0.000    0.500    0.501
##     Atr8              0.934    0.057   16.286    0.000    0.934    0.937
##     Atr9              0.955    0.056   16.953    0.000    0.955    0.958
##     Atr10             0.890    0.059   14.992    0.000    0.890    0.893
##   Koneksi =~                                                            
##     Atr11             0.954    0.056   16.926    0.000    0.954    0.957
##     Atr12             0.930    0.058   16.177    0.000    0.930    0.933
##     Atr13             0.915    0.058   15.724    0.000    0.915    0.918
##     Atr14             0.918    0.058   15.807    0.000    0.918    0.921
##     Atr15             0.939    0.057   16.437    0.000    0.939    0.941
##     Atr16             0.926    0.058   16.038    0.000    0.926    0.929
##     Atr17             0.963    0.056   17.219    0.000    0.963    0.965
##     Atr18             0.967    0.056   17.353    0.000    0.967    0.969
##     Atr19             0.962    0.056   17.210    0.000    0.962    0.965
##     Atr20             0.955    0.056   16.966    0.000    0.955    0.958
##   Makna =~                                                              
##     Atr21             0.243    0.021   11.732    0.000    0.947    0.950
##     Atr22             0.237    0.021   11.455    0.000    0.923    0.925
##     Atr23             0.239    0.021   11.557    0.000    0.932    0.934
##     Atr24             0.237    0.021   11.440    0.000    0.921    0.924
##     Atr25             0.238    0.021   11.504    0.000    0.927    0.930
##     Atr26             0.242    0.021   11.657    0.000    0.941    0.943
##     Atr27             0.243    0.021   11.713    0.000    0.946    0.948
##     Atr28             0.236    0.021   11.389    0.000    0.917    0.919
##     Atr29             0.247    0.021   11.903    0.000    0.963    0.965
##     Atr30             0.239    0.021   11.525    0.000    0.929    0.931
## 
## Regressions:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   Makna ~                                                               
##     Konflik          -1.338    3.965   -0.338    0.736   -0.344   -0.344
##     Koneksi           5.094    4.129    1.234    0.217    1.309    1.309
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   Konflik ~~                                                            
##     Koneksi           0.998    0.002  472.602    0.000    0.998    0.998
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Atr1              0.181    0.020    8.838    0.000    0.181    0.182
##    .Atr2              0.212    0.024    8.910    0.000    0.212    0.214
##    .Atr3              0.284    0.032    9.012    0.000    0.284    0.286
##    .Atr4              0.246    0.027    8.966    0.000    0.246    0.247
##    .Atr5              0.097    0.012    8.398    0.000    0.097    0.098
##    .Atr6              0.905    0.098    9.212    0.000    0.905    0.911
##    .Atr7              0.744    0.081    9.192    0.000    0.744    0.749
##    .Atr8              0.122    0.014    8.595    0.000    0.122    0.122
##    .Atr9              0.082    0.010    8.215    0.000    0.082    0.083
##    .Atr10             0.201    0.023    8.888    0.000    0.201    0.202
##    .Atr11             0.084    0.010    8.534    0.000    0.084    0.085
##    .Atr12             0.129    0.015    8.794    0.000    0.129    0.129
##    .Atr13             0.156    0.018    8.881    0.000    0.156    0.157
##    .Atr14             0.151    0.017    8.867    0.000    0.151    0.152
##    .Atr15             0.113    0.013    8.726    0.000    0.113    0.114
##    .Atr16             0.137    0.016    8.824    0.000    0.137    0.138
##    .Atr17             0.067    0.008    8.344    0.000    0.067    0.068
##    .Atr18             0.060    0.007    8.222    0.000    0.060    0.060
##    .Atr19             0.068    0.008    8.352    0.000    0.068    0.068
##    .Atr20             0.082    0.010    8.513    0.000    0.082    0.082
##    .Atr21             0.097    0.012    8.259    0.000    0.097    0.097
##    .Atr22             0.143    0.017    8.604    0.000    0.143    0.144
##    .Atr23             0.126    0.015    8.508    0.000    0.126    0.127
##    .Atr24             0.145    0.017    8.616    0.000    0.145    0.146
##    .Atr25             0.135    0.016    8.561    0.000    0.135    0.136
##    .Atr26             0.110    0.013    8.383    0.000    0.110    0.110
##    .Atr27             0.100    0.012    8.294    0.000    0.100    0.101
##    .Atr28             0.154    0.018    8.654    0.000    0.154    0.155
##    .Atr29             0.067    0.009    7.793    0.000    0.067    0.068
##    .Atr30             0.132    0.015    8.541    0.000    0.132    0.132
##     Konflik           1.000                               1.000    1.000
##     Koneksi           1.000                               1.000    1.000
##    .Makna             1.000                               0.066    0.066

Visualisasi SEM

semPaths(fit_sem, what = "path", whatLabels = "std", style = "ram", layout = "tree",
         rotation = 2, sizeMan = 7, sizeLat = 7, color = "lightgray",
         edge.label.cex = 1.2, label.cex = 1.3)

10. Kesimpulan

  1. KMO = 0.96 — data sangat layak untuk analisis faktor.
  2. Reliabilitas sangat baik — semua CR > 0.95.
  3. Factor loadings tinggi (>0.84) kecuali Atr6 (0.28) dan Atr7 (0.49).
  4. Model fit SEM kurang memadai — hanya SRMR yang memenuhi kriteria.
  5. Tidak ada pengaruh signifikan Konflik maupun Koneksi terhadap Makna (p > 0.05).
  6. Korelasi antar faktor sangat tinggi (0.998) — discriminant validity rendah.