library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'ggplot2' was built under R version 4.3.1
## Warning: package 'tibble' was built under R version 4.3.1
## Warning: package 'tidyr' was built under R version 4.3.1
## Warning: package 'readr' was built under R version 4.3.2
## Warning: package 'purrr' was built under R version 4.3.1
## Warning: package 'dplyr' was built under R version 4.3.1
## Warning: package 'stringr' was built under R version 4.3.1
## Warning: package 'forcats' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.3 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── 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(ltm)
## Warning: package 'ltm' was built under R version 4.3.3
## Loading required package: MASS
##
## Attaching package: 'MASS'
##
## The following object is masked from 'package:dplyr':
##
## select
##
## Loading required package: msm
## Warning: package 'msm' was built under R version 4.3.3
## Loading required package: polycor
## Warning: package 'polycor' was built under R version 4.3.3
df_or <- read.csv2("basak_sayisal_veriler.csv")
df <- df_or[-43,]
#glimpse(df)
extract_factors <- function (df,what,howmany,reduce=0){
cat("________________ START --> ", what, "_____________________")
cat("\n")
center <- function(x) { return (x - mean(x))}
df_sub <- df %>% dplyr::select(starts_with(what)) %>% mutate(across(everything(), center))
CA <- round(cronbach.alpha(df_sub) $ alpha,2)
cat("\n")
cat("cronbach_alpa =", CA)
cat("\n")
if (reduce != 0) df_sub=df_sub[,-reduce]
FA<- df_sub%>%factanal(.,howmany, scores ="regression",rotation="promax")
print(FA $ loadings)
explained <- 1-FA $ uniquenesses
barplot(explained,cex.names=0.7, col=1:length(explained),
main="explained proportions by factor analysis")
cat("\n")
cat("explained_proportions:");cat("\n")
print( 1-FA $ uniquenesses);cat("\n")
cat("likelihood ratio test | p-value:", FA $ PVAL); cat("\n")
if(FA $ PVAL<0.05) print("factors are not sufficient")
else cat("\n", "factors are sufficient")
cat("\n")
cat("________________ END _____________________")
outcome <-list(FA,df_sub)
return(outcome)
}
first we look at the subsets of farkindalik variables
see_sur <- extract_factors(df,"far_sur",2)
## ________________ START --> far_sur _____________________
##
## cronbach_alpa = 0.92
##
## Loadings:
## Factor1 Factor2
## far_sur_kaynak 1.031
## far_sur_gelecek 0.439 0.459
## far_sur_adil_is 0.772
## far_sur_toplum 0.943 -0.143
## far_sur_cevre_koruma 0.786 0.101
## far_sur_paydas 0.444 0.378
## far_sur_eko_performans 0.139 0.533
## far_sur_calisan_hak 0.715 0.170
## far_sur_tarim 0.660 -0.105
##
## Factor1 Factor2
## SS loadings 3.467 1.779
## Proportion Var 0.385 0.198
## Cumulative Var 0.385 0.583

##
## explained_proportions:
## far_sur_kaynak far_sur_gelecek far_sur_adil_is
## 0.9435916 0.7231282 0.7080690
## far_sur_toplum far_sur_cevre_koruma far_sur_paydas
## 0.6964625 0.7537155 0.6064055
## far_sur_eko_performans far_sur_calisan_hak far_sur_tarim
## 0.4214697 0.7336435 0.3367582
##
## likelihood ratio test | p-value: 0.06571096
##
## factors are sufficient
## ________________ END _____________________
see_cev <- extract_factors(df,"far_yon",2)
## ________________ START --> far_yon _____________________
##
## cronbach_alpa = 0.91
##
## Loadings:
## Factor1 Factor2
## far_yon_belge 0.895 -0.112
## far_yon_kultur 0.538 0.365
## far_yon_mevzuat 0.972
## far_yon_cevre_politika 0.885
## far_yon_sur_hedef 0.590 0.358
## far_yon_yesil -0.156 0.982
## far_yon_marka 0.741
##
## Factor1 Factor2
## SS loadings 3.193 1.794
## Proportion Var 0.456 0.256
## Cumulative Var 0.456 0.712

