# ============================================================
# R ile Acimlayici Faktor Analizi (AFA / EFA)
# Senaryo: 12 maddelik bir olcek 200 kisiye uygulandi;
#          maddelerin kac boyut (faktor) altinda toplandigi
#          arastiriliyor.
# Kullanim: Bu dosyayi ve r-faktor-analizi-veri.csv dosyasini
#           ayni klasore koyun, RStudio'da calistirin.
# Kaynak: veriakademi.com
# ============================================================

# --- 1. Veriyi oku ------------------------------------------
veri <- read.csv("r-faktor-analizi-veri.csv", fileEncoding = "UTF-8")
maddeler <- veri[, paste0("m", 1:12)]
head(maddeler)

library(psych)

# --- 2. Veri faktor analizine uygun mu? ---------------------
# KMO: orneklem yeterliligi (>= 0.60 kabul, >= 0.80 iyi)
KMO(maddeler)$MSA

# Bartlett kuresellik testi (p < 0.05 olmali)
cortest.bartlett(cor(maddeler), n = nrow(maddeler))

# --- 3. Kac faktor? Paralel analiz --------------------------
# Mavi cizginin kirmizinin ustunde kaldigi nokta sayisi = faktor sayisi
png("r-faktor-analizi-grafik.png", width = 900, height = 450)
paralel <- fa.parallel(maddeler, fa = "fa", main = "Paralel Analiz Yamac Grafigi")
dev.off()
paralel$nfact          # onerilen faktor sayisi

# --- 4. Faktor analizi (3 faktor, varimax dondurme) ---------
afa <- fa(maddeler, nfactors = 3, rotate = "varimax", fm = "ml")
print(afa$loadings, cutoff = 0.40)   # 0.40 alti yukler gizlenir
# Okuma rehberi:
#  - Her madde tek faktorde yuksek yuk almali (>= 0.40)
#  - Iki faktorde birden yuklenen (binisik) maddeler gozden gecirilir
#  - Aciklanan toplam varyans %50 uzeri arzu edilir

# --- 5. Aciklanan varyans -----------------------------------
afa$Vaccounted

# --- 6. Rapor cumlesi ornegi --------------------------------
# "KMO=... ve Bartlett testi (p<.001) verinin faktorlesmeye uygun
#  oldugunu gostermistir. Paralel analiz 3 faktor onermis; varimax
#  donusumlu AFA'da maddeler 0.40 uzeri yuklerle uc faktore
#  dagilmis, toplam varyansin %...'i aciklanmistir."
