Di berbagai belahan dunia, tren penundaan kehamilan atau pengurangan angka kelahiran menjadi semakin umum, dan semakin banyak perempuan yang memilih untuk tidak memiliki anak. Isu ini menjadi semakin relevan dalam masyarakat saat ini. Sejumlah perubahan sosial, ekonomi, dan budaya telah memengaruhi cara individu dan pasangan mengambil keputusan mengenai keluarga mereka. Perubahan dalam dinamika karier telah memengaruhi prioritas individu terkait dengan keluarga. Perempuan dan laki-laki mungkin merasa perlu untuk mengejar karier yang mapan sebelum memulai keluarga, yang dapat mengakibatkan penundaan untuk memiliki anak.
Perkembangan peran gender dan ekspektasi sosial juga berperan dalam keputusan ini. Perempuan mungkin merasa lebih berdaya untuk mengendalikan pilihan mereka tentang memiliki anak atau tidak, tetapi ekspektasi sosial dan tekanan budaya dapat memengaruhi keputusan mereka. Faktor ekonomi, termasuk biaya perawatan kesehatan, pendidikan, dan perumahan, juga dapat berpengaruh pada keputusan untuk tidak memiliki anak. Keadaan ekonomi individu atau pasangan dapat menjadi faktor utama dalam menentukan kapan dan apakah mereka siap untuk memulai keluarga.
Dalam konteks ini, analisis faktor eksploratori menjadi penting untuk mengidentifikasi faktor-faktor utama yang berperan dalam pengambilan keputusan tidak memiliki anak. Hasil analisis ini diharapkan dapat memberikan pemahaman yang lebih baik tentang konteks sosial dan psikologis dibalik keputusan perempuan untuk tidak memiliki anak dan dapat memberikan wawasan tentang dinamika keluarga dan masyarakat.
Factor Analysis (FA) atau analisis faktor adalah metode analisis yang umum digunakan untuk mengungkap hubungan antara variabel laten yang diasumsikan dan variabel manifes. Variabel laten adalah variabel yang tidak dapat diukur secara langsung tetapi dapat diasumsikan berhubungan dengan sejumlah variabel terukur atau nyata yang disebut sebagai variabel manifes. Model yang mendasari metode ini pada dasarnya adalah model regresi linier berganda, di mana variabel manifes diregresikan terhadap variabel laten yang tidak dapat diobservasi (dalam konteks ini sering disebut sebagai variabel faktor bersama), sehingga estimasi langsung dari koefisien regresi yang sesuai (dikenal sebagai factor loadings atau pembobot faktor) tidak mungkin dilakukan (Vehkalahti & Everitt, 2019).
Analisis faktor dibagi menjadi dua, yang pertama adalah analisis faktor eksploratori, yang digunakan untuk menyelidiki hubungan antara variabel manifes dan faktor tanpa membuat kesimpulan asumsi yang terlalu ketat tentang variabel manifes mana yang terkait dengan variabel faktor mana. Kedua, analisis faktor konfirmatori, yang digunakan untuk menguji apakah model faktor tertentu yang didalilkan secara apriori menyediakan kecocokan yang memadai untuk kovarians atau korelasi antara variabel manifes.
Model analisis faktor adalah sebagai berikut:
\[ \begin {align} x_1&=\lambda_{11}f_1+\lambda_{12}f_2+...+\lambda_{1k}f_k+u_1\\ x_2&=\lambda_{21}f_1+\lambda_{22}f_2+...+\lambda_{2k}f_k+u_2\\ \vdots\\ x_q&=\lambda_{q1}f_1+\lambda_{q2}f_2+...+\lambda_{qk}f_k+u_q \end {align} \]di mana \(\mathbf{x}'=[x_1,x_2,...,x_q]\) adalah \(q\) variabel manifes yang dapat diobservasi dan \(\mathbf{f}'=[f_1,f_2,...,f_k]\) adalah \(k\) faktor bersama (variabel laten) yang tidak dapat diobservasi dengan \(k<q\). \(\lambda_{ij}\) adalah nilai pembobot faktor yang ketika diestimasi dari matriks korelasi sampel akan menjadi estimasi korelasi antara faktor dan variabel manifes. Pembobot faktor digunakan dalam interpretasi faktor, yaitu nilai yang lebih besar menghubungkan suatu faktor dengan variabel manifes yang bersesuaian, dan dengan melihat variabel manifes mana yang mempunyai bobot tinggi pada suatu faktor, setiap faktor dapat diberikan deskripsi atau label yang bermakna. Sedangkan \(u_i\) dalam hal ini dikenal sebagai varians spesifik untuk setiap \(x_i\).
Model analisis faktor dapat disajikan dalam bentuk matriks sebagai berikut.
\[ \mathbf{x}=\mathbf{\Lambda f+u} \]di mana
\[ \mathbf{\Lambda}= \begin{bmatrix} \lambda_{11} & \ldots & \lambda_{1k} \\ \vdots & \vdots & \vdots \\ \lambda_{q1} & \ldots & \lambda_{qk} \end{bmatrix}, \mathbf{f}= \begin{bmatrix} f_1\\\vdots\\f_k \end{bmatrix}, \text{dan}\ \mathbf{u}= \begin{bmatrix} u_1\\\vdots\\u_k \end{bmatrix} \]
Model analisis faktor menyiratkan bahwa varians variabel manifes \(x_i\) dapat dihitung dengan
\[ \sigma_i^2=\Sigma_{j=1}^k\ \lambda_{ij}^2+\psi_i \]
di mana \(\psi_i\) adalah varians dari \(u_i\). \(h_i^2=\Sigma_{j=1}^k\ \lambda_{ij}^2\) selanjutnya dikenal sebagai komunalitas dari variabel manifes yang mewakili varians yang dimiliki bersama dengan variabel manifes lain melalui faktor bersama. Sedangkan \(\psi_i\) disebut sebagai varians spesifik yang berkaitan dengan variabilitas dalam \(x_i\) yang tidak dimiliki bersama variabel lainnya. Selanjutnya, matriks kovarian populasi dari variabel manifes, \(\mathbf{\Sigma}\), dinyatakan dalam bentuk
\[ \mathbf{\Sigma}=\mathbf{\Lambda \Lambda}'+\mathbf{\Psi} \] di mana
\[ \mathbf{\Psi}=\text{diag}(\psi_i) \] atau jika diestimasi menggunakan sampel maka
\[ \mathbf{S}=\mathbf{\hat{\Lambda}\hat{\Lambda}}'+\mathbf{\hat{\Psi} }\] (\(\mathbf{S}\) digantikan dengan \(\mathbf{R}\) dalam hal nilai \(x_i\) telah distandarisasi).
Sebelum melakukan analisis faktor, terlebih dahulu dilakukan beberapa prosedur untuk menentukan apakah analisis faktor sesuai diterapkan pada data dengan memeriksa matriks korelasi. Pengujian matriks korelasi secara statistik dapat dilakukan dengan Bartlett’s Test of Sphericity, yaitu sebuah uji statistik untuk mengetahui adanya korelasi di antara variabel-variabel pada data. Uji ini mampu memberikan signifikansi statistik bahwa matriks korelasi memiliki korelasi yang signifikan di antara setidaknya beberapa variabel. Namun, peneliti harus memperhatikan bahwa peningkatan ukuran sampel menyebabkan uji ini menjadi lebih sensitif dalam mendeteksi korelasi antar variabel (Hair et al., 2009).
Kaiser-Meyer-Olkin criterion (atau KMO criterion) umumnya dianggap sebagai metode terbaik untuk menguji kesesuaian matriks korelasi untuk analisis faktor, dan direkomendasikan untuk dilakukan setiap sebelum melakukan analisis faktor (Cleff, 2019). Aturan ini menggunakan Measure of Sampling Adequacy (MSA), yakni ukuran kecukupan sampel yang berkisar antara 0 hingga 1, mencapai 1 ketika setiap variabel diprediksi dengan sempurna tanpa kesalahan oleh variabel lainnya. MSA meningkat seiring dengan bertambahnya ukuran sampel, meningkatnya korelasi rata-rata, bertambahnya banyak variabel, atau berkurangnya banyak faktor. Peneliti harus selalu memiliki nilai overall MSA (KMO criterion) di atas 0.5 sebelum melanjutkan dengan analisis faktor. Jika nilai MSA untuk suatu variabel kurang dari 0.5, maka ada indikasi untuk menghapus variabel tersebut agar tercapai overall MSA lebih dari 0.5 (Hair et al., 2009).
Penentuan banyak faktor bermakna menjadi penting dalam analisis faktor eksploratori dikarenakan solusi dengan \(k\) faktor dan \(k+1\) faktor seringkali akan menghasilkan faktor-faktor dan pembobot faktor yang cukup berbeda untuk semua faktor, berbeda dengan analisis komponen utama di mana komponen pertama hingga \(k\) akan identik dalam setiap solusi. Selain itu, dengan terlalu sedikit faktor, akan ada terlalu banyak pembobot bernilai tinggi, dan dengan terlalu banyak faktor, pembobot faktor akan tersebar rata dan sulit untuk diinterpretasikan dengan meyakinkan (Vehkalahti & Everitt, 2019).
Meskipun banyak faktor bermakna dapat ditentukan oleh peneliti (secara subjektif), beberapa aturan telah menjadi acuan dari waktu ke waktu. Salah satu aturan yang paling penting dan telah diterima secara luas adalah Kaiser criterion. Aturan ini memperhitungkan semua faktor dengan nilai eigen yang lebih besar dari 1 sebagai faktor yang bermakna, karena nilai eigen yang kurang dari 1 menggambarkan faktor yang kurang baik dalam menjelaskan varians dari masing-masing variabel manifes. Kaiser criterion seringkali disertai dengan scree plot di mana nilai eigen diplot terhadap banyak faktor di dalam sistem koordinat dengan urutan nilai eigen yang menurun dan banyak faktor yang meningkat (Cleff, 2019).
Metode ekstraksi faktor yang paling sering digunakan adalah Principal Component Analysis (PCA) dan Principal Factor Analysis (PFA). Metode PCA mengasumsikan bahwa masing-masing variabel dapat dijelaskan dengan kombinasi linier dari faktor bersama, yang berarti bahwa faktor-faktor tersebut mewakili varians variabel secara keseluruhan. Jika ada varians bersama suatu variabel yang ditentukan oleh semua faktor, maka akan diperoleh komunalitas 100% (atau 1). Hasil yang diinginkan ini jarang terjadi dalam praktiknya, karena variabel jarang dapat direduksi menjadi beberapa faktor yang mewakili varians dari semua variabel. Dengan PCA, komunalitas yang kurang dari 1 mengindikasikan hilangnya informasi dalam representasi.
Sebaliknya, metode PFA mengasumsikan bahwa varians variabel dapat dipisahkan menjadi dua bagian. Bagian pertama ditentukan oleh varians gabungan dari semua variabel dalam analisis. Bagian lainnya ditentukan oleh varians spesifik untuk variabel yang bersangkutan. Varians total di antara variabel yang diamati tidak dapat diperhitungkan oleh faktor bersama. Dengan PFA, faktor bersama hanya menjelaskan komponen varians yang pertama, yaitu bagian varians yang dibentuk secara umum oleh semua varians, yang berarti bahwa indikator komunalitas harus kurang dari 1 (Cleff, 2019).
Pembobot faktor digunakan untuk menginterpretasikan atau memberi label faktor yang diekstrak. Terkadang, meski telah dilakukan rotasi faktor untuk mempermudah interpretasi, masih dapat dijumpai variabel dengan pembobot faktor yang tersebar hampir sama rata di setiap faktor sehingga mempersulit proses intrepretasi faktor. Stevens (2009) menyarankan nilai 0.4 sebagai cut-off nilai absolut pembobot faktor yang dinyatakan signifikan untuk keperluan interpretasi. Di samping itu, Hair et al (2009) merangkum nilai absolut pembobot faktor yang signifikan secara praktik berdasarkan ukuran sampel yang digunakan sebagai berikut.
Data yang digunakan adalah data survey tentang faktor-faktor yang memengaruhi keputusan seseorang untuk tidak memiliki anak terhadap 122 responden yang dilakukan oleh sekelompok peneliti Pascasarjana dari Rider University di Lawrenceville, New Jersey, Amerika Serikat. Terdapat 28 pernyataan survey (variabel) yang memiliki nilai berskala 1 sampai 5, di mana
1: Sangat tidak setuju bahwa pernyataan terkait merupakan faktor yang memengaruhi keputusan seseorang untuk tidak memiliki anak.
2: Tidak setuju bahwa pernyataan terkait merupakan faktor yang memengaruhi keputusan seseorang untuk tidak memiliki anak.
3: Netral
4: Setuju bahwa pernyataan terkait merupakan faktor yang memengaruhi keputusan seseorang untuk tidak memiliki anak.
5: Sangat setuju bahwa pernyataan terkait merupakan faktor yang memengaruhi keputusan seseorang untuk tidak memiliki anak.
28 pernyataan tersebut dilambangkan dengan Q1-Q28 sebagai variabel awal atau indikator dalam analisis faktor. Berikut pernyataan lengkap terkait masing-masing variabel.
Berikut adalah data yang diperoleh.
Untuk memuat data dari file Childlessness.xlsx,
digunakan fungsi read_excel() dengan argumen yang berisikan
lokasi file data yang tersimpan. Hasil pemuatan data tersebut
disimpan dalam input. Kemudian, dibentuk data
frame data menggunakan fungsi
data.frame(input). Untuk melihat struktur
data, digunakan fungsi str(data).
> # Input Data
> input = read_excel("~/KULIAH/Semester 5/PRAK_ANMUL/Childlessness.xlsx")
> data = data.frame(input)
> str(data)
'data.frame': 122 obs. of 28 variables:
$ Q1 : num 5 4 1 2 3 4 1 4 3 1 ...
$ Q2 : num 2 4 1 2 3 3 1 4 4 1 ...
$ Q3 : num 5 5 4 4 5 4 4 5 4 3 ...
$ Q4 : num 5 5 1 4 3 5 2 4 3 2 ...
$ Q5 : num 3 3 1 3 3 4 2 4 2 5 ...
$ Q6 : num 5 5 1 1 3 5 2 2 2 2 ...
$ Q7 : num 4 5 5 5 5 3 5 4 4 5 ...
$ Q8 : num 3 5 5 4 5 2 4 5 5 5 ...
$ Q9 : num 1 1 1 1 1 2 1 1 2 1 ...
$ Q10: num 1 1 1 1 1 2 1 2 2 1 ...
$ Q11: num 3 4 1 1 3 4 2 2 3 3 ...
$ Q12: num 3 4 1 1 4 4 4 5 2 2 ...
$ Q13: num 3 4 1 1 4 4 4 4 2 3 ...
$ Q14: num 4 2 5 1 1 2 2 2 2 2 ...
$ Q15: num 3 4 1 1 3 3 3 4 3 2 ...
$ Q16: num 5 5 5 5 5 4 5 5 4 5 ...
$ Q17: num 5 5 5 4 5 3 4 4 5 4 ...
$ Q18: num 4 5 1 4 5 4 4 5 4 4 ...
$ Q19: num 3 3 1 1 2 2 1 1 2 2 ...
$ Q20: num 5 4 1 1 1 2 2 4 4 4 ...
$ Q21: num 2 3 1 3 3 1 1 2 3 3 ...
$ Q22: num 5 1 1 3 4 3 1 2 4 4 ...
$ Q23: num 2 2 1 1 1 1 1 2 2 1 ...
$ Q24: num 2 2 1 1 1 1 1 2 2 1 ...
$ Q25: num 3 1 1 2 1 2 2 1 2 4 ...
$ Q26: num 1 2 3 2 1 4 2 2 2 1 ...
$ Q27: num 4 1 1 1 1 1 1 3 2 1 ...
$ Q28: num 3 1 1 1 1 2 1 2 3 2 ...Setelah melihat struktur dari data, diketahui
terdapat 122 observasi dengan 28 variabel di dalamnya. Selain itu,
penting untuk diketahui bahwa semua variabel telah terdefinisi dengan
tipe data yang benar, yaitu numerik. Selanjutnya, untuk memeriksa apakah
terdapat missing values atau data yang bernilai NA dalam
data, maka digunakan perintah berikut.
Didapat hasil bahwa banyak baris yang mengandung nilai NA dalam
data adalah 0. Hal ini berarti bahwa tidak
terdapat missing values dalam data. Untuk
menampilkan 6 baris pertama pada data, digunakan
fungsi head(data).
> head(data)
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16 Q17 Q18 Q19 Q20 Q21
1 5 2 5 5 3 5 4 3 1 1 3 3 3 4 3 5 5 4 3 5 2
2 4 4 5 5 3 5 5 5 1 1 4 4 4 2 4 5 5 5 3 4 3
3 1 1 4 1 1 1 5 5 1 1 1 1 1 5 1 5 5 1 1 1 1
4 2 2 4 4 3 1 5 4 1 1 1 1 1 1 1 5 4 4 1 1 3
5 3 3 5 3 3 3 5 5 1 1 3 4 4 1 3 5 5 5 2 1 3
6 4 3 4 5 4 5 3 2 2 2 4 4 4 2 3 4 3 4 2 2 1
Q22 Q23 Q24 Q25 Q26 Q27 Q28
1 5 2 2 3 1 4 3
2 1 2 2 1 2 1 1
3 1 1 1 1 3 1 1
4 3 1 1 2 2 1 1
5 4 1 1 1 1 1 1
6 3 1 1 2 4 1 2> # Scree Plot
> data_corr = cor(data)
> eigen = eigen(data_corr)
> eigen$values
> scrplt = plot(eigen$values, main = "Scree Plot",
+ xlab = "Factors", ylab = "Eigen Values",
+ pch = 20, col = "blue", type = "o", lwd = 1.5) +
+ axis(1, at = seq(1,28)) +
+ abline(h = 1, col = "red", lty = 2, lwd = 1.5)Fungsi cor() digunakan untuk menghitung matriks korelasi
antar variabel pada data dengan argumen berisikan data dalam bentuk
matriks atau data frame, dalam hal ini adalah
data. Matriks korelasi tersebut kemudian disimpan
dalam data_corr. Setelah itu, dapat ditentukan
nilai eigen sekaligus vektor eigen yang bersesuaian dari matriks
korelasi data_corr menggunakan fungsi
eigen(data_corr), hasil ini disimpan dalam
eigen. Nilai eigen dari matriks tersebut tersimpan
di dalam objek eigen pada elemen
values, yang dapat dipanggil menggunakan
eigen$values.
Untuk membuat scree plot, digunakan fungsi plot() dengan
argumen; x, yaitu data yang ingin diplot, dalam hal ini
adalah eigen$values; main, yaitu judul utama
plot; xlab, yaitu label sumbu x; ylab, yaitu
label sumbu y; pch, yaitu angka yang menunjukkan bentuk
titik yang mewakili nilai data; col, yaitu warna titik dan
garis penghubung; type, yaitu karakter yang menunjukkan
tipe plot; dan lwd, yaitu ketebalan garis.
Kemudian, untuk memperjelas banyak faktor pada sumbu x untuk setiap
penambahan 1 faktor dan menambahkan batas berupa garis horizontal pada
nilai eigen sama dengan 1, maka fungsi plot dapat
digabungkan dengan fungsi axis() dan abline()
menggunakan operator +. Fungsi axis()
berisikan argumen posisi sumbu berada (1 artinya dibawah)
dan nilai-nilai pada sumbu, dalam hal ini berupa barisan dari 1 hingga
28 dengan beda 1 (at=seq(1,28)). Sedangkan fungsi
abline() berisikan argumen; h, yaitu nilai
pada sumbu tegak (membentuk garis horizontal); col, yaitu
warna garis; lty, yaitu angka yang menunjukkan tipe garis;
dan lwd, yaitu ketebalan garis.
> # Analisis Faktor
> nfaktor = 9 # Berdasarkan Scree Plot
>
> # Menggunakan Principal Component Analysis (PCA) sebagai Metode Ektraksi Faktor
> PCA = principal(r = data_corr, nfactors = nfaktor, rotate = "varimax")
> PCA$communalityUntuk melakukan analisis faktor dengan metode Principal Component
Analysis (PCA), digunakan fungsi principal() dari
library psych dengan argumen; r,
yaitu matriks korelasi antar variabel, dalam hal ini adalah
data_corr; nfactors, yaitu banyak
komponen untuk diekstrak, dalam hal ini nilainya telah disimpan dalam
nfaktor; dan rotate, yaitu metode
rotasi yang digunakan, dalam hal ini adalah varimax
("varimax"). Hasil tersebut kemudian disimpan dalam
PCA. Untuk menampilkan komunalitas setiap variabel
dapat dilakukan dengan memanggil PCA$communality.
> # Menggunakan Principal Factor Analysis (PFA) sebagai Metode Ekstraksi Faktor
> PFA = fa(r = data, nfactors = nfaktor, rotate = "varimax", fm = "pa")
> PFA
> PFA$scoresUntuk melakukan analisis faktor dengan metode Principal Factor
Analysis (PFA), digunakan fungsi fa() dari
library psych dengan argumen; r,
yaitu matriks korelasi antar variabel atau data awal yang secara default
akan dihitung matriks korelasinya untuk dijadikan sebagai matriks input,
dalam hal ini digunakan data awal data agar skor
faktor dapat diestimasi dari data; nfactors, yaitu banyak
faktor untuk diekstrak, dalam hal ini nilainya telah disimpan dalam
nfaktor; rotate, yaitu metode rotasi
yang digunakan, dalam hal ini adalah varimax ("varimax");
fm, yaitu metode ekstraksi faktor yang digunakan, dalam hal
ini adalah PFA ("pa"). Hasil tersebut kemudian disimpan
dalam PFA. Untuk menampilkan hasil analisis dapat
dilakukan dengan memanggil PFA dan untuk menampilkan
estimasi skor faktor (secara default menggunakan metode regresi) dapat
dilakukan dengan memanggil PFA$scores.
> # Visualisasi Pembobot Faktor (Factor Loadings)
> # Menggunakan ggplot()
> nvar = dim(data_corr)[1]
> loadings_mat = as.data.frame(matrix(nrow = nvar, ncol = nfaktor))
>
> for (i in 1:nfaktor) {
+ for (j in 1:nvar) {
+ loadings_mat[j, i] = PFA$loadings[j, i]
+ }
+ }
>
> loadings_mat$Variabel = colnames(data)
> colnames(loadings_mat) = c("Faktor1 (PA2)","Faktor2 (PA3)","Faktor3 (PA4)",
+ "Faktor4 (PA5)","Faktor5 (PA9)","Faktor6 (PA1)",
+ "Faktor7 (PA7)","Faktor8 (PA6)","Faktor9 (PA8)",
+ "Variabel")
> loadings_mat_gabung = loadings_mat %>% gather("Faktor", "Nilai", 1:nfaktor)
>
> vis = ggplot(loadings_mat_gabung, aes(Variabel, abs(Nilai), fill = Nilai)) +
+ facet_wrap(~ Faktor, nrow = 3) +
+ geom_col() +
+ coord_flip() +
+ scale_fill_gradient2(high = "darkblue", mid = "white", low = "red",
+ midpoint = 0, guide = "none") +
+ xlab("Variabel") +
+ ylab("Pembobot Faktor") +
+ geom_hline(aes(yintercept = 0.475), linetype = 2, col = "darkblue") +
+ ggtitle("Visualisasi Pembobot Faktor") +
+ theme(axis.text = element_text(size = 10),
+ axis.title = element_text(size = 12, face = "bold")) +
+ theme(plot.title = element_text(size = 12, hjust = 0.5))
> vis
>
> # Menggunakan fa.diagram()
> fa.diagram(PFA, cut = 0.475)Visualisasi pembobot faktor dibuat menggunakan fungsi
ggplot() dari library ggplot2 dan fungsi
fa.diagram() dari library pysch. Sebelum
membuat plot menggunakan fungsi ggplot(), terlebih dahulu
dibentuk data frame loadings_mat dengan banyak baris
sebanyak variabel dan banyak kolom sebanyak faktor yang diekstrak.
loadings_mat diisi dengan nilai-nilai pembobot
faktor dari metode PFA (PFA$loadings) menggunakan
nested looping for(){} di mana
loadings_mat[j, i] = PFA$loadings[j, i] dengan
j adalah indeks baris dan i
adalah indeks kolom.
Kemudian, dibentuk kolom baru bernama Variabel
di dalam loadings_mat berisikan nama-nama variabel
dari data menggunakan perintah
loadings_mat$Variabel = colnames(data). Penamaan kolom pada
loadings_mat disesuaikan menggunakan fungsi
colnames(loadings_mat) = c() yang berisikan nama kolom yang
diinginkan. Selanjutnya, dibentuk data frame
loadings_mat_gabung yang merupakan hasil
pengelompokkan kolom-kolom pada loadings_mat
berdasarkan nama faktor, nama variabel, dan nilai pembobot faktor
menggunakan fungsi gather() dari library
tidyr.
Pada fungsi ggplot() digunakan argumen;
data, yaitu data yang digunakan untuk membuat plot, dalam
hal ini adalah loadings_mat_gabung;
aes(x,y,fill), di mana x adalah nilai pada
sumbu datar grafik, dalam hal ini berupa nama variabel (kategorik),
y adalah tinggi grafik, dalam hal ini berupa nilai absolut
dari pembobot faktor, fill adalah warna grafik, dalam hal
ini berdasarkan nilai pembobot faktor. Kemudian, ditambahkan beberapa
komponen pelengkap pada plot tersebut menggunakan operator
+, seperti pembagian data ke dalam beberapa panel
berdasarkan nama faktor dalam 3 baris
(facet_wrap(~ Faktor, nrow = 3)), grafik batang
(geom_col()), gradiasi warna grafik
(scale_fill_gradient2()), garis horizontal
(geom_hline()), membalik koordinat kartesius
(coord_flip()), dll. Plot ini kemudian disimpan dalam
vis, untuk mencetak plot dapat dilakukan dengan
memanggil vis.
Visualisasi dengan fungsi fa.diagram() menggunakan
argumen; fa.results, yaitu hasil analisis faktor, dalam hal
ini adalah PFA; dan cut, yaitu batas
nilai absolut pembobot faktor yang akan ditampilkan (dihubungkan dengan
variabel yang bersesuaian).
Kaiser-Meyer-Olkin Statistics
Call: KMOS(x = data)
Measures of Sampling Adequacy (MSA):
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
0.6297439 0.6490685 0.6345986 0.7833844 0.7333126 0.7601834 0.7147883 0.6608207
Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16
0.6361560 0.6214971 0.8244777 0.7124336 0.7205768 0.6443158 0.8585067 0.7012443
Q17 Q18 Q19 Q20 Q21 Q22 Q23 Q24
0.6410866 0.5441882 0.8093672 0.7282486 0.6092830 0.7097767 0.6781096 0.7318322
Q25 Q26 Q27 Q28
0.5249919 0.5219125 0.7463873 0.7047434
KMO-Criterion: 0.6953532
Uji ini dilakukan sebagai analisis pendahulu untuk mengetahui apakah matriks korelasi antar variabel pada data cocok untuk digunakan dalam analisis faktor. Berdasarkan output, diperoleh nilai KMO-Criterion (overall MSA) sebesar 0.695 > 0.5 yang berarti bahwa analisis faktor dapat diterapkan menggunakan matriks korelasi antar variabel pada data (terdapat pola teratur antara respons dan pernyataan survey). Selain itu, dapat diketahui nilai MSA untuk setiap variabel bernilai > 0.5 yang berarti bahwa semua variabel diikutsertakan dalam analisis faktor.
Bartlett's Test of Sphericity
Call: bart_spher(x = data)
X2 = 1218.515
df = 378
p-value < 2.22e-16
Uji ini dilakukan untuk menguji apakah matriks korelasi antar variabel pada data berbeda signifikan dengan matriks identitas (terdapat korelasi yang signifikan setidaknya antar beberapa variabel).
Hipotesis:
\(H_0:\mathbf{R}=\mathbf{I}\) (Tidak terdapat korelasi yang signifikan antar variabel)
\(H_1:\mathbf{R}\neq \mathbf{I}\) (Terdapat korelasi yang signifikan setidaknya antar beberapa variabel)
Keputusan:
Berdasarkan output, diperoleh nilai \(p-value<2.22\ \times 10^{-16}\) yang jauh lebih kecil dari nilai \(\alpha=0.05\), maka \(H_0\) ditolak.
Kesimpulan:
Pada taraf nyata 5%, dapat disimpulkan bahwa terdapat korelasi yang signifikan setidaknya antar beberapa variabel, sehingga matriks korelasi antar variabel pada data layak digunakan dalam analisis faktor.
[1] 5.0882066 3.1725236 2.2876422 1.9072598 1.5054661 1.4144772 1.3166305
[8] 1.2005622 1.0015379 0.9538791 0.8726409 0.8078421 0.7113198 0.6519275
[15] 0.6075850 0.5542625 0.5104347 0.5062982 0.4179482 0.3963892 0.3616249
[22] 0.3568634 0.3223509 0.2754923 0.2653094 0.2288211 0.1766759 0.1280287
Berdasarkan nilai eigen dan scree plot, terlihat bahwa 9 faktor pertama adalah faktor yang memiliki nilai eigen lebih dari 1 (cukup baik dalam menjelaskan varians masing-masing variabel) sehingga sesuai dengan Kaiser criterion, banyak faktor bermakna yang akan diekstrak adalah sebanyak 9 faktor.
Berikut adalah komunalitas setiap variabel pada analisis faktor dengan metode Principal Component Analysis (PCA).
PCA$communality
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
0.7286722 0.7632261 0.6984296 0.5956964 0.6927836 0.6049491 0.5945055 0.7308369
Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16
0.7681119 0.7645129 0.6312865 0.7013878 0.7499751 0.5572249 0.5915118 0.6927185
Q17 Q18 Q19 Q20 Q21 Q22 Q23 Q24
0.4823739 0.7075347 0.6236120 0.6756733 0.6431867 0.6517067 0.7735381 0.7141890
Q25 Q26 Q27 Q28
0.6978704 0.6931407 0.6477510 0.7179012
Dari hasil analisis faktor dengan metode PCA, dapat diketahui komunalitas setiap variabel bernilai < 1. Pada metode ini, variabel diasumsikan sebagai kombinasi linier dari faktor sehingga varians dari tiap variabel secara utuh diwakili oleh faktor (komunalitas suatu variabel adalah varians variabel tersebut). Komunalitas yang kurang dari 1 tersebut mengindikasikan terjadinya kehilangan informasi dalam representasi (Cleff, 2019), karena seharusnya varians masing-masing variabel bernilai 1 (pada matriks korelasi). Oleh karena itu, PCA tidak tepat digunakan sebagai metode ektraksi faktor pada kasus ini.
Sebaliknya, analisis faktor dengan metode Principal Factor Analysis (PFA) mengasumsikan bahwa varians dari variabel dibagi menjadi 2 bagian, yaitu komunalitas (bagian dari varians variabel yang dapat dijelaskan oleh faktor bersama) dan varians spesifik (bagian dari varians variabel yang hanya dimiliki variabel itu sendiri). Oleh sebab itu, dengan metode PFA sudah seharusnya komunalitas tiap variabel bernilai < 1.
Factor Analysis using method = pa
Call: fa(r = data, nfactors = nfaktor, rotate = "varimax", fm = "pa")
Standardized loadings (pattern matrix) based upon correlation matrix
PA2 PA3 PA4 PA5 PA9 PA1 PA7 PA6 PA8 h2 u2 com
Q1 -0.06 0.07 -0.01 0.10 0.74 0.20 0.10 -0.02 -0.11 0.63 0.37 1.3
Q2 -0.10 0.05 0.18 -0.02 0.82 0.23 0.15 -0.04 0.04 0.80 0.20 1.4
Q3 0.02 0.75 -0.02 0.02 0.13 0.05 0.16 0.00 0.01 0.60 0.40 1.2
Q4 0.09 0.20 0.11 0.04 0.17 0.52 0.11 0.12 0.10 0.41 0.59 2.1
Q5 0.03 0.16 0.06 0.09 0.17 0.74 0.07 0.04 -0.05 0.63 0.37 1.3
Q6 0.11 0.02 -0.05 0.10 0.33 0.47 0.22 -0.19 -0.06 0.45 0.55 3.0
Q7 -0.56 0.09 0.09 -0.09 0.08 0.13 -0.16 0.13 0.03 0.40 0.60 1.6
Q8 0.04 0.77 -0.03 -0.03 -0.02 0.13 -0.06 0.16 0.01 0.63 0.37 1.2
Q9 0.85 -0.06 0.13 0.14 0.05 0.12 -0.10 0.06 0.09 0.80 0.20 1.2
Q10 0.79 -0.01 0.15 0.13 -0.01 0.12 -0.10 0.07 0.23 0.73 0.27 1.4
Q11 0.15 0.30 0.22 0.03 0.26 0.19 0.27 -0.18 -0.36 0.50 0.50 6.2
Q12 0.04 0.11 0.14 0.03 0.19 0.27 0.74 -0.12 0.10 0.71 0.29 1.7
Q13 -0.02 -0.07 0.21 0.13 0.14 0.08 0.51 0.19 -0.11 0.41 0.59 2.2
Q14 0.13 -0.02 0.13 0.16 0.18 -0.07 0.21 -0.39 0.05 0.29 0.71 3.2
Q15 0.15 0.25 0.29 0.14 0.33 0.25 0.27 0.01 -0.27 0.50 0.50 6.7
Q16 -0.25 0.64 0.14 0.01 -0.02 0.19 -0.21 0.14 -0.07 0.60 0.40 2.0
Q17 -0.18 0.33 0.16 0.24 0.06 0.05 0.13 0.01 -0.03 0.24 0.76 3.6
Q18 0.10 0.23 0.01 0.08 0.00 0.00 0.13 0.75 0.00 0.65 0.35 1.3
Q19 0.53 0.01 0.06 0.31 -0.03 0.18 0.17 0.05 -0.12 0.46 0.54 2.3
Q20 0.19 0.12 0.05 0.63 0.00 0.15 0.02 0.09 -0.18 0.51 0.49 1.6
Q21 -0.03 0.11 0.59 -0.07 0.04 0.10 0.00 0.14 0.00 0.39 0.61 1.3
Q22 0.16 0.04 0.29 0.06 0.15 -0.01 0.16 0.22 0.10 0.22 0.78 4.2
Q23 0.06 -0.01 0.79 0.20 0.08 0.11 0.11 -0.19 -0.06 0.73 0.27 1.4
Q24 0.12 -0.03 0.67 0.23 0.01 -0.09 0.21 -0.16 -0.07 0.60 0.40 1.8
Q25 0.08 -0.09 0.06 0.31 -0.02 0.07 -0.03 0.05 0.50 0.37 0.63 2.0
Q26 0.23 0.15 -0.17 -0.23 -0.04 -0.05 0.10 -0.19 0.47 0.43 0.57 3.2
Q27 0.16 -0.04 0.11 0.54 0.23 -0.04 0.10 -0.20 0.10 0.45 0.55 2.2
Q28 0.18 0.03 0.12 0.78 -0.01 0.06 0.06 0.03 0.17 0.69 0.31 1.3
PA2 PA3 PA4 PA5 PA9 PA1 PA7 PA6 PA8
SS loadings 2.34 2.03 1.93 1.84 1.76 1.53 1.38 1.14 0.90
Proportion Var 0.08 0.07 0.07 0.07 0.06 0.05 0.05 0.04 0.03
Cumulative Var 0.08 0.16 0.22 0.29 0.35 0.41 0.46 0.50 0.53
Proportion Explained 0.16 0.14 0.13 0.12 0.12 0.10 0.09 0.08 0.06
Cumulative Proportion 0.16 0.29 0.42 0.55 0.67 0.77 0.86 0.94 1.00
Mean item complexity = 2.3
Test of the hypothesis that 9 factors are sufficient.
df null model = 378 with the objective function = 10.99 with Chi Square = 1218.51
df of the model are 162 and the objective function was 1.72
The root mean square of the residuals (RMSR) is 0.03
The df corrected root mean square of the residuals is 0.05
The harmonic n.obs is 122 with the empirical chi square 90.97 with prob < 1
The total n.obs was 122 with Likelihood Chi Square = 180.1 with prob < 0.16
Tucker Lewis Index of factoring reliability = 0.945
RMSEA index = 0.029 and the 90 % confidence intervals are 0 0.053
BIC = -598.15
Fit based upon off diagonal values = 0.98
Measures of factor score adequacy
PA2 PA3 PA4 PA5 PA9 PA1
Correlation of (regression) scores with factors 0.93 0.90 0.89 0.88 0.89 0.83
Multiple R square of scores with factors 0.86 0.80 0.80 0.77 0.80 0.69
Minimum correlation of possible factor scores 0.72 0.61 0.59 0.55 0.59 0.37
PA7 PA6 PA8
Correlation of (regression) scores with factors 0.85 0.84 0.79
Multiple R square of scores with factors 0.73 0.71 0.62
Minimum correlation of possible factor scores 0.46 0.41 0.23
Berdasarkan output, model analisis faktor yang terbentuk dituk sebagai berikut.
\[ \begin {align} Q_1&=-0.06PA_2+0.07PA_3-0.01PA_4+0.10PA_5+0.74PA_9+0.20PA_1+0.10PA_7\\ &-0.02PA_6-0.11PA_8+u_1\\ Q_2&=-0.10PA_2+0.05PA_3+0.18PA_4-0.02PA_5+0.82PA_9+0.23PA_1+0.15PA_7\\ &-0.04PA_6+0.04PA_8+u_2\\ \vdots\\ Q_{28}&=0.18PA_2+0.03PA_3+0.12PA_4+0.78PA_5-0.01PA_9+0.06PA_1+0.06PA_7\\ &+0.03PA_6+0.17PA_8+u_{28} \end {align} \]
Komunalitas suatu variabel adalah jumlah kuadrat dari semua pembobot faktor pada variabel tersebut, yaitu \(h_i^2=\Sigma_{j=1}^k\ \lambda_{ij}^2\), sedangkan varians spesifik variabel adalah selisih varians variabel dengan komunalitasnya, yaitu \(\psi_i=\sigma_i^2-h_i^2\) (\(\sigma_i^2=1\) saat menggunakan matriks korelasi). Sebagai contoh, komunalitas dan varians spesifik bagi variabel \(Q_1\) dapat dihitung sebagai berikut.
\[ \begin {align} h_1^2&=\Sigma_{j=1}^9\ \lambda_{1j}^2\\ &=0.06^2+0.07^2+(-0.01)^2+0.10^2+0.74^2+0.20^2+0.10^2+(-0.02)^2+(-0.11)^2\\ &=0.63\\ \\ \psi_1&=\sigma_1^2-h_1^2\\ &=1-0.63\\ &=0.37 \end {align} \]
Nilai-nilai tersebut diinterpretasikan sebagai berikut:
Meskipun fokus dalam analisis faktor lebih pada menjelaskan korelasi antar variabel daripada memaksimalkan varians yang dijelaskan, dilihat dari Proportion Variance pada output, faktor \(PA_2\) dapat menjelaskan variansi pada variabel sebesar 8%, faktor \(PA_3,\ PA_4,\ PA_5\) masing-masing sebesar 7%, faktor \(PA_9\) sebesar 6%, faktor \(PA_1,\ PA_7\) masing-masing sebesar 5%, faktor \(PA_6\) sebesar 4%, dan faktor \(PA_8\) sebesar 3%. Secara kumulatif, 9 faktor yang diekstrak dapat menjelaskan variansi pada variabel sebesar 53%.
Berikut adalah hasil estimasi skor faktor menggunakan metode regresi.
Interpretasi dilakukan pada faktor yang telah dirotasi untuk alasan kemudahan. Pada ekstraksi faktor menggunakan PFA sebelumnya, faktor dirotasi menggunakan rotasi ortogonal, yaitu rotasi varimax. Pembobot faktor hasil rotasi tersebut kemudian divisualisasikan untuk mempermudah melihat pembobot faktor yang signifikan. Menurut Stevens (2009) dan Hair et al (2009), nilai cut-off pembobot faktor yang signifikan untuk 122 sampel berada di kisaran 0.45 hingga 0.50. Oleh karena itu, pembobot faktor dalam kasus ini dinyatakan signifikan jika memiliki nilai absolut yang lebih besar dari 0.475 (menggunakan nilai tengah).
Pembobot faktor diinterpretasikan sebagai korelasi antara faktor dan variabel (indikator). Berdasarkan hasil visualisasi, terlihat bahwa faktor \(PA_2\) berkorelasi signifikan dengan variabel \(Q_9,\ Q_{10},\ Q_{7}\) dan \(Q_{19}\), di mana variabel \(Q_7\) berkorelasi negatif dengan faktor \(PA_2\) (hubungan keduanya berbanding terbalik). Diketahui bahwa variabel \(Q_9,\ Q_{10},\ Q_{7}\) dan \(Q_{19}\) masing-masing berisikan pernyataan sebagai berikut:
\(Q_9\): If a woman chooses not to have a child, she is making a poor decision.
\(Q_{10}\): A woman who chooses to not have a child is selfish.
\(Q_7\): It is perfectly reasonable for a woman to choose not to have a child.
\(Q_{19}\): A middle aged woman [35+ years old] who does not have a child is probably infertile.
Dengan demikian, faktor \(PA_2\) dapat diinterpretasikan sebagai faktor yang berkaitan dengan penilaian terhadap pilihan individu dan stereotip tentang kesuburan.
Selanjutnya, terlihat bahwa faktor \(PA_3\) berkorelasi signifikan dengan variabel \(Q_8,\ Q_3\) dan \(Q_{16}\), di mana masing-masing variabel tersebut berisikan pernyataan sebagai berikut:
\(Q_8\): If a woman chooses not to have a child, society automatically has a negative perception her.
\(Q_3\): Women who choose not to have a child due to financial reasons are judged.
\(Q_{16}\): Society places too much pressure on women to have children.
Oleh karena itu, faktor \(PA_3\) dapat diinterpretasikan sebagai faktor yang berkaitan dengan persepsi masyarakat.
Berikut adalah interpretasi dari 9 faktor yang diekstrak.
Variabel \(Q_6,\ Q_{11},\ Q_{14},\ Q_{15},\ Q_{17},\ Q_{22}\) dan \(Q_{26}\) tidak memiliki korelasi yang signifikan dengan faktor manapun dalam model, yaitu semua pembobot faktor pada masing-masing variabel bernilai < 0.475. Hal ini mengindikasikan bahwa variabel-variabel tersebut dijelaskan dengan lebih baik oleh faktor lain di luar model.
Berdasarkan hasil analisis, diperoleh bahwa terdapat 9 faktor bermakna yang dapat diekstrak dari 28 variabel (indikator) dalam survey tentang faktor-faktor yang memengaruhi keputusan tidak memiliki anak. Faktor-faktor tersebut diinterpretasikan (secara subjektif) sebagai faktor penilaian terhadap pilihan individu dan stereotip tentang kesuburan; faktor persepsi masyarakat; faktor dampak terhadap kesehatan; faktor risiko hamil di usia rentan; faktor kemampuan finansial secara umum; faktor kemampuan finansial secara spesifik; faktor stigma negatif tentang orang tua tunggal dan pengaruh dari luar; faktor pandangan tradisi terhadap perempuan; dan faktor hamil di usia yang memadai. Terdapat 7 variabel yang tidak memiliki korelasi signifikan dengan setidaknya salah satu faktor dalam model (komunalitasnya kecil). Hal ini mengindikasikan bahwa variabel-variabel tersebut dijelaskan dengan lebih baik oleh faktor lain di luar model.
Hair, J.F., Black, W.C., Babin, B.J., Anderson, R.E. (2009). Multivariate Data Analysis [7th ed.]. Prentice Hall.
Source of dataset: https://www.kaggle.com/datasets/rkkaggle2/social-attitudes-regarding-childlessness-nj-survey?select=ChildlessnessNJ.csv