Pengantar Seri
Selamat datang di bagian kedua dari seri Analisis Faktor kami. Setelah meletakkan fondasi yang kokoh dan memvalidasi data kita di Bagian 1, kini saatnya untuk melakukan analisis inti. Di sini, Anda akan belajar bagaimana mengubah 20 variabel survei menjadi beberapa pilar strategis yang jernih dan dapat ditindaklanjuti.
Landasan Teori: Nilai Eigen dan Rotasi Faktor
- Nilai Eigen (Eigenvalue): Merepresentasikan jumlah varians yang dijelaskan oleh satu faktor. Aturan praktis Kaiser’s Criterion menyarankan untuk mempertahankan faktor dengan Nilai Eigen > 1 (menurut Kaiser, 1960).
- Rotasi Faktor: Adalah proses “memutar” sumbu faktor untuk mencapai struktur sederhana (simple structure), di mana setiap item memiliki korelasi tinggi (loading) dengan satu faktor saja. Ini krusial untuk interpretasi (menurut Hair et al., 2010).
Proses rotasi secara matematis dapat direpresentasikan sebagai berikut:
$$A_{rot} = A \Lambda$$
Momen Penentuan: Menemukan Jumlah Klaster dari 20 Variabel
Kita akan menggunakan Scree Plot dan Kaiser’s Criterion dari data df_ux_survey
yang sudah kita siapkan.
# Diasumsikan 'df_ux_survey' sudah ada dari Bagian 1
import pandas as pd
from factor_analyzer import FactorAnalyzer
import matplotlib.pyplot as plt
# Jalankan EFA awal untuk mendapatkan nilai eigen (eigenvalues)
fa = FactorAnalyzer(n_factors=20, rotation=None)
fa.fit(df_ux_survey)
ev, v = fa.get_eigenvalues()
# Membuat Scree Plot untuk visualisasi
plt.figure(figsize=(10, 6))
plt.scatter(range(1, df_ux_survey.shape[1] + 1), ev)
plt.plot(range(1, df_ux_survey.shape[1] + 1), ev)
plt.title('Scree Plot')
plt.xlabel('Jumlah Faktor')
plt.ylabel('Nilai Eigen (Eigenvalue)')
plt.axhline(y=1, color='r', linestyle='--')
plt.grid()
plt.show()

Hasilnya sangat jelas: tepat 4 faktor memiliki Nilai Eigen di atas 1, dan patahan pada Scree Plot juga terjadi setelah faktor ke-4. Konsistensi ini memberi kita keyakinan tinggi untuk melanjutkan analisis dengan 4 klaster. Secara standar, nilai eigen >1 menurut Kaiser’s Criterion, tapi pertimbangkan parallel analysis jika scree plot ambigu (Cattell, 1966).
Pro-Tip: Bagaimana Jika Scree Plot Ambigu? Di dunia nyata, Scree Plot bisa jadi memiliki dua ‘siku’ atau tidak jelas sama sekali. Jika ini terjadi, teori dan interpretasi menjadi raja. Coba ekstrak kedua jumlah faktor (misalnya, 3 dan 4) dan pilih solusi yang menghasilkan klaster-klaster yang paling logis dan dapat diinterpretasikan secara bisnis. Gunakan parallel analysis untuk verifikasi, tersedia di library factor_analyzer, untuk menghindari over-extraction.
Mengungkap Pola: Mengidentifikasi Item per Klaster
Setelah yakin dengan 4 klaster, kita jalankan analisis final dengan rotasi Varimax. Hasilnya adalah sebuah matriks loadings, yaitu tabel “kekuatan hubungan” antara setiap item dan setiap faktor.
# Menjalankan EFA dengan 4 faktor dan rotasi varimax
fa_final = FactorAnalyzer(n_factors=4, rotation='varimax')
fa_final.fit(df_ux_survey)
# Mendapatkan matriks loadings dalam DataFrame yang rapi
loadings = pd.DataFrame(
fa_final.loadings_,
index=df_ux_survey.columns,
columns=['Faktor 1', 'Faktor 2', 'Faktor 3', 'Faktor 4']
)
print("Matriks Loadings (Kekuatan Hubungan):")
loadings

