Analisis Faktor pada Dataset Investmen

Dataset Investment yang terdapat dalam package sandwich digunakan untuk melakukan analisis faktor. Dataset ini terdiri dari tujuh kolom, namun kita akan menggunakan enam kolom untuk analisis faktor, yaitu:

Input Data

#Input Data
data(Investment, package="sandwich")
Investment <- as.data.frame(Investment[,1:6])
head(Investment)
##     GNP Investment  Price Interest   RealGNP  RealInv
## 1 596.7       90.9 0.7167     3.23  832.5659 126.8313
## 2 637.7       97.4 0.7277     3.55  876.3227 133.8464
## 3 691.1      113.5 0.7436     4.04  929.3975 152.6358
## 4 756.0      125.7 0.7676     4.50  984.8880 163.7572
## 5 799.6      122.8 0.7906     4.19 1011.3838 155.3251
## 6 873.4      133.3 0.8254     5.16 1058.1536 161.4975

Terilhat bahwa variabel-variabelnya memiliki skala yang berbeda-beda, sehingga perlu di standarisasi.

Standardisasi data

zinvestment<-data.frame(scale(Investment))
head(zinvestment)
##          GNP Investment      Price   Interest    RealGNP    RealInv
## 1 -1.1249182 -1.1478402 -1.0681849 -1.1527290 -1.6976136 -1.5795163
## 2 -1.0731174 -1.0958112 -1.0423975 -1.0421224 -1.4945241 -1.4017030
## 3 -1.0056499 -0.9669393 -1.0051229 -0.8727559 -1.2481860 -0.9254396
## 4 -0.9236530 -0.8692849 -0.9488595 -0.7137588 -0.9906364 -0.6435429
## 5 -0.8685673 -0.8924978 -0.8949404 -0.8209090 -0.8676606 -0.8572743
## 6 -0.7753258 -0.8084509 -0.8133584 -0.4856325 -0.6505861 -0.7008206

Terlihat bahwa, setelah proses standarisasi, seluruh variabel sudah memiliki skala yang sebanding. Selanjutnya akan diperiksa normalitas, korelasi, dan kecukupan data

#cek histogram dan kurva setiap variabel
hist(zinvestment[,1], prob=TRUE, main="X1", xlab="X1")
lines(density(zinvestment[,1]))

hist(zinvestment[,2], prob=TRUE, main="X2", xlab="X")
lines(density(zinvestment[,2]))

hist(zinvestment[,3], prob=TRUE, main="X3", xlab="X3")
lines(density(zinvestment[,3]))

hist(zinvestment[,4], prob=TRUE, main="X4", xlab="X4")
lines(density(zinvestment[,4]))

hist(zinvestment[,5], prob=TRUE, main="X5", xlab="X5")
lines(density(zinvestment[,5]))

hist(zinvestment[,6], prob=TRUE, main="X6", xlab="X6")
lines(density(zinvestment[,6]))

Normalitas

Hipotesis:

  • H₀:Dat berdistribusi normal.
  • H₁:Data tidak berdistribusi normal.
#normality test
library(MVN)
## Warning: package 'MVN' was built under R version 4.3.3
result <- mvn(data =zinvestment,mvnTest = "mardia")
result
## $multivariateNormality
##              Test          Statistic            p value Result
## 1 Mardia Skewness    81.264615451692 0.0153260019439198     NO
## 2 Mardia Kurtosis -0.298396533549195  0.765400534455039    YES
## 3             MVN               <NA>               <NA>     NO
## 
## $univariateNormality
##               Test   Variable Statistic   p value Normality
## 1 Anderson-Darling    GNP        0.7245    0.0493    NO    
## 2 Anderson-Darling Investment    0.9209    0.0154    NO    
## 3 Anderson-Darling   Price       0.7279    0.0483    NO    
## 4 Anderson-Darling  Interest     1.0673    0.0065    NO    
## 5 Anderson-Darling  RealGNP      0.3130    0.5204    YES   
## 6 Anderson-Darling  RealInv      0.3923    0.3449    YES   
## 
## $Descriptives
##             n          Mean Std.Dev      Median       Min      Max       25th
## GNP        20 -4.857226e-17       1 -0.29174606 -1.124918 2.003726 -0.7986361
## Investment 20 -8.113085e-17       1 -0.27015068 -1.147840 1.925874 -0.8236594
## Price      20  2.222614e-17       1 -0.33664292 -1.068185 2.101557 -0.8337539
## Interest   20 -1.671298e-16       1 -0.30416838 -1.152729 2.369403 -0.7137588
## RealGNP    20 -3.966554e-16       1  0.04832706 -1.697614 1.464388 -0.7048547
## RealInv    20 -5.407323e-17       1 -0.12800541 -1.579516 1.766614 -0.7249998
##                 75th        Skew   Kurtosis
## GNP        0.6224122  0.67604403 -0.9542482
## Investment 0.8438707  0.58362449 -1.2362325
## Price      0.5956306  0.70003321 -0.8708394
## Interest   0.3413253  0.99777586 -0.2452418
## RealGNP    0.8754060 -0.02656484 -1.3519458
## RealInv    0.7641314  0.29791744 -1.1619473