##
## explained_proportions:
## far_yon_belge far_yon_kultur far_yon_mevzuat
## 0.6783997 0.6884389 0.8406211
## far_yon_cevre_politika far_yon_sur_hedef far_yon_yesil
## 0.7693462 0.7621866 0.7807642
## far_yon_marka
## 0.5910206
##
## likelihood ratio test | p-value: 0.0003119813
## [1] "factors are not sufficient"
##
## ________________ END _____________________
see_eko <- extract_factors(df,"far_eko",2)
## ________________ START --> far_eko _____________________
##
## cronbach_alpa = 0.82
##
## Loadings:
## Factor1 Factor2
## far_eko_verimlilik 0.848
## far_eko_satin_alma 0.789 0.101
## far_eko_teknoloji 0.859 -0.124
## far_eko_maliyet 1.002
## far_eko_karlilik 0.861
##
## Factor1 Factor2
## SS loadings 2.079 1.772
## Proportion Var 0.416 0.354
## Cumulative Var 0.416 0.770

##
## explained_proportions:
## far_eko_verimlilik far_eko_satin_alma far_eko_teknoloji far_eko_maliyet
## 0.7418780 0.6954261 0.6686745 0.9950000
## far_eko_karlilik
## 0.7549499
##
## likelihood ratio test | p-value: 0.5763713
##
## factors are sufficient
## ________________ END _____________________
see_cev <- extract_factors(df,"far_cev",5)
## ________________ START --> far_cev _____________________
##
## cronbach_alpa = 0.89
##
## Loadings:
## Factor1 Factor2 Factor3 Factor4 Factor5
## far_cev_karbon 1.067 -0.182 -0.128
## far_cev_atik 0.556 0.253 0.111
## far_cev_enerji -0.130 1.098
## far_cev_su 0.124 0.198 0.777
## far_cev_iklim 0.747 0.168 -0.124
## far_cev_fay_enerji 0.398 0.329 0.192 -0.176
## far_cev_fay_atik 1.207 -0.159
## far_cev_fay_emisyon 0.549 0.327 -0.213
## far_cev_fay_su -0.114 1.099 0.167
##
## Factor1 Factor2 Factor3 Factor4 Factor5
## SS loadings 2.342 1.718 1.439 1.426 0.742
## Proportion Var 0.260 0.191 0.160 0.158 0.082
## Cumulative Var 0.260 0.451 0.611 0.769 0.852

##
## explained_proportions:
## far_cev_karbon far_cev_atik far_cev_enerji far_cev_su
## 0.7413091 0.6645708 0.9950000 0.9287488
## far_cev_iklim far_cev_fay_enerji far_cev_fay_atik far_cev_fay_emisyon
## 0.7280682 0.6017217 0.9950000 0.6321437
## far_cev_fay_su
## 0.9950000
##
## likelihood ratio test | p-value: 0.08880455
##
## factors are sufficient
## ________________ END _____________________
see_sos <- extract_factors(df,"far_sos",5)
## ________________ START --> far_sos _____________________
##
## cronbach_alpa = 0.95
##
## Loadings:
## Factor1 Factor2 Factor3 Factor4 Factor5
## far_sos_egitim 0.659 0.301 -0.126
## far_sos_cinsiyet 0.816 0.111 -0.193 0.153
## far_sos_is_sagligi 0.162 0.674
## far_sos_tedarikci 0.706 0.177 -0.174
## far_sos_sorumluluk 0.967 -0.163 0.134 -0.118
## far_sos_calisan 0.157 0.117 0.271 0.309 0.182
## far_sos_musteri -0.227 0.793 0.101
## far_sos_sosyal_hak 0.144 0.422
## far_sos_yetenek 0.212 0.300 0.411 0.116
## far_sos_istihdam 0.804 0.172
## far_sos_urun_guvenlik 0.453 0.424 -0.261
## far_sos_inovasyon 0.304 0.594
## far_sos_motivasyon 0.165 0.867
## far_sos_kirilgan 0.297 0.402
## far_sos_fay_nitelikli 0.718 -0.310 0.311
## far_sos_fay_guvenli 0.769 0.210
## far_sos_fay_toplum_refah 0.848 0.242 -0.333
## far_sos_fay_esit_calisma 1.012 -0.224
## far_sos_fay_rekabet 0.621 0.152 -0.101
## far_sos_fay_calisan_refah 0.890
##
## Factor1 Factor2 Factor3 Factor4 Factor5
## SS loadings 4.153 2.992 2.096 1.616 1.164
## Proportion Var 0.208 0.150 0.105 0.081 0.058
## Cumulative Var 0.208 0.357 0.462 0.543 0.601