Tabel di atas adalah hasilnya, tetapi bagaimana kita mengubahnya menjadi klaster? Aturan keputusannya sederhana dan sepenuhnya berdasarkan data:
Setiap item dimasukkan ke dalam klaster (faktor) di mana ia memiliki nilai loading absolut tertinggi.
Kode berikut mengotomatiskan aturan ini untuk kita.
# Kode untuk mengidentifikasi dan menampilkan item per klaster secara sistematis
klaster_items = {}
# Mendapatkan nama faktor dengan loading tertinggi untuk setiap item
highest_loading_factor = loadings.idxmax(axis=1)
# Mengelompokkan item berdasarkan faktornya
for item, factor_name in highest_loading_factor.items():
if factor_name not in klaster_items:
klaster_items[factor_name] = []
klaster_items[factor_name].append(item)
print("\n--- Klaster yang Teridentifikasi Berdasarkan Hasil Analisis ---")
for factor, items in klaster_items.items():
print(f"\n{factor}:")
for item in sorted(items):
print(f" - {item}")
Interpretasi Hasil Akhir: 4 Klaster Pengalaman Pengguna
Kode di atas secara otomatis mengelompokkan 20 item kita ke dalam 4 klaster yang jernih, yang sekarang bisa kita beri nama berdasarkan tema item di dalamnya. Nama ini didasarkan pada tema item dominan, seperti ‘q1_keandalan’ untuk Klaster 2:
Klaster 1 (Faktor 1): Layanan & Dukungan
Klaster 2 (Faktor 2): Keandalan & Logistik
Klaster 3 (Faktor 3): Pengalaman Aplikasi
Klaster 4 (Faktor 4): Nilai & Harga
Selain mengidentifikasi klaster, kita bisa melihat kepentingan relatifnya. Periksa varians yang dijelaskan oleh setiap faktor. Faktor dengan varians tertinggi dapat dianggap sebagai pilar yang memiliki pengaruh paling dominan dalam data survei kita, menjadikannya prioritas utama untuk diperhatikan. Dalam konteks medis, misalnya, klaster ini bisa diterapkan untuk menganalisis faktor-faktor dalam survei pasien rheumatology seperti gout management.
# Mendapatkan varians yang dijelaskan oleh setiap faktor
variance_explained = pd.DataFrame(
fa_final.get_factor_variance(),
index=['SS Loadings', 'Proportion Var', 'Cumulative Var'],
columns=['Faktor 1', 'Faktor 2', 'Faktor 3', 'Faktor 4']
)
print("\nVarians yang Dijelaskan per Klaster:")
variance_explained

Dalam bidang psikologi pendidikan, pendekatan ini bisa membantu mengidentifikasi klaster dalam survei pembelajaran siswa. Melalui analisis faktor ini, kita telah mentransformasi data kompleks menjadi klaster actionable yang mendukung keputusan strategis. Pendekatan berbasis data ini tidak hanya menyederhanakan interpretasi, tapi juga membuka peluang untuk aplikasi di penelitian medis dan pendidikan, memastikan insight yang reliabel dan impactful.
Praktik Langsung: Unduh Kode Lengkap
Ingin mencoba sendiri analisis ini? Unduh Jupyter Notebook yang berisi seluruh kode dari seri tiga bagian ini, mulai dari persiapan data hingga audit reliabilitas.
Ukuran file: 68,8 kB
Perdalam pemahaman Quantitative Anda di sini
Referensi
Kaiser, H.F. (1960). The application of electronic computers to factor analysis. Educational and Psychological Measurement
Hair, J.F., Black, W.C., Babin, B.J., & Anderson, R.E. (2010). Multivariate Data Analysis (7th ed.). Pearson Education
Cattell, R.B. (1966). The scree test for the number of factors. Multivariate Behavioral Research