Berdasarkan hasil uji Mardia Skewness, data tidak berdistribusi normal karena p-value < 0.05. Hal ini menunjukkan adanya kemencengan yang signifikan pada distribusi data.

Namun, berdasarkan uji Mardia Kurtosis, tidak ada perbedaan signifikan antara distribusi data dengan distribusi normal dalam hal keruncingan, karena p-value > 0.05. Ini berarti bahwa data tidak memiliki masalah yang signifikan dalam hal kurtosis.

Secara keseluruhan, hasil ini menunjukkan bahwa data tidak berdistribusi normal, terutama terkait dengan aspek kemencengan. Meskipun demikian, tidak ditemukan masalah signifikan pada sisi kurtosis.

Bartlett’s Test of Sphericity

Bartlett’s Test digunakan untuk menguji apakah matriks kovarians dari data cukup berbeda dari matriks identitas, yang menunjukkan bahwa ada hubungan antar variabel. Uji ini menguji hipotesis nol yang menyatakan bahwa matriks kovarians adalah matriks identitas, yang berarti tidak ada hubungan antar variabel (kovarians = 0).

Hipotesis:

  • H₀: Matriks kovarians adalah matriks identitas (tidak ada hubungan antar variabel).
  • H₁: Matriks kovarians tidak sama dengan matriks identitas (ada hubungan antar variabel).
#Bartlett test dan KMO
library(REdaS)
## Warning: package 'REdaS' was built under R version 4.3.3
## Loading required package: grid
bart_spher(zinvestment)
##  Bartlett's Test of Sphericity
## 
## Call: bart_spher(x = zinvestment)
## 
##      X2 = 326.331
##      df = 15
## p-value < 2.22e-16

Hasil Bartlett’s Test menunjukkan p-value < 2.22 × 10⁻¹⁶, yang sangat signifikan. Oleh karena itu, kita menolak H₀ dan dapat disimpulkan bahwa matriks kovarians tidak sama dengan matriks identitas, yang berarti ada hubungan signifikan antara variabel dalam data.


Kaiser-Meyer-Olkin (KMO)

Tes ini mengukur seberapa kuat hubungan antar variabel dalam dataset yang digunakan untuk analisis faktor. KMO memberikan indikasi apakah data memiliki korelasi yang cukup antar variabel untuk melanjutkan analisis faktor.

KMOS(zinvestment)
## 
## Kaiser-Meyer-Olkin Statistics
## 
## Call: KMOS(x = zinvestment)
## 
## Measures of Sampling Adequacy (MSA):
##        GNP Investment      Price   Interest    RealGNP    RealInv 
##  0.7831090  0.7370062  0.7156671  0.7856602  0.6989793  0.6157259 
## 
## KMO-Criterion: 0.720777

Nilai KMO keseluruhan yang dihitung adalah 0.720777, yang menunjukkan bahwa data memiliki kecukupan sampel yang baik untuk melakukan analisis faktor.

Selain itu, nilai MSA (Measure of Sampling Adequacy) untuk masing-masing variabel juga berada di atas 0.5, yang berarti semua variabel memiliki kecukupan sampel yang baik dan tidak ada variabel yang perlu dikeluarkan dari analisis.

Analisis Faktor