##
## explained_proportions:
## far_sos_egitim far_sos_cinsiyet far_sos_is_sagligi
## 0.6225255 0.7192735 0.6828842
## far_sos_tedarikci far_sos_sorumluluk far_sos_calisan
## 0.6380043 0.7816013 0.7593608
## far_sos_musteri far_sos_sosyal_hak far_sos_yetenek
## 0.6372820 0.3976539 0.7798474
## far_sos_istihdam far_sos_urun_guvenlik far_sos_inovasyon
## 0.8656172 0.5934978 0.7017970
## far_sos_motivasyon far_sos_kirilgan far_sos_fay_nitelikli
## 0.9950000 0.5633511 0.6250506
## far_sos_fay_guvenli far_sos_fay_toplum_refah far_sos_fay_esit_calisma
## 0.7577017 0.6993335 0.8576783
## far_sos_fay_rekabet far_sos_fay_calisan_refah
## 0.5280778 0.8049204
##
## likelihood ratio test | p-value: 4.753169e-05
## [1] "factors are not sufficient"
##
## ________________ END _____________________
see_pay <- extract_factors(df,"far_pay",4)
## ________________ START --> far_pay _____________________
##
## cronbach_alpa = 0.95
##
## Loadings:
## Factor1 Factor2 Factor3 Factor4
## far_pay_tedarikci -0.189 0.276 0.580 0.259
## far_pay_bilinc -0.131 0.969
## far_pay_top_fayda 0.319 0.162 0.630 -0.185
## far_pay_musteri 0.997
## far_pay_ulke_ekonomi 0.743 0.253
## far_pay_cev_sagligi 0.913 -0.116
## far_pay_dongu_ekonomi 0.943
## far_pay_yatirimci 0.223 0.345 0.305
## far_pay_etik 0.730 0.232 -0.107
## far_pay_engelli -0.141 0.938
## far_pay_insan_haklari 0.219 0.852 -0.142
## far_pay_diger_isletme 0.517 0.265
##
## Factor1 Factor2 Factor3 Factor4
## SS loadings 3.338 1.985 1.703 1.298
## Proportion Var 0.278 0.165 0.142 0.108
## Cumulative Var 0.278 0.444 0.585 0.694

##
## explained_proportions:
## far_pay_tedarikci far_pay_bilinc far_pay_top_fayda
## 0.7346892 0.8317114 0.7924833
## far_pay_musteri far_pay_ulke_ekonomi far_pay_cev_sagligi
## 0.9729685 0.8411505 0.7812087
## far_pay_dongu_ekonomi far_pay_yatirimci far_pay_etik
## 0.8629929 0.5768671 0.7431065
## far_pay_engelli far_pay_insan_haklari far_pay_diger_isletme
## 0.6405202 0.8523865 0.7407474
##
## likelihood ratio test | p-value: 0.2635871
##
## factors are sufficient
## ________________ END _____________________
see_yon <- extract_factors(df,"far_yon",3)
## ________________ START --> far_yon _____________________
##
## cronbach_alpa = 0.91
##
## Loadings:
## Factor1 Factor2 Factor3
## far_yon_belge 0.791
## far_yon_kultur 0.158 0.807
## far_yon_mevzuat 0.898
## far_yon_cevre_politika 0.705 0.240
## far_yon_sur_hedef 0.189 0.826
## far_yon_yesil -0.133 0.471 0.456
## far_yon_marka -0.133 1.048
##
## Factor1 Factor2 Factor3
## SS loadings 2.015 1.631 1.325
## Proportion Var 0.288 0.233 0.189
## Cumulative Var 0.288 0.521 0.710

