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 _____________________