library("REdaS")
## Warning: package 'REdaS' was built under R version 4.4.3
## Loading required package: grid
library(readxl)
Diabetesc <- read_excel("C:/Users/viora/OneDrive/SEMESTER 4/STATISTIKA MULTIVARIAT/Diabetes.xlsx")
head(Diabetesc)
Diabetes<-data.frame(scale(Diabetesc))
Diabetes
X1<-Diabetes$Pregnancies
X2<-Diabetes$Glucose
X3<-Diabetes$BloodPressure
X4<-Diabetes$SkinThickness
X5<-Diabetes$Insulin
X6<-Diabetes$BMI
X7<-Diabetes$DiabetesPedigreeFunction
X8<-Diabetes$Age


diabet<-data.frame(X1,X2,X3,X4,X5,X6,X7,X8)
diabet
#Uji Bartlett, KMO dan MSA
bart_spher(diabet)
##  Bartlett's Test of Sphericity
## 
## Call: bart_spher(x = diabet)
## 
##      X2 = 948.226
##      df = 28
## p-value < 2.22e-16
KMOS(diabet)
## 
## Kaiser-Meyer-Olkin Statistics
## 
## Call: KMOS(x = diabet)
## 
## Measures of Sampling Adequacy (MSA):
##        X1        X2        X3        X4        X5        X6        X7        X8 
## 0.5647473 0.5570030 0.6929771 0.5698920 0.5681522 0.6507990 0.7727703 0.5478124 
## 
## KMO-Criterion: 0.5889871
#Standarisasi data
diabetS<-scale(diabet)
head(diabetS)
##              X1         X2         X3         X4         X5         X6
## [1,]  0.6395305  0.8477713  0.1495433  0.9066791 -0.6924393  0.2038799
## [2,] -0.8443348 -1.1226647 -0.1604412  0.5305558 -0.6924393 -0.6839762
## [3,]  1.2330766  1.9424580 -0.2637694 -1.2873733 -0.6924393 -1.1025370
## [4,] -0.8443348 -0.9975577 -0.1604412  0.1544326  0.1232213 -0.4937213
## [5,] -1.1411079  0.5037269 -1.5037073  0.9066791  0.7653372  1.4088275
## [6,]  0.3427574 -0.1530851  0.2528715 -1.2873733 -0.6924393 -0.8108128
##              X7          X8
## [1,]  0.4681869  1.42506672
## [2,] -0.3648230 -0.19054773
## [3,]  0.6040037 -0.10551539
## [4,] -0.9201630 -1.04087112
## [5,]  5.4813370 -0.02048305
## [6,] -0.8175458 -0.27558007
#Membentuk matriks korelasi
cor_matriks<-cor(diabetS) 
cor_matriks
##             X1         X2         X3          X4          X5         X6
## X1  1.00000000 0.12945867 0.14128198 -0.08167177 -0.07353461 0.01768309
## X2  0.12945867 1.00000000 0.15258959  0.05732789  0.33135711 0.22107107
## X3  0.14128198 0.15258959 1.00000000  0.20737054  0.08893338 0.28180529
## X4 -0.08167177 0.05732789 0.20737054  1.00000000  0.43678257 0.39257320
## X5 -0.07353461 0.33135711 0.08893338  0.43678257  1.00000000 0.19785906
## X6  0.01768309 0.22107107 0.28180529  0.39257320  0.19785906 1.00000000
## X7 -0.03352267 0.13733730 0.04126495  0.18392757  0.18507093 0.14064695
## X8  0.54434123 0.26351432 0.23952795 -0.11397026 -0.04216295 0.03624187
##             X7          X8
## X1 -0.03352267  0.54434123
## X2  0.13733730  0.26351432
## X3  0.04126495  0.23952795
## X4  0.18392757 -0.11397026
## X5  0.18507093 -0.04216295
## X6  0.14064695  0.03624187
## X7  1.00000000  0.03356131
## X8  0.03356131  1.00000000
#mencari nilai eigen dan vektor eigen dari matriks korelasi
eig<-eigen(cor_matriks)
print(eig$values)
## [1] 2.0943799 1.7312101 1.0296299 0.8755290 0.7623444 0.6826284 0.4198162
## [8] 0.4044620
print(eig$vectors)
##            [,1]       [,2]        [,3]        [,4]       [,5]         [,6]
## [1,] -0.1284321  0.5937858  0.01308692 -0.08069115  0.4756057 -0.193598168
## [2,] -0.3930826  0.1740291 -0.46792282  0.40432871 -0.4663280 -0.094161756
## [3,] -0.3600026  0.1838921  0.53549442 -0.05598649 -0.3279531  0.634115895
## [4,] -0.4398243 -0.3319653  0.23767380 -0.03797608  0.4878621 -0.009589438
## [5,] -0.4350262 -0.2507811 -0.33670893  0.34994376  0.3469348  0.270650609
## [6,] -0.4519413 -0.1009598  0.36186463 -0.05364595 -0.2532038 -0.685372179
## [7,] -0.2706114 -0.1220690 -0.43318905 -0.83368010 -0.1198105  0.085784088
## [8,] -0.1980271  0.6205885 -0.07524755 -0.07120060  0.1092900  0.033357170
##             [,7]         [,8]
## [1,]  0.58879003  0.117840984
## [2,]  0.06015291  0.450355256
## [3,]  0.19211793 -0.011295538
## [4,] -0.28221253  0.566283799
## [5,]  0.13200992 -0.548621381
## [6,]  0.03536644 -0.341517637
## [7,]  0.08609107 -0.008258731
## [8,] -0.71208542 -0.211661979
vektor_eig<-eig$vector
#Membentuk Matriks faktor loading
factor_loading <-eig$vectors %*% diag(sqrt(eig$values))
factor_loading
##            [,1]       [,2]        [,3]        [,4]        [,5]         [,6]
## [1,] -0.1858666  0.7812764  0.01327939 -0.07550248  0.41526247 -0.159953377
## [2,] -0.5688680  0.2289796 -0.47480446  0.37832919 -0.40716190 -0.077797694
## [3,] -0.5209948  0.2419568  0.54336983 -0.05238640 -0.28634347  0.523914975
## [4,] -0.6365125 -0.4367849  0.24116921 -0.03553411  0.42596376 -0.007922921
## [5,] -0.6295687 -0.3299663 -0.34166084  0.32744136  0.30291688  0.223615128
## [6,] -0.6540483 -0.1328383  0.36718649 -0.05019636 -0.22107811 -0.566263598
## [7,] -0.3916281 -0.1606129 -0.43955987 -0.78007205 -0.10460934  0.070875953
## [8,] -0.2865842  0.8165422 -0.07635420 -0.06662220  0.09542361  0.027560137
##             [,7]         [,8]
## [1,]  0.38149604  0.074943720
## [2,]  0.03897501  0.286413922
## [3,]  0.12447940 -0.007183660
## [4,] -0.18285459  0.360141380
## [5,]  0.08553348 -0.348908554
## [6,]  0.02291505 -0.217196101
## [7,]  0.05578118 -0.005252332
## [8,] -0.46138310 -0.134611369
#scree plot
plot(eig$values, type = "b", main = "Scree Plot")

#Membentuk matriks faktor loading berdasarkan nilai eigen yang >1

F1<-factor_loading[,1]
F2<-factor_loading[,2]
F3<-factor_loading[,3]

faktor<-data.frame(F1,F2,F3)
faktor
# Load library
library(psych)
## Warning: package 'psych' was built under R version 4.4.3
# Lakukan rotasi varimax pada faktor loading
fa_rotated <- fa(diabetS, nfactors = 3, rotate = "varimax")
## Warning in fac(r = r, nfactors = nfactors, n.obs = n.obs, rotate = rotate, : An
## ultra-Heywood case was detected.  Examine the results carefully
# Cetak hasil faktor loading yang sudah dirotasi
print(fa_rotated$loadings)
## 
## Loadings:
##    MR2    MR1    MR3   
## X1  0.568              
## X2  0.273  0.314  0.175
## X3  0.238         0.393
## X4 -0.158  0.335  0.512
## X5         0.989  0.138
## X6         0.117  0.707
## X7         0.187  0.178
## X8  0.948              
## 
##                  MR2   MR1   MR3
## SS loadings    1.383 1.242 0.999
## Proportion Var 0.173 0.155 0.125
## Cumulative Var 0.173 0.328 0.453