##
## explained_proportions:
## far_yon_belge far_yon_kultur far_yon_mevzuat
## 0.6803120 0.7746656 0.8834347
## far_yon_cevre_politika far_yon_sur_hedef far_yon_yesil
## 0.7603321 0.8672448 0.5981881
## far_yon_marka
## 0.9950000
##
## likelihood ratio test | p-value: 0.3623199
##
## factors are sufficient
## ________________ END _____________________
see_eko <- extract_factors(df,"far_eko",2)
## ________________ START --> far_eko _____________________
##
## cronbach_alpa = 0.82
##
## Loadings:
## Factor1 Factor2
## far_eko_verimlilik 0.848
## far_eko_satin_alma 0.789 0.101
## far_eko_teknoloji 0.859 -0.124
## far_eko_maliyet 1.002
## far_eko_karlilik 0.861
##
## Factor1 Factor2
## SS loadings 2.079 1.772
## Proportion Var 0.416 0.354
## Cumulative Var 0.416 0.770

##
## explained_proportions:
## far_eko_verimlilik far_eko_satin_alma far_eko_teknoloji far_eko_maliyet
## 0.7418780 0.6954261 0.6686745 0.9950000
## far_eko_karlilik
## 0.7549499
##
## likelihood ratio test | p-value: 0.5763713
##
## factors are sufficient
## ________________ END _____________________
see_birim <- extract_factors(df,"far_birim",4)
## ________________ START --> far_birim _____________________
##
## cronbach_alpa = 0.83
##
## Loadings:
## Factor1 Factor2 Factor3 Factor4
## far_birim_sur -0.164 -0.331 0.941
## far_birim_cevre 0.143 0.435
## far_birim_isg -0.166 0.481 0.180
## far_birim_kalite -0.171 0.941 -0.310
## far_birim_idari 0.630 -0.154 0.117
## far_birim_satin_alma 0.102 0.507 0.119
## far_birim_finans 0.855 -0.176
## far_birim_pazarlama 0.365 0.288
## far_birim_muhasebe 0.923 -0.158
## far_birim_ik 0.501
## far_birim_iletisim 0.100 0.682
## far_birim_lojistik 0.242 0.143 0.341 0.266
## far_birim_depolama 1.048
##
## Factor1 Factor2 Factor3 Factor4
## SS loadings 2.290 1.893 1.806 1.264
## Proportion Var 0.176 0.146 0.139 0.097
## Cumulative Var 0.176 0.322 0.461 0.558

