n_items <- 22
N <- 339
madde_adlari <- c(
paste0("Do", 1:6), # Doğal 1-6
paste0("Be", 1:4), # Bedensel 7-10
paste0("Uz", 1:3), # Uzamsal 11-13
paste0("Mu", 1:2), # Müziksel 14-15
paste0("Ma", 1:3), # Mantıksal 16-18
paste0("Di", 1:4) # Dilsel 19-22
)
# Alt üçgen değerleri oku (castejon.txt)
tri_values <- scan("castejon.txt", quiet = TRUE)
cat("Okunan değer sayısı:", length(tri_values),
"| Beklenen:", n_items*(n_items+1)/2, "\n")## Okunan değer sayısı: 253 | Beklenen: 253
# Simetrik korelasyon matrisi oluştur
cor_mat <- matrix(0, nrow = n_items, ncol = n_items)
idx <- 1
for (i in 1:n_items) {
for (j in 1:i) {
cor_mat[i, j] <- tri_values[idx]
cor_mat[j, i] <- tri_values[idx]
idx <- idx + 1
}
}
rownames(cor_mat) <- colnames(cor_mat) <- madde_adlarisd_vec <- rep(1, n_items) # SD bilinmiyorsa 1 → cor_mat = cov_mat
cov_mat <- cor2cov(cor_mat, sds = sd_vec)
cat("Matris hazır. Köşegen kontrol (hepsi 1 olmalı):\n")## Matris hazır. Köşegen kontrol (hepsi 1 olmalı):
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## Pozitif tanımlı: TRUE
get_fit <- function(fit, model_adi) {
i <- fitMeasures(fit, c("chisq","df","pvalue","cfi","tli",
"rmsea","rmsea.ci.lower","rmsea.ci.upper",
"srmr","aic","bic"))
data.frame(
Model = model_adi,
Chi2 = round(i["chisq"], 2),
df = as.integer(i["df"]),
p = round(i["pvalue"], 3),
CFI = round(i["cfi"], 3),
TLI = round(i["tli"], 3),
RMSEA = round(i["rmsea"], 3),
RMSEA_LL = round(i["rmsea.ci.lower"], 3),
RMSEA_UL = round(i["rmsea.ci.upper"], 3),
SRMR = round(i["srmr"], 3),
AIC = round(i["aic"], 1),
BIC = round(i["bic"], 1),
row.names = NULL
)
}Uyum indeksleri yetersiz: CFI = .839, TLI = .808, RMSEA = .088 [.082–.095], SRMR = .109. Hiçbir indeks kabul edilebilir eşiği (CFI ≥ .90, RMSEA ≤ .08) karşılamıyor. Faktör yükleri incelendiğinde çoğu madde beklenen faktörüne yeterli düzeyde yüklenmiş (λ = .581 ile .903 arası Doğal; .818–.879 Uzamsal). Ancak ciddi sorunlar var: Mu2’nin standardize yükü 1.151 Bu 1’i aşan yük, hata varyansının negatif çıkmasına (−.325) yol açıyor. Genellikle faktörün yetersiz sayıda maddeyle tanımlanmasından kaynaklanır (Müziksel = sadece 2 madde). Di1’in yükü .198, R² = .039 Bu madde Dilsel faktörü neredeyse hiç temsil etmiyor. Faktörler arası korelasyonlara bakıldığında Uzamsal-Mantıksal arasındaki korelasyon .820 gibi oldukça yüksek çıkmış, bu iki faktörün ayrışık geçerliliğini sorgulatıyor.
model1 <- '
Dogal =~ Do1 + Do2 + Do3 + Do4 + Do5 + Do6
Bedensel =~ Be1 + Be2 + Be3 + Be4
Uzamsal =~ Uz1 + Uz2 + Uz3
Muziksel =~ Mu1 + Mu2
Mantiksal =~ Ma1 + Ma2 + Ma3
Dilsel =~ Di1 + Di2 + Di3 + Di4
'
fit1 <- cfa(model1, sample.cov = cor_mat, sample.nobs = N,
estimator = "ML")
summary(fit1, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)## lavaan 0.6-21 ended normally after 100 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 59
##
## Number of observations 339
##
## Model Test User Model:
##
## Test statistic 708.548
## Degrees of freedom 194
## P-value (Chi-square) 0.000
##
## Model Test Baseline Model:
##
## Test statistic 3417.721
## Degrees of freedom 231
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.839
## Tucker-Lewis Index (TLI) 0.808
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -9216.841
## Loglikelihood unrestricted model (H1) -8862.567
##
## Akaike (AIC) 18551.682
## Bayesian (BIC) 18777.416
## Sample-size adjusted Bayesian (SABIC) 18590.258
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.088
## 90 Percent confidence interval - lower 0.082
## 90 Percent confidence interval - upper 0.095
## P-value H_0: RMSEA <= 0.050 0.000
## P-value H_0: RMSEA >= 0.080 0.977
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.109
##
## 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
## Dogal =~
## Do1 1.000 0.642 0.643
## Do2 0.905 0.094 9.576 0.000 0.580 0.581
## Do3 1.091 0.097 11.211 0.000 0.700 0.701
## Do4 1.222 0.100 12.275 0.000 0.784 0.786
## Do5 1.368 0.103 13.336 0.000 0.878 0.879
## Do6 1.405 0.104 13.562 0.000 0.902 0.903
## Bedensel =~
## Be1 1.000 0.692 0.693
## Be2 1.022 0.114 8.947 0.000 0.707 0.708
## Be3 0.583 0.096 6.064 0.000 0.403 0.404
## Be4 0.683 0.098 6.954 0.000 0.472 0.473
## Uzamsal =~
## Uz1 1.000 0.877 0.879
## Uz2 0.970 0.050 19.443 0.000 0.851 0.852
## Uz3 0.931 0.051 18.390 0.000 0.817 0.818
## Muziksel =~
## Mu1 1.000 0.493 0.494
## Mu2 2.330 0.622 3.748 0.000 1.150 1.151
## Mantiksal =~
## Ma1 1.000 0.725 0.726
## Ma2 0.452 0.084 5.411 0.000 0.327 0.328
## Ma3 0.899 0.086 10.444 0.000 0.651 0.652
## Dilsel =~
## Di1 1.000 0.198 0.198
## Di2 4.150 1.276 3.253 0.001 0.820 0.822
## Di3 4.064 1.247 3.259 0.001 0.803 0.805
## Di4 1.580 0.556 2.842 0.004 0.312 0.313
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Dogal ~~
## Bedensel 0.136 0.033 4.098 0.000 0.306 0.306
## Uzamsal 0.202 0.038 5.279 0.000 0.359 0.359
## Muziksel 0.050 0.021 2.313 0.021 0.157 0.157
## Mantiksal 0.203 0.038 5.399 0.000 0.436 0.436
## Dilsel 0.036 0.014 2.611 0.009 0.282 0.282
## Bedensel ~~
## Uzamsal 0.274 0.048 5.731 0.000 0.452 0.452
## Muziksel 0.107 0.037 2.863 0.004 0.313 0.313
## Mantiksal 0.279 0.047 5.903 0.000 0.556 0.556
## Dilsel 0.043 0.017 2.592 0.010 0.314 0.314
## Uzamsal ~~
## Muziksel 0.057 0.027 2.097 0.036 0.132 0.132
## Mantiksal 0.522 0.059 8.895 0.000 0.820 0.820
## Dilsel 0.046 0.018 2.567 0.010 0.265 0.265
## Muziksel ~~
## Mantiksal 0.120 0.041 2.920 0.003 0.337 0.337
## Dilsel 0.015 0.008 1.845 0.065 0.151 0.151
## Mantiksal ~~
## Dilsel 0.045 0.017 2.581 0.010 0.313 0.313
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Do1 0.585 0.048 12.235 0.000 0.585 0.587
## .Do2 0.660 0.053 12.453 0.000 0.660 0.662
## .Do3 0.507 0.042 11.937 0.000 0.507 0.509
## .Do4 0.382 0.034 11.188 0.000 0.382 0.383
## .Do5 0.226 0.025 8.988 0.000 0.226 0.227
## .Do6 0.184 0.023 7.881 0.000 0.184 0.184
## .Be1 0.519 0.061 8.556 0.000 0.519 0.520
## .Be2 0.498 0.061 8.187 0.000 0.498 0.499
## .Be3 0.835 0.069 12.129 0.000 0.835 0.837
## .Be4 0.774 0.066 11.691 0.000 0.774 0.776
## .Uz1 0.227 0.029 7.769 0.000 0.227 0.228
## .Uz2 0.273 0.031 8.875 0.000 0.273 0.274
## .Uz3 0.329 0.033 9.903 0.000 0.329 0.330
## .Mu1 0.754 0.083 9.045 0.000 0.754 0.756
## .Mu2 -0.325 0.326 -0.995 0.320 -0.325 -0.326
## .Ma1 0.472 0.053 8.863 0.000 0.472 0.473
## .Ma2 0.890 0.070 12.660 0.000 0.890 0.892
## .Ma3 0.573 0.055 10.502 0.000 0.573 0.575
## .Di1 0.958 0.074 12.893 0.000 0.958 0.961
## .Di2 0.324 0.074 4.394 0.000 0.324 0.325
## .Di3 0.352 0.072 4.891 0.000 0.352 0.353
## .Di4 0.900 0.071 12.680 0.000 0.900 0.902
## Dogal 0.412 0.064 6.422 0.000 1.000 1.000
## Bedensel 0.478 0.080 5.997 0.000 1.000 1.000
## Uzamsal 0.770 0.078 9.850 0.000 1.000 1.000
## Muziksel 0.244 0.078 3.116 0.002 1.000 1.000
## Mantiksal 0.525 0.078 6.740 0.000 1.000 1.000
## Dilsel 0.039 0.024 1.655 0.098 1.000 1.000
##
## R-Square:
## Estimate
## Do1 0.413
## Do2 0.338
## Do3 0.491
## Do4 0.617
## Do5 0.773
## Do6 0.816
## Be1 0.480
## Be2 0.501
## Be3 0.163
## Be4 0.224
## Uz1 0.772
## Uz2 0.726
## Uz3 0.670
## Mu1 0.244
## Mu2 NA
## Ma1 0.527
## Ma2 0.108
## Ma3 0.425
## Di1 0.039
## Di2 0.675
## Di3 0.647
## Di4 0.098
##
## --- Faktörler Arası Korelasyonlar ---
## Dogal Bednsl Uzamsl Muzksl Mntksl Dilsel
## Dogal 1.000
## Bedensel 0.306 1.000
## Uzamsal 0.359 0.452 1.000
## Muziksel 0.157 0.313 0.132 1.000
## Mantiksal 0.436 0.556 0.820 0.337 1.000
## Dilsel 0.282 0.314 0.265 0.151 0.313 1.000
##
## --- Standardize Faktör Yükleri ---
s1 <- standardizedSolution(fit1)
print(s1[s1$op == "=~", c("lhs","rhs","est.std","se","z","pvalue")])## lhs rhs est.std se z pvalue
## 1 Dogal Do1 0.643 0.034 18.715 0.000
## 2 Dogal Do2 0.581 0.038 15.158 0.000
## 3 Dogal Do3 0.701 0.030 23.230 0.000
## 4 Dogal Do4 0.786 0.024 33.291 0.000
## 5 Dogal Do5 0.879 0.016 54.578 0.000
## 6 Dogal Do6 0.903 0.014 62.790 0.000
## 7 Bedensel Be1 0.693 0.043 15.925 0.000
## 8 Bedensel Be2 0.708 0.043 16.433 0.000
## 9 Bedensel Be3 0.404 0.055 7.333 0.000
## 10 Bedensel Be4 0.473 0.052 9.050 0.000
## 11 Uzamsal Uz1 0.879 0.018 48.216 0.000
## 12 Uzamsal Uz2 0.852 0.020 42.733 0.000
## 13 Uzamsal Uz3 0.818 0.022 36.746 0.000
## 14 Muziksel Mu1 0.494 0.073 6.737 0.000
## 15 Muziksel Mu2 1.151 0.143 8.065 0.000
## 16 Mantiksal Ma1 0.726 0.037 19.493 0.000
## 17 Mantiksal Ma2 0.328 0.055 6.008 0.000
## 18 Mantiksal Ma3 0.652 0.040 16.365 0.000
## 19 Dilsel Di1 0.198 0.058 3.391 0.001
## 20 Dilsel Di2 0.822 0.046 17.891 0.000
## 21 Dilsel Di3 0.805 0.046 17.586 0.000
## 22 Dilsel Di4 0.313 0.055 5.648 0.000
CFI = .842, RMSEA = .086 M1’e göre iyileşme var, AIC daha düşük (18532 < 18552). Ancak M1 vs M2 ki-kare fark testi negatif Δχ² veriyor (−1.41), bu normalden sapma ve model tanımlama sorununa işaret ediyor. G faktörünün Mantıksal’a yükü 1.089 ve Dilsel’e yükü 1.027 İkisi de 1’i aşıyor. Bu faktörlerin birinci derece varyansları G tarafından tamamen açıklanıyor hatta “aşılıyor”, dolayısıyla bu faktörlerin R² değerleri NA çıkıyor. Tek bir G faktörüyle tüm altı boyutu hiyerarşik olarak modellemek bu veri için uygun görünmüyor.
model2 <- '
# Birinci derece
Dogal =~ Do1 + Do2 + Do3 + Do4 + Do5 + Do6
Bedensel =~ Be1 + Be2 + Be3 + Be4
Uzamsal =~ Uz1 + Uz2 + Uz3
Muziksel =~ Mu1 + Mu2
Mantiksal =~ Ma1 + Ma2 + Ma3
Dilsel =~ Di1 + Di2 + Di3 + Di4
# İkinci derece
G =~ Dogal + Bedensel + Uzamsal + Muziksel + Mantiksal + Dilsel
'
fit2 <- cfa(model2, sample.cov = cor_mat, sample.nobs = N,
estimator = "ML")
summary(fit2, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)## lavaan 0.6-21 ended normally after 68 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 50
##
## Number of observations 339
##
## Model Test User Model:
##
## Test statistic 707.135
## Degrees of freedom 203
## P-value (Chi-square) 0.000
##
## Model Test Baseline Model:
##
## Test statistic 3417.721
## Degrees of freedom 231
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.842
## Tucker-Lewis Index (TLI) 0.820
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -9216.134
## Loglikelihood unrestricted model (H1) -8862.567
##
## Akaike (AIC) 18532.268
## Bayesian (BIC) 18723.568
## Sample-size adjusted Bayesian (SABIC) 18564.960
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.086
## 90 Percent confidence interval - lower 0.079
## 90 Percent confidence interval - upper 0.093
## P-value H_0: RMSEA <= 0.050 0.000
## P-value H_0: RMSEA >= 0.080 0.912
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.088
##
## 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
## Dogal =~
## Do1 1.000 0.640 0.641
## Do2 0.907 0.095 9.552 0.000 0.580 0.581
## Do3 1.093 0.098 11.172 0.000 0.699 0.700
## Do4 1.226 0.100 12.235 0.000 0.784 0.786
## Do5 1.373 0.103 13.287 0.000 0.878 0.880
## Do6 1.410 0.104 13.512 0.000 0.902 0.904
## Bedensel =~
## Be1 1.000 0.670 0.671
## Be2 1.088 0.128 8.502 0.000 0.728 0.729
## Be3 0.628 0.102 6.173 0.000 0.420 0.421
## Be4 0.692 0.103 6.697 0.000 0.463 0.464
## Uzamsal =~
## Uz1 1.000 0.878 0.879
## Uz2 0.970 0.050 19.315 0.000 0.851 0.852
## Uz3 0.931 0.051 18.285 0.000 0.817 0.818
## Muziksel =~
## Mu1 1.000 0.562 0.563
## Mu2 1.794 0.481 3.732 0.000 1.009 1.010
## Mantiksal =~
## Ma1 1.000 0.648 0.649
## Ma2 0.661 0.091 7.294 0.000 0.428 0.429
## Ma3 1.110 0.096 11.536 0.000 0.720 0.721
## Dilsel =~
## Di1 1.000 0.744 0.745
## Di2 0.324 0.076 4.241 0.000 0.241 0.242
## Di3 0.274 0.077 3.582 0.000 0.204 0.204
## Di4 0.519 0.076 6.828 0.000 0.386 0.387
## G =~
## Dogal 1.000 0.418 0.418
## Bedensel 1.316 0.266 4.937 0.000 0.525 0.525
## Uzamsal 2.357 0.387 6.094 0.000 0.718 0.718
## Muziksel 0.666 0.235 2.829 0.005 0.317 0.317
## Mantiksal 2.640 0.431 6.130 0.000 1.089 1.089
## Dilsel 2.859 0.450 6.355 0.000 1.027 1.027
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Do1 0.588 0.048 12.242 0.000 0.588 0.589
## .Do2 0.660 0.053 12.453 0.000 0.660 0.662
## .Do3 0.508 0.043 11.939 0.000 0.508 0.510
## .Do4 0.382 0.034 11.184 0.000 0.382 0.383
## .Do5 0.226 0.025 8.962 0.000 0.226 0.226
## .Do6 0.183 0.023 7.832 0.000 0.183 0.183
## .Be1 0.549 0.063 8.749 0.000 0.549 0.550
## .Be2 0.467 0.064 7.271 0.000 0.467 0.468
## .Be3 0.820 0.068 11.979 0.000 0.820 0.823
## .Be4 0.782 0.067 11.686 0.000 0.782 0.785
## .Uz1 0.227 0.030 7.643 0.000 0.227 0.228
## .Uz2 0.273 0.031 8.765 0.000 0.273 0.274
## .Uz3 0.330 0.034 9.845 0.000 0.330 0.331
## .Mu1 0.681 0.096 7.070 0.000 0.681 0.683
## .Mu2 -0.021 0.260 -0.080 0.936 -0.021 -0.021
## .Ma1 0.577 0.051 11.373 0.000 0.577 0.579
## .Ma2 0.814 0.064 12.675 0.000 0.814 0.816
## .Ma3 0.479 0.047 10.136 0.000 0.479 0.481
## .Di1 0.443 0.064 6.887 0.000 0.443 0.445
## .Di2 0.939 0.073 12.913 0.000 0.939 0.942
## .Di3 0.955 0.074 12.949 0.000 0.955 0.958
## .Di4 0.848 0.067 12.618 0.000 0.848 0.850
## .Dogal 0.338 0.054 6.316 0.000 0.826 0.826
## .Bedensel 0.325 0.061 5.340 0.000 0.724 0.724
## .Uzamsal 0.373 0.047 8.014 0.000 0.485 0.485
## .Muziksel 0.284 0.082 3.476 0.001 0.900 0.900
## .Mantiksal -0.078 0.029 -2.646 0.008 -0.185 -0.185
## .Dilsel -0.030 0.057 -0.530 0.596 -0.055 -0.055
## G 0.071 0.022 3.255 0.001 1.000 1.000
##
## R-Square:
## Estimate
## Do1 0.411
## Do2 0.338
## Do3 0.490
## Do4 0.617
## Do5 0.774
## Do6 0.817
## Be1 0.450
## Be2 0.532
## Be3 0.177
## Be4 0.215
## Uz1 0.772
## Uz2 0.726
## Uz3 0.669
## Mu1 0.317
## Mu2 NA
## Ma1 0.421
## Ma2 0.184
## Ma3 0.519
## Di1 0.555
## Di2 0.058
## Di3 0.042
## Di4 0.150
## Dogal 0.174
## Bedensel 0.276
## Uzamsal 0.515
## Muziksel 0.100
## Mantiksal NA
## Dilsel NA
##
## --- Model 1 vs Model 2 Ki-Kare Fark Testi ---
##
## Chi-Squared Difference Test
##
## Df AIC BIC Chisq Chisq diff RMSEA Df diff Pr(>Chisq)
## fit1 194 18552 18777 708.55
## fit2 203 18532 18724 707.13 -1.4135 0 9 1
En iyi uyumu veren çalışan model bu: CFI = .846, RMSEA = .085, SRMR = .087, AIC = 18521 (en düşük). G_Bil ve G_BOl arasındaki korelasyon .653 İki genel boyutun birbirinden makul düzeyde ayrıştığını gösteriyor. Yine de Heywood sorunu (Mu2, Mantıksal, Dilsel) devam ediyor ve uyum indeksleri kabul edilebilir eşiğin altında kalıyor.
model3 <- '
# Birinci derece
Dogal =~ Do1 + Do2 + Do3 + Do4 + Do5 + Do6
Bedensel =~ Be1 + Be2 + Be3 + Be4
Uzamsal =~ Uz1 + Uz2 + Uz3
Muziksel =~ Mu1 + Mu2
Mantiksal =~ Ma1 + Ma2 + Ma3
Dilsel =~ Di1 + Di2 + Di3 + Di4
# İki ikinci derece faktör
G_Bil =~ Mantiksal + Dilsel + Uzamsal + Dogal
G_BOl =~ Muziksel + Bedensel
# İkinci derece faktörler arası korelasyon (serbest)
G_Bil ~~ G_BOl
'
fit3 <- cfa(model3, sample.cov = cor_mat, sample.nobs = N,
estimator = "ML")
summary(fit3, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)## lavaan 0.6-21 ended normally after 73 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 51
##
## Number of observations 339
##
## Model Test User Model:
##
## Test statistic 694.016
## Degrees of freedom 202
## P-value (Chi-square) 0.000
##
## Model Test Baseline Model:
##
## Test statistic 3417.721
## Degrees of freedom 231
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.846
## Tucker-Lewis Index (TLI) 0.823
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -9209.575
## Loglikelihood unrestricted model (H1) -8862.567
##
## Akaike (AIC) 18521.149
## Bayesian (BIC) 18716.275
## Sample-size adjusted Bayesian (SABIC) 18554.494
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.085
## 90 Percent confidence interval - lower 0.078
## 90 Percent confidence interval - upper 0.092
## P-value H_0: RMSEA <= 0.050 0.000
## P-value H_0: RMSEA >= 0.080 0.875
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.087
##
## 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
## Dogal =~
## Do1 1.000 0.640 0.641
## Do2 0.907 0.095 9.551 0.000 0.580 0.581
## Do3 1.093 0.098 11.171 0.000 0.699 0.700
## Do4 1.226 0.100 12.234 0.000 0.784 0.786
## Do5 1.373 0.103 13.285 0.000 0.878 0.880
## Do6 1.410 0.104 13.511 0.000 0.902 0.904
## Bedensel =~
## Be1 1.000 0.678 0.679
## Be2 1.064 0.122 8.747 0.000 0.721 0.722
## Be3 0.632 0.100 6.334 0.000 0.428 0.429
## Be4 0.673 0.101 6.683 0.000 0.456 0.457
## Uzamsal =~
## Uz1 1.000 0.878 0.879
## Uz2 0.970 0.050 19.318 0.000 0.851 0.852
## Uz3 0.930 0.051 18.279 0.000 0.817 0.818
## Muziksel =~
## Mu1 1.000 0.507 0.508
## Mu2 2.206 0.630 3.503 0.000 1.119 1.120
## Mantiksal =~
## Ma1 1.000 0.646 0.647
## Ma2 0.665 0.091 7.292 0.000 0.430 0.430
## Ma3 1.121 0.097 11.524 0.000 0.724 0.725
## Dilsel =~
## Di1 1.000 0.747 0.748
## Di2 0.318 0.076 4.181 0.000 0.238 0.238
## Di3 0.267 0.076 3.503 0.000 0.199 0.200
## Di4 0.516 0.076 6.819 0.000 0.385 0.386
## G_Bil =~
## Mantiksal 1.000 1.089 1.089
## Dilsel 1.093 0.095 11.472 0.000 1.028 1.028
## Uzamsal 0.895 0.087 10.232 0.000 0.717 0.717
## Dogal 0.378 0.062 6.086 0.000 0.415 0.415
## G_BOl =~
## Muziksel 1.000 0.410 0.410
## Bedensel 2.556 0.950 2.691 0.007 0.784 0.784
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## G_Bil ~~
## G_BOl 0.095 0.035 2.694 0.007 0.653 0.653
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Do1 0.588 0.048 12.242 0.000 0.588 0.589
## .Do2 0.660 0.053 12.453 0.000 0.660 0.662
## .Do3 0.508 0.043 11.939 0.000 0.508 0.510
## .Do4 0.382 0.034 11.183 0.000 0.382 0.383
## .Do5 0.226 0.025 8.962 0.000 0.226 0.226
## .Do6 0.183 0.023 7.828 0.000 0.183 0.183
## .Be1 0.538 0.062 8.738 0.000 0.538 0.539
## .Be2 0.477 0.062 7.667 0.000 0.477 0.479
## .Be3 0.813 0.068 11.960 0.000 0.813 0.816
## .Be4 0.789 0.067 11.775 0.000 0.789 0.791
## .Uz1 0.227 0.030 7.638 0.000 0.227 0.227
## .Uz2 0.273 0.031 8.761 0.000 0.273 0.274
## .Uz3 0.330 0.034 9.849 0.000 0.330 0.331
## .Mu1 0.740 0.089 8.281 0.000 0.740 0.742
## .Mu2 -0.255 0.336 -0.757 0.449 -0.255 -0.255
## .Ma1 0.580 0.051 11.405 0.000 0.580 0.582
## .Ma2 0.813 0.064 12.668 0.000 0.813 0.815
## .Ma3 0.473 0.047 10.046 0.000 0.473 0.475
## .Di1 0.439 0.065 6.789 0.000 0.439 0.440
## .Di2 0.941 0.073 12.918 0.000 0.941 0.943
## .Di3 0.957 0.074 12.953 0.000 0.957 0.960
## .Di4 0.849 0.067 12.624 0.000 0.849 0.851
## .Dogal 0.339 0.054 6.317 0.000 0.828 0.828
## .Bedensel 0.177 0.067 2.638 0.008 0.386 0.386
## .Uzamsal 0.374 0.047 8.016 0.000 0.486 0.486
## .Muziksel 0.214 0.061 3.497 0.000 0.832 0.832
## .Mantiksal -0.077 0.030 -2.620 0.009 -0.186 -0.186
## .Dilsel -0.032 0.058 -0.544 0.587 -0.056 -0.056
## G_Bil 0.494 0.075 6.614 0.000 1.000 1.000
## G_BOl 0.043 0.029 1.466 0.143 1.000 1.000
##
## R-Square:
## Estimate
## Do1 0.411
## Do2 0.338
## Do3 0.490
## Do4 0.617
## Do5 0.774
## Do6 0.817
## Be1 0.461
## Be2 0.521
## Be3 0.184
## Be4 0.209
## Uz1 0.773
## Uz2 0.726
## Uz3 0.669
## Mu1 0.258
## Mu2 NA
## Ma1 0.418
## Ma2 0.185
## Ma3 0.525
## Di1 0.560
## Di2 0.057
## Di3 0.040
## Di4 0.149
## Dogal 0.172
## Bedensel 0.614
## Uzamsal 0.514
## Muziksel 0.168
## Mantiksal NA
## Dilsel NA
##
## --- G_Bil ve G_BOl Korelasyonu ---
## Dogal Bednsl Uzamsl Muzksl Mntksl Dilsel G_Bil G_BOl
## Dogal 1.000
## Bedensel 0.212 1.000
## Uzamsal 0.298 0.367 1.000
## Muziksel 0.111 0.321 0.192 1.000
## Mantiksal 0.452 0.557 0.781 0.291 1.000
## Dilsel 0.427 0.526 0.737 0.275 1.119 1.000
## G_Bil 0.415 0.512 0.717 0.268 1.089 1.028 1.000
## G_BOl 0.271 0.784 0.468 0.410 0.711 0.671 0.653 1.000
##
## --- Model 1 vs Model 3 Ki-Kare Fark Testi ---
##
## Chi-Squared Difference Test
##
## Df AIC BIC Chisq Chisq diff RMSEA Df diff Pr(>Chisq)
## fit1 194 18552 18777 708.55
## fit3 202 18521 18716 694.02 -14.533 0 8 1
Model yakınsayamadı. S_Ma varyansı −20.684, S_Mu = 492, Di2 ve Di3 madde yükleri 70.000 civarı gibi imkânsız değerler üretildi. Bu, modelin tanımlanamaz (non-identified) olduğunu gösteriyor. Başlıca nedenler: az madde sayısına sahip faktörler (Müziksel 2 madde, ECV = .009 gibi anlamsız bir değer), bazı faktörlerde G ile S faktörleri arasında varyansın bölünememesi ve mevcut korelasyon yapısının bi-factor çözümünü desteklememesi.
model4 <- '
# Genel faktör (tüm 22 madde)
G =~ Do1+Do2+Do3+Do4+Do5+Do6 +
Be1+Be2+Be3+Be4 +
Uz1+Uz2+Uz3 +
Mu1+Mu2 +
Ma1+Ma2+Ma3 +
Di1+Di2+Di3+Di4
# Özgül faktörler
S_Do =~ Do1+Do2+Do3+Do4+Do5+Do6
S_Be =~ Be1+Be2+Be3+Be4
S_Uz =~ Uz1+Uz2+Uz3
S_Mu =~ Mu1+Mu2
S_Ma =~ Ma1+Ma2+Ma3
S_Di =~ Di1+Di2+Di3+Di4
'
fit4 <- cfa(model4, sample.cov = cor_mat, sample.nobs = N,
estimator = "ML",
orthogonal = TRUE) # G ve S faktörleri birbirinden bağımsız
summary(fit4, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)## lavaan 0.6-21 did NOT end normally after 1057 iterations
## ** WARNING ** Estimates below are most likely unreliable
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 66
##
## Number of observations 339
##
##
## 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
## G =~
## Do1 1.000 0.312 0.313
## Do2 0.414 NA 0.129 0.129
## Do3 0.509 NA 0.159 0.159
## Do4 0.975 NA 0.304 0.305
## Do5 1.460 NA 0.456 0.457
## Do6 1.067 NA 0.333 0.334
## Be1 1.058 NA 0.330 0.331
## Be2 1.069 NA 0.334 0.334
## Be3 0.321 NA 0.100 0.100
## Be4 1.310 NA 0.409 0.410
## Uz1 2.092 NA 0.653 0.654
## Uz2 1.882 NA 0.587 0.588
## Uz3 1.762 NA 0.550 0.551
## Mu1 0.538 NA 0.168 0.168
## Mu2 1.024 NA 0.320 0.320
## Ma1 2.414 NA 0.754 0.761
## Ma2 1.599 NA 0.499 0.500
## Ma3 2.575 NA 0.804 0.805
## Di1 2.365 NA 0.738 0.739
## Di2 0.678 NA 0.212 0.212
## Di3 0.530 NA 0.165 0.165
## Di4 1.177 NA 0.367 0.368
## S_Do =~
## Do1 1.000 0.558 0.559
## Do2 1.047 NA 0.584 0.585
## Do3 1.261 NA 0.704 0.705
## Do4 1.298 NA 0.724 0.725
## Do5 1.354 NA 0.756 0.757
## Do6 1.507 NA 0.841 0.842
## S_Be =~
## Be1 1.000 0.570 0.571
## Be2 1.193 NA 0.680 0.681
## Be3 0.820 NA 0.468 0.469
## Be4 0.429 NA 0.245 0.245
## S_Uz =~
## Uz1 1.000 0.568 0.569
## Uz2 1.105 NA 0.628 0.629
## Uz3 1.088 NA 0.619 0.620
## S_Mu =~
## Mu1 1.000 22.186 22.218
## Mu2 0.001 NA 0.023 0.023
## S_Ma =~
## Ma1 1.000 NA NA
## Ma2 0.000 NA NA NA
## Ma3 0.000 NA NA NA
## S_Di =~
## Di1 1.000 0.000 0.000
## Di2 71287.381 NA 0.827 0.829
## Di3 66636.184 NA 0.773 0.774
## Di4 15741.068 NA 0.183 0.183
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## G ~~
## S_Do 0.000 0.000 0.000
## S_Be 0.000 0.000 0.000
## S_Uz 0.000 0.000 0.000
## S_Mu 0.000 0.000 0.000
## S_Ma 0.000 0.000 0.000
## S_Di 0.000 0.000 0.000
## S_Do ~~
## S_Be 0.000 0.000 0.000
## S_Uz 0.000 0.000 0.000
## S_Mu 0.000 0.000 0.000
## S_Ma 0.000 0.000 0.000
## S_Di 0.000 0.000 0.000
## S_Be ~~
## S_Uz 0.000 0.000 0.000
## S_Mu 0.000 0.000 0.000
## S_Ma 0.000 0.000 0.000
## S_Di 0.000 0.000 0.000
## S_Uz ~~
## S_Mu 0.000 0.000 0.000
## S_Ma 0.000 0.000 0.000
## S_Di 0.000 0.000 0.000
## S_Mu ~~
## S_Ma 0.000 0.000 0.000
## S_Di 0.000 0.000 0.000
## S_Ma ~~
## S_Di 0.000 0.000 0.000
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Do1 0.588 NA 0.588 0.590
## .Do2 0.639 NA 0.639 0.641
## .Do3 0.477 NA 0.477 0.478
## .Do4 0.380 NA 0.380 0.381
## .Do5 0.218 NA 0.218 0.219
## .Do6 0.179 NA 0.179 0.179
## .Be1 0.563 NA 0.563 0.564
## .Be2 0.423 NA 0.423 0.424
## .Be3 0.768 NA 0.768 0.770
## .Be4 0.770 NA 0.770 0.772
## .Uz1 0.247 NA 0.247 0.248
## .Uz2 0.257 NA 0.257 0.258
## .Uz3 0.312 NA 0.312 0.313
## .Mu1 -491.236 NA -491.236 -492.690
## .Mu2 0.894 NA 0.894 0.897
## .Ma1 20684.668 NA 20684.668 21077.797
## .Ma2 0.748 NA 0.748 0.750
## .Ma3 0.351 NA 0.351 0.352
## .Di1 0.452 NA 0.452 0.454
## .Di2 0.268 NA 0.268 0.269
## .Di3 0.372 NA 0.372 0.373
## .Di4 0.826 NA 0.826 0.831
## G 0.097 NA 1.000 1.000
## S_Do 0.311 NA 1.000 1.000
## S_Be 0.325 NA 1.000 1.000
## S_Uz 0.323 NA 1.000 1.000
## S_Mu 492.205 NA 1.000 1.000
## S_Ma -20684.254 NA NA NA
## S_Di 0.000 NA 1.000 1.000
##
## R-Square:
## Estimate
## Do1 0.410
## Do2 0.359
## Do3 0.522
## Do4 0.619
## Do5 0.781
## Do6 0.821
## Be1 0.436
## Be2 0.576
## Be3 0.230
## Be4 0.228
## Uz1 0.752
## Uz2 0.742
## Uz3 0.687
## Mu1 NA
## Mu2 0.103
## Ma1 -21076.797
## Ma2 0.250
## Ma3 0.648
## Di1 0.546
## Di2 0.731
## Di3 0.627
## Di4 0.169
lam <- lavInspect(fit4, "std")$lambda
# NA durumunu kontrol et
cat("NA sayısı:", sum(is.na(lam)), "\n")## NA sayısı: 3
## Lambda matrisinin ilk 6 satırı:
## G S_Do S_Be S_Uz S_Mu S_Ma S_Di
## Do1 0.313 0.559 0 0 0 0 0
## Do2 0.129 0.585 0 0 0 0 0
## Do3 0.159 0.705 0 0 0 0 0
## Do4 0.305 0.725 0 0 0 0 0
## Do5 0.457 0.757 0 0 0 0 0
## Do6 0.334 0.842 0 0 0 0 0
# G sütunu
lam_G <- lam[, "G"]
# Özgül faktör sütunları (G hariç)
lam_S <- lam[, c("S_Do","S_Be","S_Uz","S_Mu","S_Ma","S_Di")]
# NA'ları 0 kabul ederek ECV hesapla
# (NA = o madde o faktöre yüklenmez = 0 yük)
ecv <- sum(lam_G^2, na.rm = TRUE) /
(sum(lam_G^2, na.rm = TRUE) + sum(lam_S^2, na.rm = TRUE))
cat(sprintf("\nECV = %.3f\n", ecv))##
## ECV = 0.009
## Genel faktör ortak varyansın %0.9'ini açıklıyor
if (!is.na(ecv)) {
if (ecv >= 0.70) cat("→ ECV ≥ .70: Genel faktör yorumu güçlüdür.\n") else
cat("→ ECV < .70: Özgül faktörler de anlamlı katkı sunuyor.\n")
}## → ECV < .70: Özgül faktörler de anlamlı katkı sunuyor.
# Ek: Her maddenin G ve S yükleri ─────────────────────────
cat("\n── Her Maddenin Genel (G) ve Özgül (S) Faktör Yükleri ──\n")##
## ── Her Maddenin Genel (G) ve Özgül (S) Faktör Yükleri ──
sonuc <- data.frame(
Madde = rownames(lam),
G_yuku = round(lam_G, 3),
S_yuku = round(apply(lam_S, 1, function(x) x[!is.na(x)][1]), 3)
)
print(sonuc)## Madde G_yuku S_yuku
## Do1 Do1 0.313 0.559
## Do2 Do2 0.129 0.585
## Do3 Do3 0.159 0.705
## Do4 Do4 0.305 0.725
## Do5 Do5 0.457 0.757
## Do6 Do6 0.334 0.842
## Be1 Be1 0.331 0.000
## Be2 Be2 0.334 0.000
## Be3 Be3 0.100 0.000
## Be4 Be4 0.410 0.000
## Uz1 Uz1 0.654 0.000
## Uz2 Uz2 0.588 0.000
## Uz3 Uz3 0.551 0.000
## Mu1 Mu1 0.168 0.000
## Mu2 Mu2 0.320 0.000
## Ma1 Ma1 0.761 0.000
## Ma2 Ma2 0.500 0.000
## Ma3 Ma3 0.805 0.000
## Di1 Di1 0.739 0.000
## Di2 Di2 0.212 0.000
## Di3 Di3 0.165 0.000
## Di4 Di4 0.368 0.000
Bu veri setinde hiçbir model yeterli uyum sağlayamamıştır. Bunun başlıca nedenleri, Müziksel faktörünün yalnızca 2 maddeyle tanımlanması, Uzamsal–Mantıksal arasındaki aşırı korelasyon (.820), ve Dilsel faktöründeki madde tutarsızlığı (Di1 çok düşük yük).
## === Veri Özeti ===
## Boyut: 852 17
## Değişken isimleri:
## [1] "ext1" "ext2" "ext3" "ext4" "ext5" "ext6" "ext7" "ext8" "ext9"
## [10] "ext10" "ext11" "ext12" "int1" "int2" "int3" "int4" "int5"
##
## İlk 6 satır:
## ext1 ext2 ext3 ext4 ext5 ext6 ext7 ext8 ext9 ext10 ext11 ext12 int1 int2 int3
## 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0
## 3 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
## 4 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1
## 5 1 0 1 0 1 1 0 1 0 0 1 1 1 1 0
## 6 0 NA 1 NA 1 1 NA NA NA NA NA NA NA NA NA
## 8 1 0 1 0 1 1 0 0 0 1 0 1 1 1 0
## int4 int5
## 1 0 1
## 3 1 0
## 4 1 1
## 5 1 0
## 6 1 NA
## 8 1 1
# Madde adlarının kontrolü
ext_maddeler <- paste0("ext", 1:12)
int_maddeler <- paste0("int", 1:5)
tum_maddeler <- c(ext_maddeler, int_maddeler)
cat("\nVeri setinde eksik madde var mı?\n")##
## Veri setinde eksik madde var mı?
eksik <- tum_maddeler[!tum_maddeler %in% names(mot)]
if (length(eksik) > 0) cat("EKSİK:", eksik, "\n") else cat("Tüm maddeler mevcut.\n")## Tüm maddeler mevcut.
# Değişkenleri ordered (sıralı kategorik) olarak tanımla
# WLSMV için zorunlu
for (m in tum_maddeler) {
mot[[m]] <- ordered(mot[[m]])
}
cat("\nOrdered faktör kontrolü (ext1):", class(mot$ext1), "\n")##
## Ordered faktör kontrolü (ext1): ordered factor
##
## === Madde Düzeyinde Tanımlayıcı İstatistikler ===
item_stats <- data.frame(
Madde = tum_maddeler,
P_1 = sapply(tum_maddeler, function(x) mean(as.numeric(as.character(mot[[x]])), na.rm=TRUE)),
N_eksik = sapply(tum_maddeler, function(x) sum(is.na(mot[[x]])))
)
item_stats$P_1 <- round(item_stats$P_1, 3)
print(item_stats)## Madde P_1 N_eksik
## ext1 ext1 0.487 8
## ext2 ext2 0.282 37
## ext3 ext3 0.315 37
## ext4 ext4 0.061 37
## ext5 ext5 0.874 10
## ext6 ext6 0.858 30
## ext7 ext7 0.408 38
## ext8 ext8 0.151 36
## ext9 ext9 0.069 37
## ext10 ext10 0.272 20
## ext11 ext11 0.150 38
## ext12 ext12 0.498 34
## int1 int1 0.746 37
## int2 int2 0.894 15
## int3 int3 0.428 36
## int4 int4 0.812 34
## int5 int5 0.611 34
# Tetrakroik korelasyon matrisi (psych paketi ile görselleştirme için)
cat("\n=== Tetrakroik Korelasyon Matrisi ===\n")##
## === Tetrakroik Korelasyon Matrisi ===
mot_num <- data.frame(lapply(mot[tum_maddeler],
function(x) as.numeric(as.character(x))))
library(psych)
tetra <- tetrachoric(mot_num)##
## Tetrakroik Korelasyon Matrisi:
## ext1 ext2 ext3 ext4 ext5 ext6 ext7 ext8 ext9 ext10 ext11
## ext1 1.000 0.299 0.168 0.095 0.003 0.158 0.338 0.261 0.115 0.242 0.315
## ext2 0.299 1.000 0.018 -0.025 0.100 0.147 0.350 0.148 0.112 0.325 0.340
## ext3 0.168 0.018 1.000 0.009 0.052 0.190 0.082 0.050 0.240 0.051 0.140
## ext4 0.095 -0.025 0.009 1.000 0.016 -0.181 0.261 0.683 0.392 0.303 0.339
## ext5 0.003 0.100 0.052 0.016 1.000 0.619 0.009 -0.075 -0.137 -0.105 0.126
## ext6 0.158 0.147 0.190 -0.181 0.619 1.000 0.091 -0.010 0.248 -0.029 0.263
## ext7 0.338 0.350 0.082 0.261 0.009 0.091 1.000 0.402 0.414 0.280 0.359
## ext8 0.261 0.148 0.050 0.683 -0.075 -0.010 0.402 1.000 0.365 0.521 0.465
## ext9 0.115 0.112 0.240 0.392 -0.137 0.248 0.414 0.365 1.000 0.302 0.773
## ext10 0.242 0.325 0.051 0.303 -0.105 -0.029 0.280 0.521 0.302 1.000 0.514
## ext11 0.315 0.340 0.140 0.339 0.126 0.263 0.359 0.465 0.773 0.514 1.000
## ext12 0.203 0.228 0.135 0.429 0.093 0.135 0.354 0.746 0.264 0.521 0.430
## int1 0.088 0.176 0.187 0.126 0.008 -0.066 0.210 -0.100 0.197 0.069 0.015
## int2 0.139 -0.034 0.204 0.015 0.053 0.173 0.231 0.001 0.180 0.043 -0.085
## int3 0.055 -0.016 0.231 0.157 0.102 -0.016 0.075 -0.085 0.232 -0.043 0.046
## int4 0.139 0.216 0.220 0.020 0.173 -0.059 0.182 0.011 0.266 0.013 0.171
## int5 0.118 0.143 0.249 0.143 0.000 -0.079 0.199 -0.067 0.226 0.005 0.058
## ext12 int1 int2 int3 int4 int5
## ext1 0.203 0.088 0.139 0.055 0.139 0.118
## ext2 0.228 0.176 -0.034 -0.016 0.216 0.143
## ext3 0.135 0.187 0.204 0.231 0.220 0.249
## ext4 0.429 0.126 0.015 0.157 0.020 0.143
## ext5 0.093 0.008 0.053 0.102 0.173 0.000
## ext6 0.135 -0.066 0.173 -0.016 -0.059 -0.079
## ext7 0.354 0.210 0.231 0.075 0.182 0.199
## ext8 0.746 -0.100 0.001 -0.085 0.011 -0.067
## ext9 0.264 0.197 0.180 0.232 0.266 0.226
## ext10 0.521 0.069 0.043 -0.043 0.013 0.005
## ext11 0.430 0.015 -0.085 0.046 0.171 0.058
## ext12 1.000 -0.014 -0.069 0.005 0.079 0.066
## int1 -0.014 1.000 0.667 0.650 0.627 0.740
## int2 -0.069 0.667 1.000 0.579 0.637 0.615
## int3 0.005 0.650 0.579 1.000 0.569 0.785
## int4 0.079 0.627 0.637 0.569 1.000 0.629
## int5 0.066 0.740 0.615 0.785 0.629 1.000
modelA <- '
Dissal =~ ext1 + ext2 + ext3 + ext4 + ext5 + ext6 +
ext7 + ext8 + ext9 + ext10 + ext11 + ext12
Icsel =~ int1 + int2 + int3 + int4 + int5
'
fitA <- cfa(
model = modelA,
data = mot,
ordered = tum_maddeler, # tetrakroik korelasyon için
estimator = "WLSMV", # kategorik veri için uygun kestirim
parameterization = "delta" # WLSMV için standart parametrizasyon
)
cat("\n--- Model A Özeti ---\n")##
## --- Model A Özeti ---
## lavaan 0.6-21 ended normally after 42 iterations
##
## Estimator DWLS
## Optimization method NLMINB
## Number of model parameters 35
##
## Used Total
## Number of observations 794 852
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 492.422 464.935
## Degrees of freedom 118 118
## P-value (Unknown) NA 0.000
## Scaling correction factor 1.136
## Shift parameter 31.654
## simple second-order correction
##
## Model Test Baseline Model:
##
## Test statistic 4421.778 3011.080
## Degrees of freedom 136 136
## P-value NA 0.000
## Scaling correction factor 1.491
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.913 0.879
## Tucker-Lewis Index (TLI) 0.899 0.861
##
## Robust Comparative Fit Index (CFI) NA
## Robust Tucker-Lewis Index (TLI) NA
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.063 0.061
## 90 Percent confidence interval - lower 0.058 0.055
## 90 Percent confidence interval - upper 0.069 0.067
## P-value H_0: RMSEA <= 0.050 0.000 0.001
## P-value H_0: RMSEA >= 0.080 0.000 0.000
##
## Robust RMSEA NA
## 90 Percent confidence interval - lower NA
## 90 Percent confidence interval - upper NA
## P-value H_0: Robust RMSEA <= 0.050 NA
## P-value H_0: Robust RMSEA >= 0.080 NA
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.119 0.119
##
## Parameter Estimates:
##
## Parameterization Delta
## Standard errors Robust.sem
## Information Expected
## Information saturated (h1) model Unstructured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Dissal =~
## ext1 1.000 0.391 0.391
## ext2 1.018 0.173 5.881 0.000 0.398 0.398
## ext3 0.529 0.148 3.562 0.000 0.207 0.207
## ext4 1.494 0.263 5.684 0.000 0.585 0.585
## ext5 0.181 0.175 1.034 0.301 0.071 0.071
## ext6 0.419 0.173 2.425 0.015 0.164 0.164
## ext7 1.422 0.208 6.846 0.000 0.557 0.557
## ext8 2.045 0.274 7.470 0.000 0.801 0.801
## ext9 1.893 0.273 6.930 0.000 0.741 0.741
## ext10 1.577 0.229 6.899 0.000 0.617 0.617
## ext11 2.030 0.276 7.363 0.000 0.794 0.794
## ext12 1.835 0.250 7.330 0.000 0.718 0.718
## Icsel =~
## int1 1.000 0.821 0.821
## int2 0.924 0.066 14.092 0.000 0.758 0.758
## int3 0.997 0.050 19.793 0.000 0.818 0.818
## int4 0.906 0.057 15.980 0.000 0.744 0.744
## int5 1.100 0.050 21.863 0.000 0.903 0.903
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Dissal ~~
## Icsel 0.047 0.017 2.744 0.006 0.148 0.148
##
## Thresholds:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## ext1|t1 0.041 0.045 0.922 0.356 0.041 0.041
## ext2|t1 0.584 0.047 12.327 0.000 0.584 0.584
## ext3|t1 0.493 0.047 10.591 0.000 0.493 0.493
## ext4|t1 1.541 0.070 21.954 0.000 1.541 1.541
## ext5|t1 -1.128 0.056 -19.964 0.000 -1.128 -1.128
## ext6|t1 -1.059 0.055 -19.296 0.000 -1.059 -1.059
## ext7|t1 0.242 0.045 5.386 0.000 0.242 0.242
## ext8|t1 1.042 0.055 19.122 0.000 1.042 1.042
## ext9|t1 1.481 0.068 21.880 0.000 1.481 1.481
## ext10|t1 0.622 0.048 13.016 0.000 0.622 0.622
## ext11|t1 1.048 0.055 19.180 0.000 1.048 1.048
## ext12|t1 0.013 0.045 0.284 0.777 0.013 0.013
## int1|t1 -0.657 0.048 -13.632 0.000 -0.657 -0.657
## int2|t1 -1.242 0.060 -20.865 0.000 -1.242 -1.242
## int3|t1 0.194 0.045 4.324 0.000 0.194 0.194
## int4|t1 -0.873 0.051 -17.028 0.000 -0.873 -0.873
## int5|t1 -0.272 0.045 -6.022 0.000 -0.272 -0.272
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .ext1 0.847 0.847 0.847
## .ext2 0.841 0.841 0.841
## .ext3 0.957 0.957 0.957
## .ext4 0.658 0.658 0.658
## .ext5 0.995 0.995 0.995
## .ext6 0.973 0.973 0.973
## .ext7 0.690 0.690 0.690
## .ext8 0.359 0.359 0.359
## .ext9 0.451 0.451 0.451
## .ext10 0.619 0.619 0.619
## .ext11 0.369 0.369 0.369
## .ext12 0.484 0.484 0.484
## .int1 0.327 0.327 0.327
## .int2 0.425 0.425 0.425
## .int3 0.331 0.331 0.331
## .int4 0.447 0.447 0.447
## .int5 0.185 0.185 0.185
## Dissal 0.153 0.038 3.984 0.000 1.000 1.000
## Icsel 0.673 0.051 13.305 0.000 1.000 1.000
##
## R-Square:
## Estimate
## ext1 0.153
## ext2 0.159
## ext3 0.043
## ext4 0.342
## ext5 0.005
## ext6 0.027
## ext7 0.310
## ext8 0.641
## ext9 0.549
## ext10 0.381
## ext11 0.631
## ext12 0.516
## int1 0.673
## int2 0.575
## int3 0.669
## int4 0.553
## int5 0.815
##
## --- Model A Uyum İndeksleri ---
fitA_idx <- fitMeasures(fitA, c("chisq.scaled","df.scaled","pvalue.scaled",
"cfi.scaled","tli.scaled",
"rmsea.scaled","rmsea.ci.lower.scaled",
"rmsea.ci.upper.scaled","srmr","wrmr"))
print(round(fitA_idx, 3))## chisq.scaled df.scaled pvalue.scaled
## 464.935 118.000 0.000
## cfi.scaled tli.scaled rmsea.scaled
## 0.879 0.861 0.061
## rmsea.ci.lower.scaled rmsea.ci.upper.scaled srmr
## 0.055 0.067 0.119
## wrmr
## 1.794
##
## --- Model A Standardize Faktör Yükleri ---
stdA <- standardizedSolution(fitA)
print(stdA[stdA$op == "=~", c("lhs","rhs","est.std","se","z","pvalue")])## lhs rhs est.std se z pvalue
## 1 Dissal ext1 0.391 0.049 7.968 0.000
## 2 Dissal ext2 0.398 0.052 7.616 0.000
## 3 Dissal ext3 0.207 0.055 3.738 0.000
## 4 Dissal ext4 0.585 0.065 9.007 0.000
## 5 Dissal ext5 0.071 0.068 1.039 0.299
## 6 Dissal ext6 0.164 0.065 2.508 0.012
## 7 Dissal ext7 0.557 0.043 12.863 0.000
## 8 Dissal ext8 0.801 0.037 21.523 0.000
## 9 Dissal ext9 0.741 0.057 13.014 0.000
## 10 Dissal ext10 0.617 0.042 14.576 0.000
## 11 Dissal ext11 0.794 0.038 21.173 0.000
## 12 Dissal ext12 0.718 0.039 18.373 0.000
## 13 Icsel int1 0.821 0.031 26.610 0.000
## 14 Icsel int2 0.758 0.046 16.384 0.000
## 15 Icsel int3 0.818 0.029 28.047 0.000
## 16 Icsel int4 0.744 0.038 19.357 0.000
## 17 Icsel int5 0.903 0.023 39.293 0.000
##
## --- Faktörler Arası Korelasyon ---
## Dissal Icsel
## Dissal 1.000
## Icsel 0.148 1.000
mi_A <- modindices(fitA, sort. = TRUE, maximum.number = 20)
cat("\nEn yüksek 20 modifikasyon endeksi:\n")##
## En yüksek 20 modifikasyon endeksi:
## lhs op rhs mi epc sepc.all
## 166 ext5 ~~ ext6 134.876 0.636 0.646
## 98 Icsel =~ ext3 46.669 0.298 0.244
## 209 ext9 ~~ ext11 43.768 0.470 1.151
## 202 ext8 ~~ ext12 29.619 0.353 0.846
## 103 Icsel =~ ext8 26.606 -0.288 -0.237
## 156 ext4 ~~ ext8 22.319 0.366 0.752
## 102 Icsel =~ ext7 17.628 0.187 0.154
## 152 ext3 ~~ int5 14.509 0.219 0.519
## 210 ext9 ~~ ext12 11.933 -0.319 -0.682
## 150 ext3 ~~ int3 11.887 0.196 0.348
## 104 Icsel =~ ext9 11.789 0.233 0.191
## 108 ext1 ~~ ext2 10.023 0.185 0.220
## 154 ext4 ~~ ext6 9.081 -0.308 -0.385
## 199 ext8 ~~ ext9 9.068 -0.293 -0.729
## 201 ext8 ~~ ext11 8.808 -0.240 -0.659
## 203 ext8 ~~ int1 8.653 -0.217 -0.632
## 107 Icsel =~ ext12 8.551 -0.137 -0.112
## 242 int3 ~~ int5 8.084 0.182 0.735
## 129 ext2 ~~ ext8 7.987 -0.222 -0.404
## 125 ext2 ~~ ext4 7.955 -0.276 -0.371
##
## --- Hata Kovaryansları (mi > 10) ---
mi_cov <- mi_A[mi_A$op == "~~" & mi_A$mi > 10, ]
if (nrow(mi_cov) > 0) {
print(mi_cov[, c("lhs","op","rhs","mi","epc","sepc.all")])
} else {
cat("mi > 10 olan hata kovaryansı bulunamadı.\n")
}## lhs op rhs mi epc sepc.all
## 166 ext5 ~~ ext6 134.876 0.636 0.646
## 209 ext9 ~~ ext11 43.768 0.470 1.151
## 202 ext8 ~~ ext12 29.619 0.353 0.846
## 156 ext4 ~~ ext8 22.319 0.366 0.752
## 152 ext3 ~~ int5 14.509 0.219 0.519
## 210 ext9 ~~ ext12 11.933 -0.319 -0.682
## 150 ext3 ~~ int3 11.887 0.196 0.348
## 108 ext1 ~~ ext2 10.023 0.185 0.220
##
## --- Çapraz Yüklemeler (mi > 10) ---
mi_load <- mi_A[mi_A$op == "=~" & mi_A$mi > 10, ]
if (nrow(mi_load) > 0) {
print(mi_load[, c("lhs","op","rhs","mi","epc","sepc.all")])
} else {
cat("mi > 10 olan çapraz yükleme bulunamadı.\n")
}## lhs op rhs mi epc sepc.all
## 98 Icsel =~ ext3 46.669 0.298 0.244
## 103 Icsel =~ ext8 26.606 -0.288 -0.237
## 102 Icsel =~ ext7 17.628 0.187 0.154
## 104 Icsel =~ ext9 11.789 0.233 0.191
# DÜŞÜK YÜKLEYEN MADDELERİ BELİRLE ─────────────────────────────────────
cat("\n--- Standardize yükü düşük (< .30) maddeler ---\n")##
## --- Standardize yükü düşük (< .30) maddeler ---
dusuk <- stdA[stdA$op == "=~" & stdA$est.std < 0.30,
c("lhs","rhs","est.std")]
if (nrow(dusuk) > 0) print(dusuk) else cat("Yok.\n")## lhs rhs est.std
## 3 Dissal ext3 0.207
## 5 Dissal ext5 0.071
## 6 Dissal ext6 0.164
mi_cov_sorted <- mi_A[mi_A$op == "~~" &
mi_A$lhs != mi_A$rhs & # öz kovaryans değil
mi_A$mi > 10, ]
mi_cov_sorted <- mi_cov_sorted[order(-mi_cov_sorted$mi), ]
cat("\nModel B'ye eklenecek hata kovaryansları:\n")##
## Model B'ye eklenecek hata kovaryansları:
if (nrow(mi_cov_sorted) > 0) {
print(head(mi_cov_sorted[, c("lhs","op","rhs","mi","epc")], 5))
} else {
cat("Eklenecek mi > 10 hata kovaryansı yok.\n")
}## lhs op rhs mi epc
## 166 ext5 ~~ ext6 134.876 0.636
## 209 ext9 ~~ ext11 43.768 0.470
## 202 ext8 ~~ ext12 29.619 0.353
## 156 ext4 ~~ ext8 22.319 0.366
## 152 ext3 ~~ int5 14.509 0.219
modelB_base <- '
Dissal =~ ext1 + ext2 + ext3 + ext4 + ext5 + ext6 +
ext7 + ext8 + ext9 + ext10 + ext11 + ext12
Icsel =~ int1 + int2 + int3 + int4 + int5
'
# MI'den gelen ilk 3 anlamlı hata kovaryansını ekle (içerik uygunsa)
ek_satirlar <- ""
if (nrow(mi_cov_sorted) > 0) {
for (i in 1:min(3, nrow(mi_cov_sorted))) {
ek_satirlar <- paste0(ek_satirlar,
" ", mi_cov_sorted$lhs[i],
" ~~ ", mi_cov_sorted$rhs[i], "\n")
}
}
modelB <- paste0(modelB_base, ek_satirlar)
cat("\nModel B tanımı:\n")##
## Model B tanımı:
##
## Dissal =~ ext1 + ext2 + ext3 + ext4 + ext5 + ext6 +
## ext7 + ext8 + ext9 + ext10 + ext11 + ext12
## Icsel =~ int1 + int2 + int3 + int4 + int5
## ext5 ~~ ext6
## ext9 ~~ ext11
## ext8 ~~ ext12
fitB <- cfa(
model = modelB,
data = mot,
ordered = tum_maddeler,
estimator = "WLSMV",
parameterization = "delta"
)##
## --- Model B Özeti ---
## lavaan 0.6-21 ended normally after 41 iterations
##
## Estimator DWLS
## Optimization method NLMINB
## Number of model parameters 38
##
## Used Total
## Number of observations 794 852
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 295.062 293.127
## Degrees of freedom 115 115
## P-value (Unknown) NA 0.000
## Scaling correction factor 1.125
## Shift parameter 30.835
## simple second-order correction
##
## Model Test Baseline Model:
##
## Test statistic 4421.778 3011.080
## Degrees of freedom 136 136
## P-value NA 0.000
## Scaling correction factor 1.491
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.958 0.938
## Tucker-Lewis Index (TLI) 0.950 0.927
##
## Robust Comparative Fit Index (CFI) NA
## Robust Tucker-Lewis Index (TLI) NA
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.044 0.044
## 90 Percent confidence interval - lower 0.038 0.038
## 90 Percent confidence interval - upper 0.051 0.050
## P-value H_0: RMSEA <= 0.050 0.926 0.935
## P-value H_0: RMSEA >= 0.080 0.000 0.000
##
## Robust RMSEA NA
## 90 Percent confidence interval - lower NA
## 90 Percent confidence interval - upper NA
## P-value H_0: Robust RMSEA <= 0.050 NA
## P-value H_0: Robust RMSEA >= 0.080 NA
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.101 0.101
##
## Parameter Estimates:
##
## Parameterization Delta
## Standard errors Robust.sem
## Information Expected
## Information saturated (h1) model Unstructured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Dissal =~
## ext1 1.000 0.422 0.422
## ext2 1.016 0.169 6.010 0.000 0.429 0.429
## ext3 0.509 0.144 3.533 0.000 0.215 0.215
## ext4 1.458 0.256 5.707 0.000 0.616 0.616
## ext5 0.028 0.169 0.165 0.869 0.012 0.012
## ext6 0.320 0.166 1.930 0.054 0.135 0.135
## ext7 1.416 0.204 6.952 0.000 0.598 0.598
## ext8 1.714 0.243 7.040 0.000 0.723 0.723
## ext9 1.312 0.250 5.252 0.000 0.554 0.554
## ext10 1.566 0.224 6.996 0.000 0.661 0.661
## ext11 1.645 0.240 6.869 0.000 0.695 0.695
## ext12 1.509 0.216 6.986 0.000 0.637 0.637
## Icsel =~
## int1 1.000 0.821 0.821
## int2 0.924 0.065 14.108 0.000 0.759 0.759
## int3 0.995 0.050 19.790 0.000 0.817 0.817
## int4 0.905 0.057 15.990 0.000 0.744 0.744
## int5 1.100 0.050 21.910 0.000 0.903 0.903
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .ext5 ~~
## .ext6 0.634 0.055 11.566 0.000 0.634 0.640
## .ext9 ~~
## .ext11 0.400 0.073 5.501 0.000 0.400 0.667
## .ext8 ~~
## .ext12 0.281 0.063 4.468 0.000 0.281 0.527
## Dissal ~~
## Icsel 0.055 0.019 2.850 0.004 0.160 0.160
##
## Thresholds:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## ext1|t1 0.041 0.045 0.922 0.356 0.041 0.041
## ext2|t1 0.584 0.047 12.327 0.000 0.584 0.584
## ext3|t1 0.493 0.047 10.591 0.000 0.493 0.493
## ext4|t1 1.541 0.070 21.954 0.000 1.541 1.541
## ext5|t1 -1.128 0.056 -19.964 0.000 -1.128 -1.128
## ext6|t1 -1.059 0.055 -19.296 0.000 -1.059 -1.059
## ext7|t1 0.242 0.045 5.386 0.000 0.242 0.242
## ext8|t1 1.042 0.055 19.122 0.000 1.042 1.042
## ext9|t1 1.481 0.068 21.880 0.000 1.481 1.481
## ext10|t1 0.622 0.048 13.016 0.000 0.622 0.622
## ext11|t1 1.048 0.055 19.180 0.000 1.048 1.048
## ext12|t1 0.013 0.045 0.284 0.777 0.013 0.013
## int1|t1 -0.657 0.048 -13.632 0.000 -0.657 -0.657
## int2|t1 -1.242 0.060 -20.865 0.000 -1.242 -1.242
## int3|t1 0.194 0.045 4.324 0.000 0.194 0.194
## int4|t1 -0.873 0.051 -17.028 0.000 -0.873 -0.873
## int5|t1 -0.272 0.045 -6.022 0.000 -0.272 -0.272
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .ext1 0.822 0.822 0.822
## .ext2 0.816 0.816 0.816
## .ext3 0.954 0.954 0.954
## .ext4 0.621 0.621 0.621
## .ext5 1.000 1.000 1.000
## .ext6 0.982 0.982 0.982
## .ext7 0.643 0.643 0.643
## .ext8 0.477 0.477 0.477
## .ext9 0.693 0.693 0.693
## .ext10 0.563 0.563 0.563
## .ext11 0.518 0.518 0.518
## .ext12 0.594 0.594 0.594
## .int1 0.326 0.326 0.326
## .int2 0.425 0.425 0.425
## .int3 0.332 0.332 0.332
## .int4 0.447 0.447 0.447
## .int5 0.184 0.184 0.184
## Dissal 0.178 0.043 4.103 0.000 1.000 1.000
## Icsel 0.674 0.051 13.329 0.000 1.000 1.000
##
## R-Square:
## Estimate
## ext1 0.178
## ext2 0.184
## ext3 0.046
## ext4 0.379
## ext5 0.000
## ext6 0.018
## ext7 0.357
## ext8 0.523
## ext9 0.307
## ext10 0.437
## ext11 0.482
## ext12 0.406
## int1 0.674
## int2 0.575
## int3 0.668
## int4 0.553
## int5 0.816
##
## --- Model B Uyum İndeksleri ---
fitB_idx <- fitMeasures(fitB, c("chisq.scaled","df.scaled","pvalue.scaled",
"cfi.scaled","tli.scaled",
"rmsea.scaled","rmsea.ci.lower.scaled",
"rmsea.ci.upper.scaled","srmr","wrmr"))
print(round(fitB_idx, 3))## chisq.scaled df.scaled pvalue.scaled
## 293.127 115.000 0.000
## cfi.scaled tli.scaled rmsea.scaled
## 0.938 0.927 0.044
## rmsea.ci.lower.scaled rmsea.ci.upper.scaled srmr
## 0.038 0.050 0.101
## wrmr
## 1.389
##
## --- Model B Standardize Faktör Yükleri ---
stdB <- standardizedSolution(fitB)
print(stdB[stdB$op == "=~", c("lhs","rhs","est.std","se","z","pvalue")])## lhs rhs est.std se z pvalue
## 1 Dissal ext1 0.422 0.051 8.207 0.000
## 2 Dissal ext2 0.429 0.054 7.922 0.000
## 3 Dissal ext3 0.215 0.058 3.712 0.000
## 4 Dissal ext4 0.616 0.070 8.854 0.000
## 5 Dissal ext5 0.012 0.071 0.165 0.869
## 6 Dissal ext6 0.135 0.068 1.974 0.048
## 7 Dissal ext7 0.598 0.046 13.127 0.000
## 8 Dissal ext8 0.723 0.049 14.894 0.000
## 9 Dissal ext9 0.554 0.081 6.813 0.000
## 10 Dissal ext10 0.661 0.045 14.548 0.000
## 11 Dissal ext11 0.695 0.051 13.538 0.000
## 12 Dissal ext12 0.637 0.046 13.711 0.000
## 13 Icsel int1 0.821 0.031 26.658 0.000
## 14 Icsel int2 0.759 0.046 16.398 0.000
## 15 Icsel int3 0.817 0.029 27.984 0.000
## 16 Icsel int4 0.744 0.038 19.359 0.000
## 17 Icsel int5 0.903 0.023 39.389 0.000
tablo <- data.frame(
Model = c("Model A (Temel)", "Model B (Modifiye)"),
Chi2 = round(c(fitMeasures(fitA, "chisq.scaled"),
fitMeasures(fitB, "chisq.scaled")), 2),
df = c(fitMeasures(fitA, "df.scaled"),
fitMeasures(fitB, "df.scaled")),
p = round(c(fitMeasures(fitA, "pvalue.scaled"),
fitMeasures(fitB, "pvalue.scaled")), 3),
CFI = round(c(fitMeasures(fitA, "cfi.scaled"),
fitMeasures(fitB, "cfi.scaled")), 3),
TLI = round(c(fitMeasures(fitA, "tli.scaled"),
fitMeasures(fitB, "tli.scaled")), 3),
RMSEA = round(c(fitMeasures(fitA, "rmsea.scaled"),
fitMeasures(fitB, "rmsea.scaled")), 3),
SRMR = round(c(fitMeasures(fitA, "srmr"),
fitMeasures(fitB, "srmr")), 3),
WRMR = round(c(fitMeasures(fitA, "wrmr"),
fitMeasures(fitB, "wrmr")), 3)
)
cat("\n--- Karşılaştırmalı Uyum İndeksleri Tablosu ---\n")##
## --- Karşılaştırmalı Uyum İndeksleri Tablosu ---
## Model Chi2 df p CFI TLI RMSEA SRMR WRMR
## Model A (Temel) 464.93 118 0 0.879 0.861 0.061 0.119 1.794
## Model B (Modifiye) 293.13 115 0 0.938 0.927 0.044 0.101 1.389
semPaths(fitA,
what = "std", layout = "tree2", rotation = 2,
edge.label.cex = 0.7, node.label.cex = 0.75,
title = TRUE, main = "Model A: Temel İki Faktörlü Model (WLSMV)")semPaths(fitB,
what = "std", layout = "tree2", rotation = 2,
edge.label.cex = 0.7, node.label.cex = 0.75,
title = TRUE, main = "Model B: Modifiye Edilmiş Model")## === Veri Özeti ===
## Boyut: 794 12
## Değişken isimleri:
## [1] "kurumsal1" "kurumsal2" "kurumsal3" "kurumsal4" "bireysel1"
## [6] "bireysel2" "bireysel3" "bireysel4" "katilimsal1" "katilimsal2"
## [11] "katilimsal3" "katilimsal4"
##
## İlk 6 satır:
## kurumsal1 kurumsal2 kurumsal3 kurumsal4 bireysel1 bireysel2 bireysel3
## 1 1 0 0 0 1 0 1
## 3 0 0 0 0 0 0 1
## 4 0 1 1 0 1 1 1
## 5 1 0 1 0 1 0 0
## 8 1 0 1 0 1 1 1
## 9 1 1 0 0 1 0 0
## bireysel4 katilimsal1 katilimsal2 katilimsal3 katilimsal4
## 1 0 1 1 0 0
## 3 0 0 0 0 1
## 4 1 1 1 1 1
## 5 1 1 1 0 1
## 8 1 1 1 0 1
## 9 1 1 1 1 1
# Madde vektörleri
kur_mad <- paste0("kurumsal", 1:4)
kat_mad <- paste0("katilimsal", 1:4)
bir_mad <- paste0("bireysel", 1:4) # 3 ise 1:3 yap
tum_mad <- c(kur_mad, kat_mad, bir_mad)
# Eksik madde kontrolü
cat("\nVeri setindeki maddeler:\n")##
## Veri setindeki maddeler:
## [1] "kurumsal1" "kurumsal2" "kurumsal3" "kurumsal4" "bireysel1"
## [6] "bireysel2" "bireysel3" "bireysel4" "katilimsal1" "katilimsal2"
## [11] "katilimsal3" "katilimsal4"
eksik <- tum_mad[!tum_mad %in% names(aidiyet)]
if (length(eksik) > 0) {
cat("EKSİK MADDELER:", eksik, "\n")
cat("Mevcut isimler üzerinden devam edin.\n")
} else {
cat("Tüm maddeler mevcut.\n")
}## Tüm maddeler mevcut.
# Ordered (sıralı kategorik) tanımla — WLSMV için zorunlu
for (m in tum_mad) {
if (m %in% names(aidiyet))
aidiyet[[m]] <- ordered(aidiyet[[m]])
}##
## === Madde Düzeyinde P(1) Oranları ===
item_p <- sapply(tum_mad[tum_mad %in% names(aidiyet)],
function(x) mean(as.numeric(as.character(aidiyet[[x]])),
na.rm = TRUE))
print(round(item_p, 3))## kurumsal1 kurumsal2 kurumsal3 kurumsal4 katilimsal1 katilimsal2
## 0.484 0.277 0.312 0.062 0.747 0.895
## katilimsal3 katilimsal4 bireysel1 bireysel2 bireysel3 bireysel4
## 0.427 0.807 0.766 0.490 0.650 0.689
model1 <- '
Kurumsal =~ kurumsal1 + kurumsal2 + kurumsal3 + kurumsal4
Katilimsal =~ katilimsal1 + katilimsal2 + katilimsal3 +
katilimsal4
Bireysel =~ bireysel1 + bireysel2 + bireysel3 + bireysel4
'
fit1 <- cfa(
model = model1,
data = aidiyet,
ordered = tum_mad,
estimator = "WLSMV",
parameterization = "delta"
)
cat("\n--- Model 1 Özeti ---\n")##
## --- Model 1 Özeti ---
## lavaan 0.6-21 ended normally after 43 iterations
##
## Estimator DWLS
## Optimization method NLMINB
## Number of model parameters 27
##
## Number of observations 794
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 161.148 189.809
## Degrees of freedom 51 51
## P-value (Unknown) NA 0.000
## Scaling correction factor 0.882
## Shift parameter 7.113
## simple second-order correction
##
## Model Test Baseline Model:
##
## Test statistic 2506.101 1939.031
## Degrees of freedom 66 66
## P-value NA 0.000
## Scaling correction factor 1.303
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.955 0.926
## Tucker-Lewis Index (TLI) 0.942 0.904
##
## Robust Comparative Fit Index (CFI) 0.816
## Robust Tucker-Lewis Index (TLI) 0.762
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.052 0.059
## 90 Percent confidence interval - lower 0.043 0.050
## 90 Percent confidence interval - upper 0.061 0.068
## P-value H_0: RMSEA <= 0.050 0.331 0.053
## P-value H_0: RMSEA >= 0.080 0.000 0.000
##
## Robust RMSEA 0.126
## 90 Percent confidence interval - lower 0.101
## 90 Percent confidence interval - upper 0.151
## P-value H_0: Robust RMSEA <= 0.050 0.000
## P-value H_0: Robust RMSEA >= 0.080 0.999
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.088 0.088
##
## Parameter Estimates:
##
## Parameterization Delta
## Standard errors Robust.sem
## Information Expected
## Information saturated (h1) model Unstructured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Kurumsal =~
## kurumsal1 1.000 0.361 0.361
## kurumsal2 0.655 0.248 2.636 0.008 0.237 0.237
## kurumsal3 1.424 0.374 3.807 0.000 0.515 0.515
## kurumsal4 0.627 0.381 1.647 0.100 0.227 0.227
## Katilimsal =~
## katilimsal1 1.000 0.833 0.833
## katilimsal2 0.988 0.067 14.710 0.000 0.823 0.823
## katilimsal3 0.870 0.068 12.758 0.000 0.725 0.725
## katilimsal4 0.947 0.061 15.551 0.000 0.789 0.789
## Bireysel =~
## bireysel1 1.000 0.602 0.602
## bireysel2 0.834 0.100 8.311 0.000 0.502 0.502
## bireysel3 1.412 0.132 10.717 0.000 0.850 0.850
## bireysel4 1.421 0.132 10.730 0.000 0.855 0.855
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Kurumsal ~~
## Katilimsal 0.145 0.038 3.780 0.000 0.480 0.480
## Bireysel 0.121 0.030 4.011 0.000 0.557 0.557
## Katilimsal ~~
## Bireysel 0.232 0.033 6.932 0.000 0.462 0.462
##
## Thresholds:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## kurumsal1|t1 0.041 0.045 0.922 0.356 0.041 0.041
## kurumsal2|t1 0.592 0.047 12.465 0.000 0.592 0.592
## kurumsal3|t1 0.489 0.046 10.522 0.000 0.489 0.489
## kurumsal4|t1 1.541 0.070 21.954 0.000 1.541 1.541
## katilimsal1|t1 -0.665 0.048 -13.769 0.000 -0.665 -0.665
## katilimsal2|t1 -1.256 0.060 -20.956 0.000 -1.256 -1.256
## katilimsal3|t1 0.184 0.045 4.112 0.000 0.184 0.184
## katilimsal4|t1 -0.868 0.051 -16.963 0.000 -0.868 -0.868
## bireysel1|t1 -0.725 0.049 -14.785 0.000 -0.725 -0.725
## bireysel2|t1 0.025 0.045 0.567 0.570 0.025 0.025
## bireysel3|t1 -0.385 0.046 -8.419 0.000 -0.385 -0.385
## bireysel4|t1 -0.493 0.047 -10.591 0.000 -0.493 -0.493
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .kurumsal1 0.869 0.869 0.869
## .kurumsal2 0.944 0.944 0.944
## .kurumsal3 0.735 0.735 0.735
## .kurumsal4 0.949 0.949 0.949
## .katilimsal1 0.306 0.306 0.306
## .katilimsal2 0.322 0.322 0.322
## .katilimsal3 0.475 0.475 0.475
## .katilimsal4 0.378 0.378 0.378
## .bireysel1 0.638 0.638 0.638
## .bireysel2 0.748 0.748 0.748
## .bireysel3 0.278 0.278 0.278
## .bireysel4 0.268 0.268 0.268
## Kurumsal 0.131 0.052 2.519 0.012 1.000 1.000
## Katilimsal 0.694 0.058 11.960 0.000 1.000 1.000
## Bireysel 0.362 0.059 6.123 0.000 1.000 1.000
##
## R-Square:
## Estimate
## kurumsal1 0.131
## kurumsal2 0.056
## kurumsal3 0.265
## kurumsal4 0.051
## katilimsal1 0.694
## katilimsal2 0.678
## katilimsal3 0.525
## katilimsal4 0.622
## bireysel1 0.362
## bireysel2 0.252
## bireysel3 0.722
## bireysel4 0.732
# Uyum indeksleri
idx1 <- fitMeasures(fit1, c("chisq.scaled", "df.scaled", "pvalue.scaled",
"cfi.scaled", "tli.scaled",
"rmsea.scaled",
"rmsea.ci.lower.scaled", "rmsea.ci.upper.scaled",
"srmr", "wrmr"))
cat("\n--- Model 1 Uyum İndeksleri ---\n")##
## --- Model 1 Uyum İndeksleri ---
## chisq.scaled df.scaled pvalue.scaled
## 189.809 51.000 0.000
## cfi.scaled tli.scaled rmsea.scaled
## 0.926 0.904 0.059
## rmsea.ci.lower.scaled rmsea.ci.upper.scaled srmr
## 0.050 0.068 0.088
## wrmr
## 1.437
##
## --- Model 1 Standardize Faktör Yükleri ---
std1 <- standardizedSolution(fit1)
print(std1[std1$op == "=~", c("lhs","rhs","est.std","se","z","pvalue")])## lhs rhs est.std se z pvalue
## 1 Kurumsal kurumsal1 0.361 0.072 5.038 0.000
## 2 Kurumsal kurumsal2 0.237 0.079 3.015 0.003
## 3 Kurumsal kurumsal3 0.515 0.092 5.567 0.000
## 4 Kurumsal kurumsal4 0.227 0.129 1.753 0.080
## 5 Katilimsal katilimsal1 0.833 0.035 23.920 0.000
## 6 Katilimsal katilimsal2 0.823 0.043 19.152 0.000
## 7 Katilimsal katilimsal3 0.725 0.044 16.518 0.000
## 8 Katilimsal katilimsal4 0.789 0.038 20.812 0.000
## 9 Bireysel bireysel1 0.602 0.049 12.246 0.000
## 10 Bireysel bireysel2 0.502 0.048 10.411 0.000
## 11 Bireysel bireysel3 0.850 0.036 23.588 0.000
## 12 Bireysel bireysel4 0.855 0.037 23.090 0.000
##
## --- Faktörler Arası Korelasyonlar ---
## Kurmsl Ktlmsl Birysl
## Kurumsal 1.000
## Katilimsal 0.480 1.000
## Bireysel 0.557 0.462 1.000
##
## --- Modifikasyon Endeksleri (mi > 10) ---
mi1 <- modindices(fit1, sort. = TRUE, maximum.number = 15)
print(mi1[mi1$mi > 10, c("lhs","op","rhs","mi","epc","sepc.all")])## lhs op rhs mi epc sepc.all
## 82 Katilimsal =~ bireysel1 67.739 0.595 0.496
## 159 bireysel3 ~~ bireysel4 55.085 0.677 2.480
## 156 bireysel1 ~~ bireysel4 29.315 -0.440 -1.063
## 155 bireysel1 ~~ bireysel3 25.829 -0.407 -0.968
## 74 Kurumsal =~ bireysel1 25.757 1.825 0.659
## 141 katilimsal2 ~~ bireysel1 21.571 0.312 0.688
## 94 kurumsal1 ~~ kurumsal2 19.012 0.271 0.299
## 154 bireysel1 ~~ bireysel2 13.966 0.230 0.333
## 84 Katilimsal =~ bireysel3 13.854 -0.340 -0.283
## 135 katilimsal1 ~~ bireysel1 10.351 0.198 0.448
# Path diyagramı
semPaths(fit1,
what = "std", layout = "tree2", rotation = 2,
edge.label.cex = 0.7, node.label.cex = 0.8,
title = TRUE,
main = "Model 1: Üç Faktörlü Birinci Derece Model (WLSMV)")model2 <- '
# Birinci derece faktörler
Kurumsal =~ kurumsal1 + kurumsal2 + kurumsal3 + kurumsal4
Katilimsal =~ katilimsal1 + katilimsal2 + katilimsal3 +
katilimsal4
Bireysel =~ bireysel1 + bireysel2 + bireysel3 + bireysel4
# İkinci derece genel faktör
G_Aidiyet =~ Kurumsal + Katilimsal + Bireysel
'
fit2 <- cfa(
model = model2,
data = aidiyet,
ordered = tum_mad,
estimator = "WLSMV",
parameterization = "delta"
)##
## --- Model 2 Özeti ---
## lavaan 0.6-21 ended normally after 59 iterations
##
## Estimator DWLS
## Optimization method NLMINB
## Number of model parameters 27
##
## Number of observations 794
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 161.148 189.809
## Degrees of freedom 51 51
## P-value (Unknown) NA 0.000
## Scaling correction factor 0.882
## Shift parameter 7.113
## simple second-order correction
##
## Model Test Baseline Model:
##
## Test statistic 2506.101 1939.031
## Degrees of freedom 66 66
## P-value NA 0.000
## Scaling correction factor 1.303
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.955 0.926
## Tucker-Lewis Index (TLI) 0.942 0.904
##
## Robust Comparative Fit Index (CFI) 0.816
## Robust Tucker-Lewis Index (TLI) 0.762
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.052 0.059
## 90 Percent confidence interval - lower 0.043 0.050
## 90 Percent confidence interval - upper 0.061 0.068
## P-value H_0: RMSEA <= 0.050 0.331 0.053
## P-value H_0: RMSEA >= 0.080 0.000 0.000
##
## Robust RMSEA 0.126
## 90 Percent confidence interval - lower 0.101
## 90 Percent confidence interval - upper 0.151
## P-value H_0: Robust RMSEA <= 0.050 0.000
## P-value H_0: Robust RMSEA >= 0.080 0.999
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.088 0.088
##
## Parameter Estimates:
##
## Parameterization Delta
## Standard errors Robust.sem
## Information Expected
## Information saturated (h1) model Unstructured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Kurumsal =~
## kurumsal1 1.000 0.361 0.361
## kurumsal2 0.655 0.248 2.636 0.008 0.237 0.237
## kurumsal3 1.424 0.374 3.807 0.000 0.515 0.515
## kurumsal4 0.627 0.381 1.647 0.100 0.227 0.227
## Katilimsal =~
## katilimsal1 1.000 0.833 0.833
## katilimsal2 0.988 0.067 14.710 0.000 0.823 0.823
## katilimsal3 0.870 0.068 12.758 0.000 0.725 0.725
## katilimsal4 0.947 0.061 15.551 0.000 0.789 0.789
## Bireysel =~
## bireysel1 1.000 0.602 0.602
## bireysel2 0.834 0.100 8.311 0.000 0.502 0.502
## bireysel3 1.412 0.132 10.717 0.000 0.850 0.850
## bireysel4 1.421 0.132 10.730 0.000 0.855 0.855
## G_Aidiyet =~
## Kurumsal 1.000 0.761 0.761
## Katilimsal 1.910 0.493 3.872 0.000 0.631 0.631
## Bireysel 1.602 0.450 3.561 0.000 0.732 0.732
##
## Thresholds:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## kurumsal1|t1 0.041 0.045 0.922 0.356 0.041 0.041
## kurumsal2|t1 0.592 0.047 12.465 0.000 0.592 0.592
## kurumsal3|t1 0.489 0.046 10.522 0.000 0.489 0.489
## kurumsal4|t1 1.541 0.070 21.954 0.000 1.541 1.541
## katilimsal1|t1 -0.665 0.048 -13.769 0.000 -0.665 -0.665
## katilimsal2|t1 -1.256 0.060 -20.956 0.000 -1.256 -1.256
## katilimsal3|t1 0.184 0.045 4.112 0.000 0.184 0.184
## katilimsal4|t1 -0.868 0.051 -16.963 0.000 -0.868 -0.868
## bireysel1|t1 -0.725 0.049 -14.785 0.000 -0.725 -0.725
## bireysel2|t1 0.025 0.045 0.567 0.570 0.025 0.025
## bireysel3|t1 -0.385 0.046 -8.419 0.000 -0.385 -0.385
## bireysel4|t1 -0.493 0.047 -10.591 0.000 -0.493 -0.493
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .kurumsal1 0.869 0.869 0.869
## .kurumsal2 0.944 0.944 0.944
## .kurumsal3 0.735 0.735 0.735
## .kurumsal4 0.949 0.949 0.949
## .katilimsal1 0.306 0.306 0.306
## .katilimsal2 0.322 0.322 0.322
## .katilimsal3 0.475 0.475 0.475
## .katilimsal4 0.378 0.378 0.378
## .bireysel1 0.638 0.638 0.638
## .bireysel2 0.748 0.748 0.748
## .bireysel3 0.278 0.278 0.278
## .bireysel4 0.268 0.268 0.268
## .Kurumsal 0.055 0.036 1.535 0.125 0.420 0.420
## .Katilimsal 0.418 0.072 5.797 0.000 0.602 0.602
## .Bireysel 0.168 0.051 3.312 0.001 0.464 0.464
## G_Aidiyet 0.076 0.035 2.180 0.029 1.000 1.000
##
## R-Square:
## Estimate
## kurumsal1 0.131
## kurumsal2 0.056
## kurumsal3 0.265
## kurumsal4 0.051
## katilimsal1 0.694
## katilimsal2 0.678
## katilimsal3 0.525
## katilimsal4 0.622
## bireysel1 0.362
## bireysel2 0.252
## bireysel3 0.722
## bireysel4 0.732
## Kurumsal 0.580
## Katilimsal 0.398
## Bireysel 0.536
idx2 <- fitMeasures(fit2, c("chisq.scaled", "df.scaled", "pvalue.scaled",
"cfi.scaled", "tli.scaled",
"rmsea.scaled",
"rmsea.ci.lower.scaled", "rmsea.ci.upper.scaled",
"srmr", "wrmr"))
cat("\n--- Model 2 Uyum İndeksleri ---\n")##
## --- Model 2 Uyum İndeksleri ---
## chisq.scaled df.scaled pvalue.scaled
## 189.809 51.000 0.000
## cfi.scaled tli.scaled rmsea.scaled
## 0.926 0.904 0.059
## rmsea.ci.lower.scaled rmsea.ci.upper.scaled srmr
## 0.050 0.068 0.088
## wrmr
## 1.437
##
## --- Model 2 Standardize Faktör Yükleri (Birinci Derece) ---
##
## >> Birinci Derece Yükler:
print(std2[std2$op == "=~" & std2$lhs %in% c("Kurumsal","Katilimsal","Bireysel"),
c("lhs","rhs","est.std","se","z","pvalue")])## lhs rhs est.std se z pvalue
## 1 Kurumsal kurumsal1 0.361 0.072 5.038 0.000
## 2 Kurumsal kurumsal2 0.237 0.079 3.015 0.003
## 3 Kurumsal kurumsal3 0.515 0.092 5.567 0.000
## 4 Kurumsal kurumsal4 0.227 0.129 1.753 0.080
## 5 Katilimsal katilimsal1 0.833 0.035 23.920 0.000
## 6 Katilimsal katilimsal2 0.823 0.043 19.152 0.000
## 7 Katilimsal katilimsal3 0.725 0.044 16.518 0.000
## 8 Katilimsal katilimsal4 0.789 0.038 20.812 0.000
## 9 Bireysel bireysel1 0.602 0.049 12.246 0.000
## 10 Bireysel bireysel2 0.502 0.048 10.411 0.000
## 11 Bireysel bireysel3 0.850 0.036 23.588 0.000
## 12 Bireysel bireysel4 0.855 0.037 23.090 0.000
##
## >> İkinci Derece Yükler (G → Birinci Derece Faktörler):
## lhs rhs est.std se z pvalue
## 13 G_Aidiyet Kurumsal 0.761 0.122 6.215 0
## 14 G_Aidiyet Katilimsal 0.631 0.074 8.570 0
## 15 G_Aidiyet Bireysel 0.732 0.079 9.244 0
##
## --- Birinci Derece Faktörlerin R² (G tarafından açıklanan varyans) ---
r2_2 <- std2[std2$op == "r2" & std2$lhs %in% c("Kurumsal","Katilimsal","Bireysel"),
c("lhs","est.std")]
if (nrow(r2_2) > 0) print(r2_2)# M1 vs M2 ki-kare fark testi (WLSMV düzeltmeli)
cat("\n--- Model 1 vs Model 2 Ki-Kare Fark Testi (Satorra-Bentler) ---\n")##
## --- Model 1 vs Model 2 Ki-Kare Fark Testi (Satorra-Bentler) ---
tryCatch({
print(lavTestLRT(fit1, fit2, method = "satorra.bentler.2010"))
}, error = function(e) {
cat("Hata:", conditionMessage(e), "\n")
cat("Standart LRT:\n")
tryCatch(print(lavTestLRT(fit1, fit2)), error = function(e2) cat(conditionMessage(e2)))
})## Hata: lavaan->lavTestLRT():
## method = "satorra.bentler.2010" only available when models are fitted with
## test = "satorra.bentler", "yuan.bentler", or "yuan.bentler.mplus".
## Standart LRT:
##
## Chi-Squared Difference Test
##
## Df AIC BIC Chisq Chisq diff RMSEA Df diff Pr(>Chisq)
## fit1 51 161.15
## fit2 51 161.15 1e-10 0 0
# Path diyagramı
semPaths(fit2,
what = "std", layout = "tree2", rotation = 2,
edge.label.cex = 0.65, node.label.cex = 0.75,
title = TRUE,
main = "Model 2: İkinci Dereceli Üç Faktörlü Model (WLSMV)")tablo <- data.frame(
Model = c("M1: 3 Faktör (1. Derece)", "M2: 3 Faktör (2. Derece, G)"),
Chi2_s = round(c(idx1["chisq.scaled"], idx2["chisq.scaled"]), 2),
df_s = c(idx1["df.scaled"], idx2["df.scaled"]),
p_s = round(c(idx1["pvalue.scaled"], idx2["pvalue.scaled"]), 3),
CFI = round(c(idx1["cfi.scaled"], idx2["cfi.scaled"]), 3),
TLI = round(c(idx1["tli.scaled"], idx2["tli.scaled"]), 3),
RMSEA = round(c(idx1["rmsea.scaled"], idx2["rmsea.scaled"]), 3),
SRMR = round(c(idx1["srmr"], idx2["srmr"]), 3),
WRMR = round(c(idx1["wrmr"], idx2["wrmr"]), 3),
row.names = NULL
)
print(tablo, row.names = FALSE)## Model Chi2_s df_s p_s CFI TLI RMSEA SRMR WRMR
## M1: 3 Faktör (1. Derece) 189.81 51 0 0.926 0.904 0.059 0.088 1.437
## M2: 3 Faktör (2. Derece, G) 189.81 51 0 0.926 0.904 0.059 0.088 1.437
Bu ödev kapsamında üç farklı veri seti üzerinde doğrulayıcı faktör analizinin tüm aşamaları (model tanımlama, tahmin, uyum değerlendirme, modifikasyon ve model karşılaştırma) uygulamalı olarak gerçekleştirilmiştir. Hiçbir modelin yeterli uyum sağlayamaması Müziksel faktörünün yetersiz madde sayısı ve Uzamsal–Mantıksal faktörleri arasındaki aşırı korelasyon gibi somut ölçek sorunlarına bağlanmıştır. Motivasyon ve aidiyet ölçeklerinde ise 0/1 puanlanan ikili maddeler için ML yerine WLSMV kestiriminin ve tetrakroik korelasyon matrisinin neden zorunlu olduğu kavranmış, modifikasyon endekslerinin körü körüne değil teorik gerekçeyle kullanılması gerektiği görülmüştür.
Teknik süreçte scan() ile düzensiz formatlı dosya okuma, cor2cov() namespace hatası ve bi-factor modelde ECV hesabındaki NA sorunu gibi gerçek analiz hatalarıyla karşılaşılmış ve her biri çözüme kavuşturulmuştur. Bu deneyim, DFA’nın salt istatistiksel bir işlem olmadığını, model tanımlanabilirliği ve yazılım kısıtlamalarının bir arada değerlendirilmesini gerektiren bütünleşik bir süreç olduğunu somut biçimde ortaya koymuştur.