AFAV10N200.sav veri dosyası aşağıdaki tabloda verilen 10 değişkenden oluşmaktadır. Bu değişkenlerdeki veri 200 bireyden toplanmıştır.
| Değişken | Davranışsal Problem Maddeleri |
|---|---|
| x1 | Kendini değersiz hissetme (Feel worthless) |
| x2 | Aklından çıkarma (Mind off) |
| x3 | Üzgün hissetme (Feel sad) |
| x4 | Endişeli hissetme (Feel worries) |
| x5 | Bazı şeyler duyma (Hear things) |
| x6 | Kaçma (Run away) |
| x7 | Sevilmediğini hissetme (Feel unloved) |
| x8 | Garip fikirler (Strange ideas) |
| x9 | Kaçak/aylak (Traunt) |
| x10 | Birçok kavgaya karışma (Getting many fights) |
10 değişken üzerinde “Principal Axis Factoring” faktör çıkarma yöntemini kullanarak, döndürme yapmadan, açımlayıcı faktör analizini gerçekleştiriniz ve Kaiser’in kriterini kullanarak faktör sayısına karar veriniz.
Öncelikle gerekli kütüphaneleri aktifleştirelim.
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyverse)
## Warning: package 'ggplot2' was built under R version 4.5.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.1 ✔ readr 2.1.6
## ✔ ggplot2 4.0.2 ✔ stringr 1.6.0
## ✔ lubridate 1.9.4 ✔ tibble 3.3.0
## ✔ purrr 1.2.0 ✔ tidyr 1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(knitr)
Veri setini aktararak başlayalım.
library(haven)
afa <- read_sav("C:/Users/ibrahim/Desktop/OLC733/AFAV10N200.sav")
1)Bu veri setinin açımlayıcı faktör analizi gerçekleştirmek için uygun olup olmadığına karar vermek üzere KMO değerini ve Bartlett’in istatistiğini elde ediniz.
KMO değerini ve p-değeriyle birlikte Bartlett’in istatistiğini rapor ediniz.
Bu indeks ve istatistik testinin hangi varsayımı test ettiğini belirtiniz.
Bu veri setinin test edilen varsayımı karşılayıp karşılamadığını nedeniyle açıklayınız.
a. KMO değeri hesaplama
library(psych)
##
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
afa2 <- afa[ ,-c(10,10)]
KMO(afa2)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = afa2)
## Overall MSA = 0.82
## MSA for each item =
## X1 X2 X3 X4 X5 X6 X7 X8 X9
## 0.85 0.81 0.86 0.88 0.77 0.75 0.86 0.83 0.76
a. Bartlett istatistiği hesaplama
cortest.bartlett(afa)
## R was not square, finding R from data
## $chisq
## [1] 827.1135
##
## $p.value
## [1] 1.977535e-144
##
## $df
## [1] 45
b) buraya açıklama ekleyeceğim.
Özdeğerin 1,0’dan Büyük Olması Kuralı; Guttman (1954), kayda değer faktörlerin özdeğerlerinin 1,0’dan büyük olması gerektiğini düşünmüştür. Bazen bu mantık Kaiser’e atfedilir ve K1 kuralı olarak adlandırılır.
fa(afa)$e.values
## [1] 4.2133667 1.5569268 1.3688626 0.5279807 0.5034460 0.4350567 0.4069430
## [8] 0.3878897 0.3489590 0.2505688
3 faktörlü görünüyor. İlk üç özdeğer 1’den büyüktür.
scree(cor(afa), factors = FALSE)
Havalı bir grafik oldu :) Buradan da 3 faktörlü olduğu belli oluyor.
Yapı üç faktörlü görünüyor.
Örüntü matrisi
out <- fa(afa, nfactors = 3,fm="pa",rotate="none")
out
## Factor Analysis using method = pa
## Call: fa(r = afa, nfactors = 3, rotate = "none", fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
## PA1 PA2 PA3 h2 u2 com
## X1 0.65 0.01 -0.37 0.56 0.44 1.6
## X2 0.62 -0.46 0.23 0.64 0.36 2.1
## X3 0.68 0.06 -0.39 0.62 0.38 1.6
## X4 0.67 0.00 -0.34 0.57 0.43 1.5
## X5 0.58 -0.50 0.25 0.65 0.35 2.3
## X6 0.56 0.37 0.36 0.58 0.42 2.5
## X7 0.72 0.17 -0.28 0.62 0.38 1.4
## X8 0.56 -0.45 0.19 0.54 0.46 2.2
## X9 0.54 0.38 0.28 0.52 0.48 2.4
## X10 0.57 0.43 0.35 0.62 0.38 2.6
##
## PA1 PA2 PA3
## SS loadings 3.81 1.15 0.96
## Proportion Var 0.38 0.12 0.10
## Cumulative Var 0.38 0.50 0.59
## Proportion Explained 0.64 0.19 0.16
## Cumulative Proportion 0.64 0.84 1.00
##
## Mean item complexity = 2
## Test of the hypothesis that 3 factors are sufficient.
##
## df null model = 45 with the objective function = 4.25 with Chi Square = 827.11
## df of the model are 18 and the objective function was 0.15
##
## The root mean square of the residuals (RMSR) is 0.02
## The df corrected root mean square of the residuals is 0.04
##
## The harmonic n.obs is 200 with the empirical chi square 4.51 with prob < 1
## The total n.obs was 200 with Likelihood Chi Square = 29.46 with prob < 0.043
##
## Tucker Lewis Index of factoring reliability = 0.963
## RMSEA index = 0.056 and the 90 % confidence intervals are 0.01 0.092
## BIC = -65.91
## Fit based upon off diagonal values = 1
## Measures of factor score adequacy
## PA1 PA2 PA3
## Correlation of (regression) scores with factors 0.95 0.86 0.84
## Multiple R square of scores with factors 0.90 0.75 0.70
## Minimum correlation of possible factor scores 0.81 0.49 0.41
out <- fa(afa,3,fm="pa",rotate="none")
out$loadings[,1:3]
## PA1 PA2 PA3
## X1 0.6513323 0.0106777075 -0.3711108
## X2 0.6191295 -0.4558196163 0.2261092
## X3 0.6779492 0.0595784670 -0.3914450
## X4 0.6699772 -0.0002579675 -0.3411190
## X5 0.5813796 -0.5036611705 0.2462495
## X6 0.5603424 0.3673744914 0.3553873
## X7 0.7173347 0.1722141983 -0.2805346
## X8 0.5571695 -0.4461612998 0.1870001
## X9 0.5404300 0.3801728617 0.2841904
## X10 0.5678988 0.4254218423 0.3465507
X2 0.6191295 -0.4558196163 0.2261092
X2= (0,62)b1+(-0,46)b2+(0,23)b3+hata
out
## Factor Analysis using method = pa
## Call: fa(r = afa, nfactors = 3, rotate = "none", fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
## PA1 PA2 PA3 h2 u2 com
## X1 0.65 0.01 -0.37 0.56 0.44 1.6
## X2 0.62 -0.46 0.23 0.64 0.36 2.1
## X3 0.68 0.06 -0.39 0.62 0.38 1.6
## X4 0.67 0.00 -0.34 0.57 0.43 1.5
## X5 0.58 -0.50 0.25 0.65 0.35 2.3
## X6 0.56 0.37 0.36 0.58 0.42 2.5
## X7 0.72 0.17 -0.28 0.62 0.38 1.4
## X8 0.56 -0.45 0.19 0.54 0.46 2.2
## X9 0.54 0.38 0.28 0.52 0.48 2.4
## X10 0.57 0.43 0.35 0.62 0.38 2.6
##
## PA1 PA2 PA3
## SS loadings 3.81 1.15 0.96
## Proportion Var 0.38 0.12 0.10
## Cumulative Var 0.38 0.50 0.59
## Proportion Explained 0.64 0.19 0.16
## Cumulative Proportion 0.64 0.84 1.00
##
## Mean item complexity = 2
## Test of the hypothesis that 3 factors are sufficient.
##
## df null model = 45 with the objective function = 4.25 with Chi Square = 827.11
## df of the model are 18 and the objective function was 0.15
##
## The root mean square of the residuals (RMSR) is 0.02
## The df corrected root mean square of the residuals is 0.04
##
## The harmonic n.obs is 200 with the empirical chi square 4.51 with prob < 1
## The total n.obs was 200 with Likelihood Chi Square = 29.46 with prob < 0.043
##
## Tucker Lewis Index of factoring reliability = 0.963
## RMSEA index = 0.056 and the 90 % confidence intervals are 0.01 0.092
## BIC = -65.91
## Fit based upon off diagonal values = 1
## Measures of factor score adequacy
## PA1 PA2 PA3
## Correlation of (regression) scores with factors 0.95 0.86 0.84
## Multiple R square of scores with factors 0.90 0.75 0.70
## Minimum correlation of possible factor scores 0.81 0.49 0.41
| X2 | 0.62 | -0.46 | 0.23 |
(0.62)kare + (-0.46)kare + (0.23) kare= 0.38 + 0.21 + 0.05=0.64
Bu değer, toplamda X2 değişkenindeki varyansın yaklaşık %64’ünün çıkarılan 3 faktör tarafından açıklanacağını önerir.
AÇIKLANACAK
Birinci faktör tarafından açıklanan kısım: %38.07
sum(out$loadings[,1]^2)/10*100
## [1] 38.07606
İkinci faktör tarafından açıklanan kısım: %11.54
sum(out$loadings[,2]^2)/10*100
## [1] 11.54307
Üçüncü faktör tarafından açıklanan kısım: %9.59
sum(out$loadings[,3]^2)/10*100
## [1] 9.599091
out$Vaccounted
## PA1 PA2 PA3
## SS loadings 3.8076059 1.1543066 0.95990908
## Proportion Var 0.3807606 0.1154307 0.09599091
## Cumulative Var 0.3807606 0.4961913 0.59218216
## Proportion Explained 0.6429788 0.1949242 0.16209693
## Cumulative Proportion 0.6429788 0.8379031 1.00000000
Toplam açıklanan varyans: %59
AÇIKLANACAK
factor.model(out$loadings)
## X1 X2 X3 X4 X5 X6 X7
## X1 0.5620710 0.3144804 0.5874758 0.5629679 0.2819075 0.2370038 0.5731715
## X2 0.3144804 0.6422182 0.3040720 0.3377901 0.6452072 0.2598243 0.3021930
## X3 0.5874758 0.3040720 0.6163939 0.5877244 0.2677453 0.2626567 0.6063906
## X4 0.5629679 0.3377901 0.5877244 0.5652316 0.3056406 0.2540925 0.5762491
## X5 0.2819075 0.6452072 0.2677453 0.3056406 0.6523157 0.2282533 0.2612247
## X6 0.2370038 0.2598243 0.2626567 0.2540925 0.2282533 0.5752477 0.3655217
## X7 0.5731715 0.3021930 0.6063906 0.5762491 0.2612247 0.3655217 0.6229265
## X8 0.2887407 0.5906116 0.2779507 0.3096166 0.5946898 0.2147549 0.2703817
## X9 0.2505928 0.2255640 0.2777893 0.2650349 0.1926984 0.5434893 0.3734151
## X10 0.2458247 0.2360456 0.2746970 0.2621545 0.2012342 0.5976666 0.3834178
## X8 X9 X10
## X1 0.2887407 0.2505928 0.2458247
## X2 0.5906116 0.2255640 0.2360456
## X3 0.2779507 0.2777893 0.2746970
## X4 0.3096166 0.2650349 0.2621545
## X5 0.5946898 0.1926984 0.2012342
## X6 0.2147549 0.5434893 0.5976666
## X7 0.2703817 0.3734151 0.3834178
## X8 0.5444668 0.1846363 0.1914141
## X9 0.1846363 0.5173602 0.5671297
## X10 0.1914141 0.5671297 0.6235901
rep_matrix <- factor.model(out$loadings)
diag(rep_matrix)==out$communality
## X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
## TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Yapılan hesaplamaya göre uyumlu görünmektedir.
(residuals <-round(out$residual,2))
## X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
## X1 0.44 0.02 0.01 -0.02 -0.03 -0.04 0.01 0.01 -0.02 0.05
## X2 0.02 0.36 -0.01 0.00 0.00 0.02 -0.01 -0.01 0.02 -0.03
## X3 0.01 -0.01 0.38 0.01 0.02 0.04 -0.02 -0.01 0.03 -0.06
## X4 -0.02 0.00 0.01 0.43 -0.02 0.02 0.01 0.02 -0.01 -0.01
## X5 -0.03 0.00 0.02 -0.02 0.35 -0.04 0.02 0.00 0.01 0.02
## X6 -0.04 0.02 0.04 0.02 -0.04 0.42 -0.02 0.02 0.00 0.00
## X7 0.01 -0.01 -0.02 0.01 0.02 -0.02 0.38 -0.02 0.00 0.02
## X8 0.01 -0.01 -0.01 0.02 0.00 0.02 -0.02 0.46 -0.03 0.02
## X9 -0.02 0.02 0.03 -0.01 0.01 0.00 0.00 -0.03 0.48 0.00
## X10 0.05 -0.03 -0.06 -0.01 0.02 0.00 0.02 0.02 0.00 0.38
sum(abs(residuals[lower.tri(residuals)])>0.05)
## [1] 1
TEKRAR FARKLI BİR HESAPLAMA İLE BAKILACAK
10 değişken üzerinde “Principal Axis Factoring” faktör çıkarma yöntemini kullanarak, promax oblique döndürme yaparak (döndürme yaparken Kappa=4 olağan değerini kullanınız), açımlayıcı faktör analizini gerçekleştiriniz.
matris <- round(cor(afa[,]),2)
matris[upper.tri(matris)] <- NA
matris
## X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
## X1 1.00 NA NA NA NA NA NA NA NA NA
## X2 0.33 1.00 NA NA NA NA NA NA NA NA
## X3 0.59 0.29 1.00 NA NA NA NA NA NA NA
## X4 0.54 0.34 0.60 1.00 NA NA NA NA NA NA
## X5 0.26 0.65 0.29 0.29 1.00 NA NA NA NA NA
## X6 0.20 0.28 0.30 0.27 0.19 1.00 NA NA NA NA
## X7 0.59 0.29 0.59 0.58 0.28 0.34 1.00 NA NA NA
## X8 0.30 0.58 0.26 0.33 0.60 0.23 0.25 1.00 NA NA
## X9 0.23 0.24 0.31 0.25 0.21 0.54 0.38 0.15 1.00 NA
## X10 0.30 0.20 0.21 0.26 0.22 0.60 0.40 0.21 0.56 1
out1 <- fa(afa,3,fm="pa",rotate="promax")
## Loading required namespace: GPArotation
out1$loadings[,1:3]
## PA1 PA2 PA3
## X1 0.76313399 0.02589381 -0.056667264
## X2 0.01853605 0.78016796 0.032453805
## X3 0.80722332 -0.02202437 -0.025029730
## X4 0.73857557 0.05919853 -0.035419371
## X5 -0.03121281 0.82294336 -0.002341073
## X6 -0.03320289 0.04377472 0.758231025
## X7 0.72316767 -0.05547230 0.163334808
## X8 0.02948190 0.72750132 -0.011832591
## X9 0.03632687 -0.01392987 0.705865483
## X10 -0.01074048 -0.01357458 0.799437860
X2;
b1= 0.019
b2= 0.780
b3= 0.032
2.3. Yapı Matrisi
out1 %>% target.rot()
##
## Call: NULL
## Standardized loadings (pattern matrix) based upon correlation matrix
## PA1 PA2 PA3 h2 u2
## X1 0.76 0.03 -0.07 0.59 0.41
## X2 0.02 0.78 0.03 0.61 0.39
## X3 0.81 -0.02 -0.03 0.65 0.35
## X4 0.74 0.06 -0.04 0.55 0.45
## X5 -0.03 0.82 0.00 0.68 0.32
## X6 -0.03 0.04 0.76 0.58 0.42
## X7 0.72 -0.06 0.16 0.55 0.45
## X8 0.03 0.73 -0.01 0.53 0.47
## X9 0.04 -0.01 0.71 0.50 0.50
## X10 0.00 -0.01 0.80 0.64 0.36
##
## PA1 PA2 PA3
## SS loadings 2.31 1.83 1.74
## Proportion Var 0.23 0.18 0.17
## Cumulative Var 0.23 0.41 0.59
## Proportion Explained 0.39 0.31 0.30
## Cumulative Proportion 0.39 0.70 1.00
## PA1 PA2 PA3
## PA1 1 0 0
## PA2 0 1 0
## PA3 0 0 1
out_egik <- fa(afa,3,fm="pa",rotate="promax")
print(out_egik$loadings, digits = 3, cutoff = 0.30)
##
## Loadings:
## PA1 PA2 PA3
## X1 0.763
## X2 0.780
## X3 0.807
## X4 0.739
## X5 0.823
## X6 0.758
## X7 0.723
## X8 0.728
## X9 0.706
## X10 0.799
##
## PA1 PA2 PA3
## SS loadings 2.307 1.825 1.745
## Proportion Var 0.231 0.183 0.175
## Cumulative Var 0.231 0.413 0.588
out_egik$Phi
## PA1 PA2 PA3
## PA1 1.0000000 0.4793074 0.4867700
## PA2 0.4793074 1.0000000 0.3497503
## PA3 0.4867700 0.3497503 1.0000000
out_dik <- fa(afa,3,fm="pa",rotate="varimax")
print(out_dik$loadings[,1:3], digits = 3, cut = 0.30)
## PA1 PA2 PA3
## X1 0.713 0.193 0.130
## X2 0.207 0.758 0.155
## X3 0.750 0.162 0.164
## X4 0.702 0.223 0.150
## X5 0.162 0.783 0.117
## X6 0.159 0.151 0.726
## X7 0.708 0.140 0.319
## X8 0.195 0.704 0.107
## X9 0.199 0.103 0.684
## X10 0.177 0.107 0.762
fa_egik <- fa(afa, nfactors=3, rotate="promax", scores="regression")
head(fa_egik$scores)
## MR1 MR2 MR3
## [1,] -0.5327501 -0.8131395 0.979521324
## [2,] 0.2047905 1.4224319 0.001341526
## [3,] -0.6438838 -0.7643884 -1.532730072
## [4,] -0.6387092 0.8735903 -0.862161198
## [5,] 0.6314216 0.8523588 -0.554338778
## [6,] 1.4114961 0.2200571 0.618247226
Şu EGAnet’i de bir deneyeyim bakayım :)
library(EGAnet)
## [1;m[4;m
## EGAnet (version 2.4.0)[0m[0m
##
## For help getting started, see <https://r-ega.net>
##
## For bugs and errors, submit an issue to <https://github.com/hfgolino/EGAnet/issues>
##
## Attaching package: 'EGAnet'
## The following object is masked from 'package:psych':
##
## CFA
library(psychTools)
## Warning: package 'psychTools' was built under R version 4.5.3
##
## Attaching package: 'psychTools'
## The following object is masked from 'package:dplyr':
##
## recode
# Perform Unique Variable Analysis
bfi_uva <- UVA(
data = afa
)
# Print results
bfi_uva$keep_remove
## $keep
## [1] "X5" "X8" "X9" "X10"
##
## $remove
## [1] "X2" "X2" "X6" "X6" "X8" "X9"
EGA(afa)
## Model: GLASSO (EBIC with gamma = 0.5)
## Correlations: auto
## Lambda: 0.0649808018820763 (n = 100, ratio = 0.1)
##
## Number of nodes: 10
## Number of edges: 31
## Edge density: 0.689
##
## Non-zero edge weights:
## M SD Min Max
## 0.134 0.125 0.001 0.406
##
## ----
##
## Algorithm: Walktrap
##
## Number of communities: 3
##
## X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
## 1 2 1 1 2 3 1 2 3 3
##
## ----
##
## Unidimensional Method: Louvain
## Unidimensional: No
##
## ----
##
## TEFI: -5.792
Şimdi bu 3 faktör ve maddelerine baktığımızda nasıl bir durum oluyor ona bir bakalım.
Faktör 1: kendini değersiz hissetme (X1), üzgün hissetme (X3), endişeli hissetme (X4), sevilmediğini hissetme (X7)
Ben bu faktöre “olumsuz duygulanım” adını vermek istiyorum.
Faktör 2: aklından çıkarma (X2), bazı şeyler duyma (X5), garip fikirler (X8)
Ben bu faktöre “zihinsel tuhaflıklar” adını vermek istiyorum.
Faktör 3: kaçma (X6), kaçak/aylak (X9), birçok kavgaya karışma(X10)
Ben bu faktöre “Savaş ya da kaç eylemleri” adını vermek istiyorum.
Aslında bilişsel davranışçı terapideki duygu, düşünce, davranış üçlüsü oldu. Birinci faktör duygu boyutu, ikinci faktör düşünce boyutu, üçüncü faktör ise davranış boyutu şeklinde de adlandırabilirim daha genel bir ifadeyle.
Bazen fiziken doktora sürecini ve kendi hayat tempomu yürütmekte zorlanıyorum. Bu dönem iki dersinizde gözlerim gittiği ve aniden uyuyakaldığım için özür dilerim hocam. Kendimi çok mahcup hissediyorum. Fakat gerçekten derse odaklanmak için elimden gelen çabayı gösteriyorum. Anlayışınız için teşekkür ederim. Bu dersteki konu açımlayıcı faktör analizi bu dönemki işlediğimiz en aşina olan konu olabilir. Bugün EGAnet’i ilk kez duydum. Bizim pdr’deki sosyometriye benzettim biraz.