Bu haftaki öğrenme günlüğünde, Açımlayıcı Faktör Analizi (AFA) konusunu inceleyeceğim (Doğrulayıcı faktör analizi tamamlanmadığı için onu eklemedim).
AFA, çok değişkenli istatistiksel analizlerde kullanılan bir tekniktir ve veri setindeki değişkenlerin altında yatan faktörleri belirlemeye yardımcı olur.
Elimdeki veri seti Dündar (2014) tarafından geliştirilen Anne-Baba ve Öğretmen Akademik Katılımı Ölçeğini yanıtlayan 849 öğrenciden oluşmaktadır. Bu veri seti, orijinalinde 4 faktörlü bir yapıyı incelemek için kullanılacaktır.
library(psych)
library(tidyverse)
library(haven)
library(nFactors)
library(EGAnet)
library(psychTools)
AFA için veri setinin hazırlanması:
Maddeler arası korelasyon matrisi
library(knitr)
library(kableExtra)
library(magrittr)
cor(afa_veri) %>%
as.data.frame() %>%
kable("html", digits = 2, caption = "Maddeler Arası Korelasyon Matrisi") %>%
kable_styling("striped", full_width = F) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE) %>%
column_spec(2:17, border_left = TRUE) %>%
column_spec(2:17, border_right = TRUE) %>%
column_spec(2:17, background = "#f7f7f7")
k1 | k2 | k3 | k4 | k5 | k6 | k7 | k8 | k9 | k10 | k11 | k12 | k13 | k14 | k15 | k16 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
k1 | 1.00 | 0.66 | 0.57 | 0.60 | 0.48 | 0.43 | 0.49 | 0.56 | 0.44 | 0.42 | 0.41 | 0.40 | 0.37 | 0.37 | 0.37 | 0.35 |
k2 | 0.66 | 1.00 | 0.79 | 0.77 | 0.63 | 0.64 | 0.65 | 0.55 | 0.54 | 0.53 | 0.51 | 0.51 | 0.49 | 0.49 | 0.45 | 0.43 |
k3 | 0.57 | 0.79 | 1.00 | 0.85 | 0.73 | 0.75 | 0.74 | 0.54 | 0.60 | 0.56 | 0.58 | 0.56 | 0.54 | 0.57 | 0.50 | 0.43 |
k4 | 0.60 | 0.77 | 0.85 | 1.00 | 0.68 | 0.71 | 0.71 | 0.56 | 0.58 | 0.55 | 0.56 | 0.54 | 0.52 | 0.54 | 0.49 | 0.43 |
k5 | 0.48 | 0.63 | 0.73 | 0.68 | 1.00 | 0.81 | 0.80 | 0.57 | 0.59 | 0.54 | 0.56 | 0.56 | 0.57 | 0.56 | 0.50 | 0.42 |
k6 | 0.43 | 0.64 | 0.75 | 0.71 | 0.81 | 1.00 | 0.77 | 0.52 | 0.61 | 0.55 | 0.56 | 0.56 | 0.56 | 0.60 | 0.47 | 0.40 |
k7 | 0.49 | 0.65 | 0.74 | 0.71 | 0.80 | 0.77 | 1.00 | 0.60 | 0.57 | 0.54 | 0.54 | 0.54 | 0.55 | 0.54 | 0.53 | 0.44 |
k8 | 0.56 | 0.55 | 0.54 | 0.56 | 0.57 | 0.52 | 0.60 | 1.00 | 0.40 | 0.41 | 0.44 | 0.41 | 0.41 | 0.40 | 0.43 | 0.48 |
k9 | 0.44 | 0.54 | 0.60 | 0.58 | 0.59 | 0.61 | 0.57 | 0.40 | 1.00 | 0.71 | 0.65 | 0.66 | 0.63 | 0.59 | 0.56 | 0.49 |
k10 | 0.42 | 0.53 | 0.56 | 0.55 | 0.54 | 0.55 | 0.54 | 0.41 | 0.71 | 1.00 | 0.77 | 0.77 | 0.70 | 0.63 | 0.64 | 0.56 |
k11 | 0.41 | 0.51 | 0.58 | 0.56 | 0.56 | 0.56 | 0.54 | 0.44 | 0.65 | 0.77 | 1.00 | 0.79 | 0.68 | 0.62 | 0.64 | 0.57 |
k12 | 0.40 | 0.51 | 0.56 | 0.54 | 0.56 | 0.56 | 0.54 | 0.41 | 0.66 | 0.77 | 0.79 | 1.00 | 0.72 | 0.66 | 0.64 | 0.57 |
k13 | 0.37 | 0.49 | 0.54 | 0.52 | 0.57 | 0.56 | 0.55 | 0.41 | 0.63 | 0.70 | 0.68 | 0.72 | 1.00 | 0.69 | 0.71 | 0.61 |
k14 | 0.37 | 0.49 | 0.57 | 0.54 | 0.56 | 0.60 | 0.54 | 0.40 | 0.59 | 0.63 | 0.62 | 0.66 | 0.69 | 1.00 | 0.70 | 0.59 |
k15 | 0.37 | 0.45 | 0.50 | 0.49 | 0.50 | 0.47 | 0.53 | 0.43 | 0.56 | 0.64 | 0.64 | 0.64 | 0.71 | 0.70 | 1.00 | 0.69 |
k16 | 0.35 | 0.43 | 0.43 | 0.43 | 0.42 | 0.40 | 0.44 | 0.48 | 0.49 | 0.56 | 0.57 | 0.57 | 0.61 | 0.59 | 0.69 | 1.00 |
KMO ve Bartlett Testi
KMO ve Bartlett testi, veri setinin AFA için uygun olup olmadığını kontrol etmek için kullanılır. KMO testi, değişkenler arasındaki korelasyonların yeterli olup olmadığını değerlendirirken, Bartlett testi ise değişkenler arasındaki korelasyon matrisinin sıfırdan farklı olup olmadığını test eder.
library(knitr)
library(kableExtra)
kmo_result <- KMO(afa_veri)
cat("### KMO (Kaiser-Meyer-Olkin) Ölçüsü\n")
## ### KMO (Kaiser-Meyer-Olkin) Ölçüsü
## **Genel MSA (Sampling Adequacy)**: 0.954
## **Değişken Bazında KMO Değerleri:**
kmo_table <- as.data.frame(kmo_result$MSAi)
kmo_table <- tibble::rownames_to_column(kmo_table, var = "Değişken")
names(kmo_table)[2] <- "KMO Değeri"
kable(kmo_table, align = "c", digits = 3, caption = "Değişken Bazında KMO Değerleri")
Değişken | KMO Değeri |
---|---|
k1 | 0.934 |
k2 | 0.949 |
k3 | 0.942 |
k4 | 0.952 |
k5 | 0.950 |
k6 | 0.948 |
k7 | 0.959 |
k8 | 0.947 |
k9 | 0.976 |
k10 | 0.958 |
k11 | 0.955 |
k12 | 0.955 |
k13 | 0.972 |
k14 | 0.966 |
k15 | 0.943 |
k16 | 0.946 |
## ### Bartlett’s Test of Sphericity
## **Ki-kare Değeri (χ²)**: 1312.31
## **Serbestlik Derecesi (df)**: 120
## **p-değeri**: <2e-16
if(bartlett_result$p.value < 0.05) {
cat(":white_check_mark: **Sonuç:** Sıfır hipotezi reddedilir. AFA yapılabilir.**\n")
} else {
cat(":x: **Sonuç:** Sıfır hipotezi reddedilemez. AFA için uygun değildir.**\n")
}
## :white_check_mark: **Sonuç:** Sıfır hipotezi reddedilir. AFA yapılabilir.**
Örneklem yeterliliği ve faktör analizine uygunluk için yapılan Kaiser-Meyer-Olkin (KMO) örneklem yeterliliği testi ve Bartlett küresellik testi sonucunda, genel KMO değeri 0.95 olarak elde edilmiştir. Bu değer, Kaiser (1974) tarafından önerilen sınıflandırmaya göre “mükemmel” düzeyde bir örneklem yeterliliğine işaret etmektedir. KMO değerinin 0.90 ve üzerinde olması, verilerin faktör analizine son derece uygun olduğunu göstermektedir. Ayrıca, her bir değişkene ait KMO değerlerinin 0.93 ile 0.98 arasında değiştiği görülmüştür. Bu durum, tüm değişkenlerin ortak faktör yapısına yüksek düzeyde katkı sağladığını ve analiz dışında bırakılması gereken herhangi bir değişken olmadığını göstermektedir. Bartlett küresellik testi sonucunda elde edilen ki-kare değeri χ²(120) = 1312.307, ve bu değere karşılık gelen anlamlılık düzeyi ise p < .001 olarak bulunmuştur. Bu sonuç, değişkenler arasında anlamlı ilişkiler bulunduğunu göstermektedir. Dolayısıyla, faktör analizi uygulanması için gerekli koşulların sağlandığı anlaşılmaktadır.
Özdeğerleri inceleyerek faktör sayısına karar verme
## [1] 9.5817704 1.6057675 0.8236256 0.6846930 0.5148060 0.3950659 0.3711608
## [8] 0.3158810 0.2853920 0.2811896 0.2309877 0.2075531 0.2022243 0.1860548
## [15] 0.1767107 0.1371178
## [1] 16
Toplamda 16 değişken bulunduğu için 16 özdeğer hesaplanmıştır ve bu özdeğerlerin toplamı, değişken sayısıyla uyumlu olarak 16’dır. Bu, analizde kullanılan veri matrisinin toplam varyansının 16 birim olduğu anlamına gelir.
Faktör sayısının belirlenmesinde kullanılan en temel kriterlerden biri K1 Kriteridir. Bu kritere göre, yalnızca özdeğeri 1’in üzerinde olan faktörler anlamlı kabul edilir. Bu kriter doğrultusunda yalnızca ilk iki faktör (9.58 ve 1.61) özdeğerleri 1’in üzerinde olduğu için, iki faktörlü bir yapı önerilmektedir. Bu iki faktör, verideki toplam varyansın önemli bir kısmını açıklamaktadır.
Özdeğerlerin hızlı bir şekilde düşüşe geçtiği ve özellikle üçüncü faktörden itibaren 1’in altına indiği görülmektedir. Bu da verinin daha fazla faktörle anlamlı şekilde temsil edilemeyeceğini ve faktör yapısının muhtemelen iki faktörlü olduğunu göstermektedir.
Scree Plot (Yamaç birikinti grafiği)
İki faktörlü yapı yamaç birikinti grafiği ile de desteklenmektedir.
Paralel analiz
## Parallel analysis suggests that the number of factors = 4 and the number of components = NA
Paralel analiz 3 faktör önerirken, K1 kriteri ve özdeğer grafiği 2 faktör öneriyor. Bu durumda, K1 kriteri ve özdeğer grafiği dikkate alınarak 2 faktörlü yapı tercih edilecektir.
## Loading required namespace: GPArotation
## Factor Analysis using method = pa
## Call: fa(r = afa_veri, nfactors = 2, rotate = "oblimin", fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
## PA1 PA2 h2 u2 com
## k1 0.67 -0.03 0.43 0.57 1.0
## k2 0.88 -0.06 0.71 0.29 1.0
## k3 0.92 -0.03 0.81 0.19 1.0
## k4 0.91 -0.04 0.78 0.22 1.0
## k5 0.77 0.09 0.70 0.30 1.0
## k6 0.76 0.09 0.69 0.31 1.0
## k7 0.80 0.06 0.72 0.28 1.0
## k8 0.63 0.05 0.44 0.56 1.0
## k9 0.25 0.57 0.59 0.41 1.4
## k10 0.02 0.84 0.72 0.28 1.0
## k11 0.05 0.81 0.71 0.29 1.0
## k12 -0.02 0.87 0.74 0.26 1.0
## k13 -0.02 0.86 0.71 0.29 1.0
## k14 0.09 0.72 0.63 0.37 1.0
## k15 -0.06 0.86 0.66 0.34 1.0
## k16 -0.04 0.74 0.51 0.49 1.0
##
## PA1 PA2
## SS loadings 5.36 5.17
## Proportion Var 0.34 0.32
## Cumulative Var 0.34 0.66
## Proportion Explained 0.51 0.49
## Cumulative Proportion 0.51 1.00
##
## With factor correlations of
## PA1 PA2
## PA1 1.00 0.74
## PA2 0.74 1.00
##
## Mean item complexity = 1
## Test of the hypothesis that 2 factors are sufficient.
##
## df null model = 120 with the objective function = 14.14 with Chi Square = 11900.29
## df of the model are 89 and the objective function was 1.3
##
## The root mean square of the residuals (RMSR) is 0.04
## The df corrected root mean square of the residuals is 0.05
##
## The harmonic n.obs is 849 with the empirical chi square 329.56 with prob < 2.5e-29
## The total n.obs was 849 with Likelihood Chi Square = 1094.25 with prob < 8.4e-173
##
## Tucker Lewis Index of factoring reliability = 0.885
## RMSEA index = 0.115 and the 90 % confidence intervals are 0.109 0.122
## BIC = 494.03
## Fit based upon off diagonal values = 1
## Measures of factor score adequacy
## PA1 PA2
## Correlation of (regression) scores with factors 0.98 0.97
## Multiple R square of scores with factors 0.95 0.94
## Minimum correlation of possible factor scores 0.90 0.89
Principal Axis yöntemi kullanılarak gerçekleştirilen ve Oblimin rotasyonu uygulanan faktör analizi sonucunda, iki faktörlü bir yapı elde edilmiştir. Oblimin rotasyonu, faktörler arasında korelasyonun olabileceğini kabul eder ve bu bağlamda sosyal bilimlerde yaygın olarak tercih edilen bir yöntemdir.
Yapılan analiz sonucunda her bir faktörün açıklamış olduğu varyans miktarı aşağıdaki gibidir
knitr::kable(data.frame(
Faktör = c("PA1", "PA2"),
`SS Loadings` = c(5.36, 5.17),
`Açıklanan Varyans` = c(0.34, 0.32),
`Kümülatif Varyans` = c(0.34, 0.66),
`Toplam Varyans Yüzdesi` = c("51%", "49%")
))
Faktör | SS.Loadings | Açıklanan.Varyans | Kümülatif.Varyans | Toplam.Varyans.Yüzdesi |
---|---|---|---|---|
PA1 | 5.36 | 0.34 | 0.34 | 51% |
PA2 | 5.17 | 0.32 | 0.66 | 49% |
Elde edilen sonuçlara göre, PA1 ve PA2 faktörleri toplam varyansın sırasıyla** %34 ve %32’sini açıklamaktadır. Bu iki faktör birlikte toplam varyansın %66**’sını açıklamakta olup, sosyal bilimlerde geçerli kabul edilen eşiklerin üzerindedir. Ayrıca, faktörlerin açıklanan toplam varyansa katkısı oldukça dengelidir.
Faktörler arası korelasyon
Faktör1 | PA1 | PA2 |
---|---|---|
PA1 | 1.00 | 0.74 |
PA2 | 0.74 | 1.00 |
PA1 ve PA2 arasındaki korelasyonun 0.74 olması, bu iki yapının birbirine yüksek düzeyde bağlı olduğunu ve bu nedenle bağımsız rotasyon (örneğin varimax) yerine eğik rotasyon (oblimin) tercih edilmesinin uygun olduğunu göstermektedir.
Maddelerin Faktör Yükleri, Ortak ve Özgül Varyansları
Aşağıda her bir madde için PA1 ve PA2 faktörlerine ait yükler, açıklanan ortak varyanslar, açıklanmayan özgül varyanslar ve madde karmaşıklığı sunulmuştur.
knitr::kable(data.frame(
Madde = paste0("k", 1:16),
PA1 = c(0.67, 0.88, 0.92, 0.91, 0.77, 0.76, 0.80, 0.63, 0.25, 0.02, 0.05, -0.02, -0.02, 0.09, -0.06, -0.04),
PA2 = c(-0.03, -0.06, -0.03, -0.04, 0.09, 0.09, 0.06, 0.05, 0.57, 0.84, 0.81, 0.87, 0.86, 0.72, 0.86, 0.74),
`h²` = c(0.43, 0.71, 0.81, 0.78, 0.70, 0.69, 0.72, 0.44, 0.59, 0.72, 0.71, 0.74, 0.71, 0.63, 0.66, 0.51),
`u²` = c(0.57, 0.29, 0.19, 0.22, 0.30, 0.31, 0.28, 0.56, 0.41, 0.28, 0.29, 0.26, 0.29, 0.37, 0.34, 0.49),
`Karmaşıklık` = c(1.00, 1.01, 1.00, 1.00, 1.03, 1.03, 1.01, 1.01, 1.36, 1.00, 1.01, 1.00, 1.00, 1.03, 1.01, 1.00)
))
Madde | PA1 | PA2 | h. | u. | Karmaşıklık |
---|---|---|---|---|---|
k1 | 0.67 | -0.03 | 0.43 | 0.57 | 1.00 |
k2 | 0.88 | -0.06 | 0.71 | 0.29 | 1.01 |
k3 | 0.92 | -0.03 | 0.81 | 0.19 | 1.00 |
k4 | 0.91 | -0.04 | 0.78 | 0.22 | 1.00 |
k5 | 0.77 | 0.09 | 0.70 | 0.30 | 1.03 |
k6 | 0.76 | 0.09 | 0.69 | 0.31 | 1.03 |
k7 | 0.80 | 0.06 | 0.72 | 0.28 | 1.01 |
k8 | 0.63 | 0.05 | 0.44 | 0.56 | 1.01 |
k9 | 0.25 | 0.57 | 0.59 | 0.41 | 1.36 |
k10 | 0.02 | 0.84 | 0.72 | 0.28 | 1.00 |
k11 | 0.05 | 0.81 | 0.71 | 0.29 | 1.01 |
k12 | -0.02 | 0.87 | 0.74 | 0.26 | 1.00 |
k13 | -0.02 | 0.86 | 0.71 | 0.29 | 1.00 |
k14 | 0.09 | 0.72 | 0.63 | 0.37 | 1.03 |
k15 | -0.06 | 0.86 | 0.66 | 0.34 | 1.01 |
k16 | -0.04 | 0.74 | 0.51 | 0.49 | 1.00 |
Maddelerin büyük çoğunluğu yalnızca bir faktöre anlamlı düzeyde yüklenmekte olup, karmaşıklık değerleri ortalama 1 civarında çıkmıştır. Bu durum, maddelerin faktörler arasında çapraz yüklenme yapmadığını ve faktör yapısının belirgin olduğunu göstermektedir.
Model Uyum İndeksleri
RMSR: 0.04 → Düşük değer, iyi uyum.
RMSEA: 0.115 (90% CI: 0.109–0.122) İdeal sınırların biraz üstünde, ancak kabul edilebilir düzeyde.
Tucker Lewis Index (TLI): 0.885 Kabul edilebilir düzeyde.
BIC: 494.03 Karşılaştırmalı modeller için kullanılabilir.
χ²: 329.56, p < 0.001 Model anlamlıdır.
Faktör Skorlarının Yeterliliği
knitr::kable(data.frame(
Ölçüt = c(
"Faktörlerle Korelasyon (regresyon skoru)",
"Faktör skorlarının R² değeri",
"Faktör skorlarının minimum korelasyonu"
),
PA1 = c(0.98, 0.95, 0.90),
PA2 = c(0.97, 0.94, 0.89)
))
Ölçüt | PA1 | PA2 |
---|---|---|
Faktörlerle Korelasyon (regresyon skoru) | 0.98 | 0.97 |
Faktör skorlarının R² değeri | 0.95 | 0.94 |
Faktör skorlarının minimum korelasyonu | 0.90 | 0.89 |
Bu değerler, özellikle her iki faktörün de güvenilir faktör skorları ürettiğini ve bu skorların analizlerde kullanılabilir olduğunu göstermektedir.
EGA Analizi
## $keep
## [1] "k1" "k4" "k5" "k12" "k16"
##
## $remove
## [1] "k2" "k3" "k6" "k7" "k11" "k15"
## Model: GLASSO (EBIC with gamma = 0.5)
## Correlations: auto
## Lambda: 0.0898819622938011 (n = 100, ratio = 0.1)
##
## Number of nodes: 16
## Number of edges: 66
## Edge density: 0.550
##
## Non-zero edge weights:
## M SD Min Max
## 0.114 0.108 0.001 0.408
##
## ----
##
## Algorithm: Walktrap
##
## Number of communities: 4
##
## k1 k2 k3 k4 k5 k6 k7 k8 k9 k10 k11 k12 k13 k14 k15 k16
## 1 1 1 1 2 2 2 1 3 3 3 3 4 4 4 4
##
## ----
##
## Unidimensional Method: Louvain
## Unidimensional: No
##
## ----
##
## TEFI: -3.341
EGA analizi, faktör yapısının daha iyi anlaşılmasına yardımcı olur. EGA analizi sonucunda, iki faktörlü yapının geçerliliği ve güvenilirliği desteklenmektedir. Ayrıca, EGA analizi ile elde edilen faktörlerin birbirleriyle olan ilişkileri de incelenebilir.
Orijinalinde 4 faktörlü bir yapı önerilen ölçek, yaptığım AFA sonucunda 2 faktörlü bir yapıya indirgenmiştir. Ancak EGA analizi, bu iki faktörün birbirleriyle olan ilişkilerini ve yapılarını daha iyi anlamaya yardımcı olmuş, 4 faktörlü yapının daha uygun olabileceğini göstermiştir. Analizde orijinal ölçekten farklı olarak k8 maddesi 1. faktörde gözüküyor.
Analiz sonucunda;
Maddelerin büyük çoğunluğu birbirleriyle ilişkili çıktı. Yani, birçok madde benzer görünüyor.
Maddeler, analiz sonucunda 4 ayrı gruba ayrıldı. Bu, elimizdeki 16 sorunun 4 farklı özelliği ölçtüğü anlamına geliyor.
k1, k2, k3, k4 ve k8 bir arada gruplaşmış.
k5, k6 ve k7 başka bir grubu oluşturmuş.
k9–, k10, k11 ve k12 bir grupta yer alırken,
k13, k14, k15 ve k16 başka bir grubu oluşturmuş.
Bu grupların ortaya çıkması, verimizde gerçekten de birden fazla yapının ölçüldüğünü gösteriyor. Yani tüm maddeler aynı şeyi ölçmüyor, bazıları birbirine daha çok benziyor ve doğal olarak birlikte gruplanıyorlar.
Analizin sonucu ki, bu veriyle çalışırken sadece tek bir özellik değil, birden fazla farklı özelliği aynı anda değerlendirmemiz gerekiyor. Bu nedenle, EGA analizi sonuçları dikkate alınarak, faktör yapısının yeniden gözden geçirilmesi gerekebilir.