##
## explained_proportions:
## far_birim_sur far_birim_cevre far_birim_isg
## 0.5998722 0.2200851 0.2373298
## far_birim_kalite far_birim_idari far_birim_satin_alma
## 0.5083224 0.3960315 0.3962110
## far_birim_finans far_birim_pazarlama far_birim_muhasebe
## 0.5815363 0.4353101 0.6324999
## far_birim_ik far_birim_iletisim far_birim_lojistik
## 0.2981509 0.5064910 0.6490238
## far_birim_depolama
## 0.9950000
##
## likelihood ratio test | p-value: 0.3178937
##
## factors are sufficient
## ________________ END _____________________
see_itici <- extract_factors(df,"far_itici",4)
## ________________ START --> far_itici _____________________
##
## cronbach_alpa = 0.91
##
## Loadings:
## Factor1 Factor2 Factor3 Factor4
## far_itici_yonetim 1.025
## far_itici_mutakabat 0.632 0.117 0.216
## far_itici_oneri 0.930 0.613
## far_itici_duzeltici 1.002
## far_itici_sertifikasyon 0.429 0.341
## far_itici_ortaklik 0.762 -0.105 -0.119
## far_itici_sur_hedef 0.478 0.201 0.246 0.116
## far_itici_musteri 0.841 -0.226
## far_itici_stk 0.811 -0.107
## far_itici_verimlilik 0.454 0.212
## far_itici_mevzuat 0.746 -0.224 0.202
## far_itici_merak 0.272 0.427 0.155
##
## Factor1 Factor2 Factor3 Factor4
## SS loadings 3.609 2.265 1.299 0.499
## Proportion Var 0.301 0.189 0.108 0.042
## Cumulative Var 0.301 0.489 0.598 0.639

##
## explained_proportions:
## far_itici_yonetim far_itici_mutakabat far_itici_oneri
## 0.9950000 0.5507702 0.9950000
## far_itici_duzeltici far_itici_sertifikasyon far_itici_ortaklik
## 0.9882075 0.5603180 0.4778975
## far_itici_sur_hedef far_itici_musteri far_itici_stk
## 0.6835874 0.4790573 0.5364437
## far_itici_verimlilik far_itici_mevzuat far_itici_merak
## 0.4070726 0.5689430 0.3574011
##
## likelihood ratio test | p-value: 0.2103983
##
## factors are sufficient
## ________________ END _____________________
see_engel <- extract_factors(df,"far_engel",2)
## ________________ START --> far_engel _____________________
##
## cronbach_alpa = 0.87
##
## Loadings:
## Factor1 Factor2
## far_engel_veri 0.294 0.336
## far_engel_maliyet -0.112 1.074
## far_engel_2_personel 0.672
## far_engel_direnc 0.852
## far_engel_kar 0.687 0.117
## far_engel_iletisim 0.935 -0.164
##
## Factor1 Factor2
## SS loadings 2.621 1.316
## Proportion Var 0.437 0.219
## Cumulative Var 0.437 0.656

##
## explained_proportions:
## far_engel_veri far_engel_maliyet far_engel_2_personel
## 0.3388353 0.9950000 0.5439099
## far_engel_direnc far_engel_kar far_engel_iletisim
## 0.6727344 0.5982124 0.6847826
##
## likelihood ratio test | p-value: 0.1849441
##
## factors are sufficient
## ________________ END _____________________
see_arac <- extract_factors(df,"far_arac",4, reduce=10)
## ________________ START --> far_arac _____________________
##
## cronbach_alpa = 0.65
##
## Loadings:
## Factor1 Factor2 Factor3 Factor4
## far_arac_iso14001 0.973 -0.244 0.134
## far_arac_iso45001 0.731 -0.135
## far_arac_iso9001 0.372
## far_arac_iso50001 0.205 0.362
## far_arac_iso27001 -0.184 1.141
## far_arac_ohsas18001 0.265 0.172 0.100 -0.162
## far_arac_brc 1.044
## far_arac_iatf16949 0.993
## far_arac_global_compact 0.106 0.395
##
## Factor1 Factor2 Factor3 Factor4
## SS loadings 1.780 1.562 1.290 1.054
## Proportion Var 0.198 0.174 0.143 0.117
## Cumulative Var 0.198 0.371 0.515 0.632

##
## explained_proportions:
## far_arac_iso14001 far_arac_iso45001 far_arac_iso9001
## 0.7236897 0.5446559 0.1892499
## far_arac_iso50001 far_arac_iso27001 far_arac_ohsas18001
## 0.3326545 0.9950000 0.2360147
## far_arac_brc far_arac_iatf16949 far_arac_global_compact
## 0.9950000 0.9950000 0.2207699
##
## likelihood ratio test | p-value: 0.42427
##
## factors are sufficient
## ________________ END _____________________