#Analisis Faktor
R<-cov(zinvestment)
R
##                  GNP Investment     Price  Interest   RealGNP   RealInv
## GNP        1.0000000  0.9800277 0.9984821 0.9168936 0.9509425 0.8128710
## Investment 0.9800277  1.0000000 0.9692190 0.8994475 0.9627388 0.9017168
## Price      0.9984821  0.9692190 1.0000000 0.9098894 0.9415563 0.7852829
## Interest   0.9168936  0.8994475 0.9098894 1.0000000 0.8561796 0.7272522
## RealGNP    0.9509425  0.9627388 0.9415563 0.8561796 1.0000000 0.9153848
## RealInv    0.8128710  0.9017168 0.7852829 0.7272522 0.9153848 1.0000000

Matriks kovarians yang ditampilkan menunjukkan hubungan yang sangat kuat antara sebagian besar variabel dalam dataset. Variabel-variabel seperti GNP, Investment, Price, dan RealGNP memiliki korelasi yang sangat tinggi satu sama lain, yang mengindikasikan bahwa mereka cenderung bergerak seiring dan mungkin dapat dikelompokkan dalam analisis faktor. Korelasi yang tinggi ini menguatkan bahwa analisis faktor dapat efektif dalam mengidentifikasi faktor-faktor utama yang mampu menjelaskan sebagian besar variabilitas dalam data, dengan memperhitungkan keterkaitan antara variabel-variabel tersebut.

Eigenvalues

eigen<-eigen(R)
eigen
## eigen() decomposition
## $values
## [1] 5.5173791599 0.3300284791 0.1151570916 0.0361705689 0.0010496037
## [6] 0.0002150969
## 
## $vectors
##           [,1]        [,2]        [,3]        [,4]        [,5]        [,6]
## [1,] 0.4194705 -0.22343018  0.32000450  0.13760165  0.33486088  0.73529214
## [2,] 0.4230439  0.05771685  0.07624479  0.53240938 -0.72647463 -0.02577197
## [3,] 0.4155335 -0.28516498  0.41772067  0.06975269  0.33813839 -0.67254686
## [4,] 0.3931743 -0.48686777 -0.77062786 -0.11413025  0.02673516 -0.02767562
## [5,] 0.4165632  0.21444001  0.18394897 -0.80469596 -0.31224573  0.04025371
## [6,] 0.3798674  0.76315392 -0.29931383  0.17938590  0.38412637 -0.06305315

Berdasarkan hasil analisis eigenvalues, hanya satu komponen utama yang memenuhi kriteria eigenvalue > 1, dengan nilai 5.5174. Meskipun demikian, dua faktor tetap digunakan dalam analisis untuk menjelaskan variabilitas data, karena kedua faktor ini cukup memberikan representasi yang baik terhadap data.

Estimasi Model

Investment_fac<-factanal(factors=2,covmat=R)
Investment_fac
## 
## Call:
## factanal(factors = 2, covmat = R)
## 
## Uniquenesses:
##        GNP Investment      Price   Interest    RealGNP    RealInv 
##      0.005      0.007      0.005      0.161      0.039      0.005 
## 
## Loadings:
##            Factor1 Factor2
## GNP        0.871   0.490  
## Investment 0.766   0.637  
## Price      0.892   0.449  
## Interest   0.812   0.424  
## RealGNP    0.710   0.676  
## RealInv    0.427   0.902  
## 
##                Factor1 Factor2
## SS loadings      3.487   2.297
## Proportion Var   0.581   0.383
## Cumulative Var   0.581   0.964
## 
## The degrees of freedom for the model is 4 and the fit was 3.7934

Loadings


Proportion Variance


Uniquenesses

Semua variabel dalam analisis memiliki uniquenesses yang rendah (< 0.2), yang menunjukkan bahwa sebagian besar variabilitas mereka dapat dijelaskan oleh faktor-faktor yang diekstrak.


Fit Model

Statistik fit untuk model analisis faktor: - Chi-square (𝜒²): 3.7934 - Derajat kebebasan (df): 4

Nilai Chi-square yang relatif kecil dan derajat kebebasan yang sesuai menunjukkan bahwa model memiliki fit yang baik, karena jumlah faktor yang digunakan cukup untuk menjelaskan variabilitas data.